{"id":36745,"date":"2019-10-31T22:13:31","date_gmt":"2019-10-31T19:13:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vypusk-generatora-leksicheskih-analizatorov-re2c-1-2\/"},"modified":"2019-10-31T22:13:31","modified_gmt":"2019-10-31T19:13:31","slug":"vypusk-generatora-leksicheskih-analizatorov-re2c-1-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-generatora-leksicheskih-analizatorov-re2c-1-2","title":{"rendered":"Lexikaalsete anal\u00fcsaatorite generaatori re2c 1.2 v\u00e4ljaanne","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/releases\/release_notes.html\">Toimus<\/a><\/noindex> vabastus <noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/\">re2c<\/a><\/noindex>, vaba leksikaalsete anal\u00fcsaatorite generaator C ja C++ keelte jaoks. Tuletame meelde, et re2c kirjutati 1993. aastal Peter Bambulis\u2019i poolt eksperimentaalse generaatorina v\u00e4ga kiirete leksikaalsete anal\u00fcsaatorite jaoks, mis erineb teistest generaatoritest genereeritud koodi kiirus ja ebatavaliselt paindlik kasutajaliides, mis v\u00f5imaldab h\u00f5lpsasti ja t\u00f5husalt integreerida anal\u00fcsaatoreid olemasolevasse koodibaasi. Sellest ajast alates on projekt arenenud kogukonna abiga ja j\u00e4tkab olema eksperimentide ja uuringute platvorm formaalsete grammatikate ja l\u00f5plike automatide valdkonnas.<\/p>\n<p>V\u00e4ljalaske ettevalmistamine v\u00f5ttis peaaegu aasta. Enamik ajast, nagu alati, kulus teoreetilise baasi v\u00e4ljat\u00f6\u00f6tamisele ja kirjutamisele<br \/>\n\u0441\u0442\u0430\u0442\u044c\u0438 &#171;<noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/2019_borsotti_trofimovich_efficient_posix_submatch_extraction_on_nfa.pdf\">Efficient POSIX Submatch Extraction on NFA<\/a><\/noindex>&#171;.<br \/>\nArtiklis kirjeldatud algoritmid on rakendatud eksperimenteerivas raamatukogus libre2c<br \/>\n(\u0441\u0431\u043e\u0440\u043a\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f configure-\u043e\u043f\u0446\u0438\u0435\u0439 &#171;&#8212;enable-libs&#187;). \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u0430 \u043d\u0435 \u043a\u0430\u043a \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c, \u0442\u0430\u043a\u0438\u043c \u043a\u0430\u043a RE2, \u0430 \u043a\u0430\u043a \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u043e\u0432\u044b\u0445<br \/>\nalgoritmide v\u00e4ljat\u00f6\u00f6tamiseks (mida saab seej\u00e4rel kasutada re2c-s v\u00f5i muudes projektides). Samuti on see mugav teste l\u00e4biviimiseks, j\u00f5udluse m\u00f5\u00f5tmiseks ja sidemete loomiseks teistele keelele.<\/p>\n<p>Re2c 1.2 versiooni peamised uuendused:<\/p>\n<ul>\n<li class=\"l\"> \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u043e\u043d\u0446\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (&#171;EOF rule&#187;). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f &#171;re2c:eof&#187;,<br \/>\n   mis v\u00f5imaldab valida terminali s\u00fcmboli,<br \/>\n   \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e &#171;$&#187;, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0435\u0441\u043b\u0438 \u043b\u0435\u043a\u0441\u0435\u0440<br \/>\n   on edukalt j\u00f5udnud sisendi l\u00f5ppu.<br \/>\n   Ajalooliselt on re2c pakkunud mitmeid viise sisendi l\u00f5pu kontrollimiseks,<br \/>\n   mis varieeruvad oma piirangute, efektiivsuse ja lihtsuse poolest<br \/>\n   rakendamisel. Uus viis on m\u00f5eldud koodi kirjutamise lihtsustamiseks, samas<br \/>\n   p\u00fcsides efektiivne ja laialdaselt kohaldatav. Vanad viisid<br \/>\n   t\u00f6\u00f6tavad endiselt ja v\u00f5ivad olla eelistatud teatud olukordades.<\/p>\n<li class=\"l\"> Lisatud v\u00f5imalus lisada v\u00e4liseid faile direktiivi abil,<br \/>\n   &#171;\/*!include:re2c &#171;file.re&#187; *\/&#187;, \u0433\u0434\u0435 &#171;file.re&#187; &#8212; \u044d\u0442\u043e \u0438\u043c\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0433\u043e \u0444\u0430\u0439\u043b\u0430. Re2c \u0438\u0449\u0435\u0442 \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0449\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430,<br \/>\n   \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u0443\u0442\u0435\u0439 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0446\u0438\u0438 &#171;-I&#187;.<br \/>\n   Lisatud failid v\u00f5ivad sisaldada teisi faile.<br \/>\n   Re2c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 &#171;\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435&#187; \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 &#171;include\/&#187;<br \/>\n   \u043f\u0440\u043e\u0435\u043a\u0442\u0430 &#8212; \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0442\u0430\u043c \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f<br \/>\n   regulaarsest v\u00e4ljendist, midagi nagu standardteek.<br \/>\n   Praeguseks on t\u00f6\u00f6inimeste soovide t\u00f5ttu lisatud \u00fcks fail Unicode'i kategooriate m\u00e4\u00e4ratlemisega.<\/p>\n<li class=\"l\"> Lisatud v\u00f5imalus genereerida pealkirjafailid suvalise<br \/>\n   \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u043f\u0446\u0438\u0439 &#171;-t &#8212;type-header&#187; (\u0438\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445<br \/>\n   \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439) \u0438 \u043d\u043e\u0432\u044b\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432 &#171;\/*!header:re2c:on*\/&#187; \u0438<br \/>\n   &#171;\/*!header:re2c:off*\/&#187;. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445,<br \/>\n   kui re2c peab genereerima muutujate, struktuuride ja makrode m\u00e4\u00e4ratlemisi,<br \/>\n   mida kasutatakse teistes t\u00f5lke\u00fcksustes.<\/p>\n<li class=\"l\"> Re2c m\u00f5istab n\u00fc\u00fcd UTF8-literale ja klasside s\u00fcmboleid regulaarsetes v\u00e4ljendites.<br \/>\n   \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, re2c \u043f\u0430\u0440\u0441\u0438\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u0440\u043e\u0434\u0435 &#171;&#8704;x &#8707;y&#187; \u043a\u0430\u043a<br \/>\n   \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c 1-\u0431\u0438\u0442\u043d\u044b\u0445 ASCII-\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 &#171;e2 88 80 78 20 e2 88 83 79&#187;<br \/>\n   (hex-koodid), ja kasutajad peavad Unicode-m\u00e4rke k\u00e4sitsi ekraanima:<br \/>\n   &#171;&#92;&#92;u2200x &#92;&#92;u2203y&#187;. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u0438 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445<br \/>\n   (millest annavad tunnistust pidevad vearaportid). Seet\u00f5ttu n\u00fc\u00fcd<br \/>\n   re2c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u043f\u0446\u0438\u044e &#171;&#8212;input-encoding {ascii | utf8}&#187;,<br \/>\n   \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0442\u044c &#171;&#8704;x &#8707;y&#187; \u043a\u0430\u043a<br \/>\n   &#171;2200 78 20 2203 79&#187;.<\/p>\n<li class=\"l\"> Re2c \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0435 re2c-\u0431\u043b\u043e\u043a\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 &#171;-r &#8212;reuse&#187;.<br \/>\n   See on mugav, kui sisendfail sisaldab palju blokke, ja ainult osa neist<br \/>\n   vajab korduvat kasutamist.<\/p>\n<li class=\"l\"> Ilmus v\u00f5imalus m\u00e4\u00e4rata hoiatuste ja vigade teade formaat<br \/>\n   \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u043e\u0432\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 &#171;&#8212;location-format {gnu | msvc}&#187;. GNU-\u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f<br \/>\n   \u043a\u0430\u043a &#171;filename:line:column:&#187;, \u0430 MSVC-\u0444\u043e\u0440\u043c\u0430\u0442 &#8212; \u043a\u0430\u043a &#171;filename(line,column)&#187;.<br \/>\n   See funktsioon v\u00f5ib olla kasulik IDE-harrastajatele.<br \/>\n   \u0422\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u043f\u0446\u0438\u044f &#171;&#8212;verbose&#187;, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043f\u043e\u0431\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0445\u0430.                                                 <\/p>\n<li class=\"l\"> \u0414\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0440\u0435\u0436\u0438\u043c &#171;\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438&#187; \u0441 flex &#8212; \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0438<br \/>\n   vale operaatorite prioriteet harvadel juhtudel.<br \/>\n   \u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u043f\u0446\u0438\u044f &#171;-F &#8212;flex-suppor&#187; \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434<br \/>\n   segatult flexi ja re2c stiilis, mis veidi keerustab s\u00fcntaktilist anal\u00fc\u00fcsi.<br \/>\n   Flex'i \u00fchilduvuse re\u017eiimi kasutatakse uues koodis harva,<br \/>\n   aga re2c toetab seda endiselt tagurpidi \u00fchilduvuse huvides.<\/p>\n<li class=\"l\"> \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 &#171;\/&#187; \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f<br \/>\n   enne kodeeringu lahtikumaramist, mis v\u00f5imaldab seda rakendada suuremas arvus juhtudel,<br \/>\n   kui kasutatakse erineva pikkusega s\u00fcmbolite kodeeringut (n\u00e4iteks UTF8).<\/p>\n<li class=\"l\"> V\u00e4ljundfail luuakse n\u00fc\u00fcd aatomiliselt: re2c loob esmalt ajutise faili<br \/>\n   ja kirjutab sinna tulemuse, seej\u00e4rel nimetab ajutise faili v\u00e4ljundfailiks<br \/>\n   \u00fche operatsiooni k\u00e4igus.<\/p>\n<li class=\"l\"> Dokumenti on t\u00e4iustatud ja \u00fcmber kirjutatud; eelk\u00f5ige on lisatud uusi<br \/>\n   peat\u00fckid, mis k\u00e4sitlevad <noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/manual\/manual.html#buffer-refilling\">http:\/\/re2c.org\/manual\/manual.html#buffer-refilling puhvri t\u00e4itmine<\/a><\/noindex><br \/>\n   ja <noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/manual\/manual.html#eof-handling\">sisendandmete l\u00f5pu kontrollimise meetodite kohta<\/a><\/noindex>.<br \/>\n   Uus dokumentatsioon on kokku pandud<br \/>\n   <noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/manual\/manual.html\">k\u00f5ikeh\u00f5lmavat \u00fchek\u00fclgset juhendit<\/a><\/noindex><br \/>\n   n\u00e4idistega (samad allikad kuvatakse manpage\u2019is ja veebidokumendina).<br \/>\n   Tehtud on n\u00f5rgad katsed parandada veebilehe loetavust telefonides.<\/p>\n<li class=\"l\"> Arendajate vaatenurgast on re2c saanud t\u00e4iendava ja t\u00e4ielikuma silumise alams\u00fcsteemi.<br \/>\n   Silumise kood on n\u00fc\u00fcd v\u00e4lja l\u00fclitatud vabastatud kogudes ja<br \/>\n   \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e configure-\u043e\u043f\u0446\u0438\u0438 &#171;&#8212;enable-debug&#187;.<\/p>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Allikas: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51209\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 re2c, \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u043e\u0432 C \u0438 C++. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e re2c \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432 1993 \u0433\u043e\u0434\u0443 \u041f\u0438\u0442\u0435\u0440\u043e\u043c \u0411\u0430\u043c\u0431\u0443\u043b\u0438\u0441\u043e\u043c \u043a\u0430\u043a \u044d\u043a\u0441\u043f\u0435\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432, \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e \u0433\u0438\u0431\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u0441\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443. \u0421 \u0442\u0435\u0445 \u043f\u043e\u0440 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-36745","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 re2c, \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-generatora-leksicheskih-analizatorov-re2c-1-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 re2c 1.2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 re2c, \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-generatora-leksicheskih-analizatorov-re2c-1-2\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Leksikaalsete anal\u00fcsaatorite generaatori re2c 1.2 v\u00e4ljaanne | ProHoster","description":"Ilmus re2c, tasuta leksikaalsete generaator.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-generatora-leksicheskih-analizatorov-re2c-1-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 re2c 1.2 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 re2c, \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445.","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-generatora-leksicheskih-analizatorov-re2c-1-2","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:31+00:00","article:modified_time":"2019-10-31T19:13:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36745","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:42:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:39:23","updated":"2026-01-22 04:42:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=36745"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36745\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=36745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=36745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=36745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}