{"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\/nl\/blog\/news\/vypusk-generatora-leksicheskih-analizatorov-re2c-1-2","title":{"rendered":"Uitgave van de re2c lexicale analyzer generator 1.2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/releases\/release_notes.html\">Heeft plaatsgevonden<\/a><\/noindex> release <noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/\">re2c<\/a><\/noindex>, een vrije generator voor lexicale analyse voor de programmeertalen C en C++. Ter herinnering, re2c werd in 1993 geschreven door Peter Bambilius als een experimentele generator voor zeer snelle lexicale analyzers, die zich onderscheidt van andere generators door de snelheid van de gegenereerde code en een ongewoon flexibele gebruikersinterface, die het eenvoudig en effici\u00ebnt maakt om analyzers in bestaande codebases te integreren. Sindsdien wordt het project ontwikkeld door de gemeenschap en blijft het een platform voor experimenten en onderzoek op het gebied van formele grammatica's en eindige automaten.<\/p>\n<p>De voorbereiding van de release heeft bijna een jaar geduurd. De meeste tijd ging, zoals altijd, naar de ontwikkeling van de theoretische basis en het schrijven van<br \/>\nartikelen &#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 \/>\nDe algoritmes die in het artikel worden beschreven, zijn ge\u00efmplementeerd in de experimentele bibliotheek libre2c<br \/>\n(de bibliotheek- en prestatie-testassemblage is standaard uitgeschakeld en kan worden ingeschakeld met de configure-optie &#171;&#8212;enable-libs&#187;). De bibliotheek is niet ontworpen als concurrent van bestaande projecten zoals RE2, maar als een onderzoeksplatform voor de ontwikkeling van nieuwe<br \/>\nalgoritmes (die later kunnen worden gebruikt in re2c of in andere projecten). Dit is ook handig voor het testen, prestatiebepaling en het maken van bindings naar andere talen.<\/p>\n<p>De belangrijkste vernieuwingen in versie re2c 1.2:<\/p>\n<ul>\n<li class=\"l\"> Er is een nieuwe vereenvoudigde manier toegevoegd om het einde van de invoer te controleren (&#171;EOF-regel&#187;). Hiervoor is de configuratie &#171;re2c:eof&#187; toegevoegd,<br \/>\n   die het mogelijk maakt om het terminale teken te kiezen,<br \/>\n   en een speciale regel &#171;$&#187;, die wordt geactiveerd als de lexer<br \/>\n   met succes het einde van de invoergegevens heeft bereikt.<br \/>\n   Historisch gezien biedt re2c verschillende manieren om te controleren op<br \/>\n   het einde van de invoergegevens, vari\u00ebrend in beperkingen, effici\u00ebntie en eenvoud<br \/>\n   van toepassing. De nieuwe manier is bedoeld om het schrijven van code te vereenvoudigen, terwijl het<br \/>\n   effici\u00ebnt en breed toepasbaar blijft. De oude manieren<br \/>\n   werken nog steeds en kunnen in sommige gevallen de voorkeur genieten.<\/p>\n<li class=\"l\"> Er is een mogelijkheid toegevoegd om externe bestanden in te voegen met behulp van de directive<br \/>\n   &#171;\n\/*!include:re2c &#171;file.re&#187; *\n&#187;, waarbij &#171;file.re&#187; &#8212; de naam van het in te voegen bestand is. Re2c zoekt bestanden in de directory van het invoegbestand,<br \/>\n   en in de lijst van paden die zijn opgegeven met de optie &#171;-I&#187;.<br \/>\n   Ingevoegde bestanden kunnen andere bestanden insluiten.<br \/>\n   Re2c biedt &#171;standaard&#187; bestanden in de directory &#171;include\/&#187;<br \/>\n   van het project &#8212; het is de bedoeling dat daar nuttige definities worden verzameld<br \/>\n   van reguliere expressies, iets in de geest van een standaard bibliotheek.<br \/>\n   Tot nu toe is er op verzoek van gebruikers een bestand toegevoegd met definities voor Unicode-categorie\u00ebn.<\/p>\n<li class=\"l\"> Er is nu een mogelijkheid toegevoegd om headerbestanden met willekeurige<br \/>\n   met behulp van de opties &#171;-t &#8212;type-header&#187; (of overeenkomstige<br \/>\n   configuraties) en de nieuwe directieven &#171;\n\/*!header:re2c:on*&#187; en<br \/>\n   &#171;\n\/*!header:re2c:off*&#187;. Dit kan nuttig zijn in gevallen,<br \/>\n   re2c definities van variabelen, structuren en macro's moet genereren,<br \/>\n   die in andere vertaal eenheden worden gebruikt.<\/p>\n<li class=\"l\"> Re2c begrijpt nu UTF8-literals en tekenklassen in reguliere expressies.<br \/>\n   Standaard parseert re2c expressies zoals &#171;&#8704;x &#8707;y&#187; als<br \/>\n   een reeks 1-bits ASCII-symbolen &#171;e2 88 80 78 20 e2 88 83 79&#187;<br \/>\n   (hex-codes), en gebruikers moeten Unicode-tekens handmatig ontsnappen:<br \/>\n   &#171;&#092;&#092;u2200x &#092;&#092;u2203y&#187;. Dit is erg ongemakkelijk en onverwacht voor veel<br \/>\n   gebruikers (zoals blijkt uit constante bugrapports). Daarom<br \/>\n   re2c biedt de optie &#171;&#8212;input-encoding {ascii | utf8}&#187;,<br \/>\n   die het gedrag kan veranderen en &#171;&#8704;x &#8707;y&#187; kan parseren als<br \/>\n   &#171;2200 78 20 2203 79&#187;.<\/p>\n<li class=\"l\"> Re2c staat nu toe dat gewone re2c-blokken worden gebruikt in de &#171;-r &#8212;reuse&#187;-modus.<br \/>\n   Dit is handig als het invoerbestand veel blokken bevat, en slechts een deel ervan<br \/>\n   hergebruikt hoeft te worden.<\/p>\n<li class=\"l\"> Er is een mogelijkheid toegevoegd om het formaat van waarschuwingen en foutmeldingen<br \/>\n   met de nieuwe optie &#171;&#8212;location-format {gnu | msvc}&#187;. Het GNU-formaat wordt weergegeven<br \/>\n   als &#171;bestandsnaam:regel:kolom:&#187;, terwijl het MSVC-formaat &#8212; als &#171;bestandsnaam(regel,kolom)&#187;.<br \/>\n   Deze functie kan handig zijn voor IDE-fans.<br \/>\n   Er is ook een optie &#171;&#8212;verbose&#187; toegevoegd, die een korte succesvolle boodschap weergeeft in geval van succes.                                                 <\/p>\n<li class=\"l\"> De modus &#171;compatibiliteit&#187; met flex is verbeterd &#8212; enkele parseerfouten zijn gecorrigeerd en<br \/>\n   onjuiste prioriteiten van operatoren zijn in zeldzame gevallen gecorrigeerd.<br \/>\n   Historisch gezien staat de optie &#171;-F &#8212;flex-support&#187; het toe om code te schrijven<br \/>\n   in mengvorm in flex-stijl en re2c-stijl te schrijven, wat de syntactische parsing enigszins bemoeilijkt.<br \/>\n   De compatibiliteitsmodus met flex wordt zelden gebruikt in nieuwe code,<br \/>\n   maar re2c blijft het ondersteunen voor achterwaartse compatibiliteit.<\/p>\n<li class=\"l\"> De operator voor het aftrekken van tekenklassen &#171;\\\/&#187; kan nu worden toegepast<br \/>\n   voor het uitpakken van de codering, wat het mogelijk maakt om het in een groter aantal gevallen toe te passen,<br \/>\n   indien een codering met variabele tekenlengte wordt gebruikt (bijvoorbeeld UTF8).<\/p>\n<li class=\"l\"> Het uitvoerbestand wordt nu atomair aangemaakt: re2c maakt eerst een tijdelijk bestand aan<br \/>\n   en schrijft de resultaten daarin, waarna het tijdelijke bestand wordt hernoemd naar de uitvoer<br \/>\n   in \u00e9\u00e9n bewerking.<\/p>\n<li class=\"l\"> De documentatie is aangevuld en herschreven; in het bijzonder zijn nieuwe<br \/>\n   hoofdstukken toegevoegd over <noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/manual\/manual.html#buffer-refilling\">http:\/\/re2c.org\/manual\/manual.html#buffer-refilling bufferopvulling<\/a><\/noindex><br \/>\n   en <noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/manual\/manual.html#eof-handling\">over methoden om het einde van de invoergegevens te controleren<\/a><\/noindex>.<br \/>\n   De nieuwe documentatie is verzameld in de vorm van<br \/>\n   <noindex><a rel=\"nofollow\" href=\"http:\/\/re2c.org\/manual\/manual.html\">een uitgebreide eendelige handleiding<\/a><\/noindex><br \/>\n   met voorbeelden (dezelfde bronbestanden worden weergegeven in manpage en in de online documentatie).<br \/>\n   Er zijn zwakke pogingen gedaan om de leesbaarheid van de site op telefoons te verbeteren.<\/p>\n<li class=\"l\"> Vanuit het perspectief van ontwikkelaars heeft re2c een meer volledige debug-subsysteem gekregen.<br \/>\n   De debugcode is nu uitgeschakeld in de release-builds en<br \/>\n   en kan worden ingeschakeld met de configure-optie &#171;&#8212;enable-debug&#187;.<\/p>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Bron: <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.3 - 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\/nl\/blog\/news\/vypusk-generatora-leksicheskih-analizatorov-re2c-1-2\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47Uitgave van de lexicale analyzer generator re2c 1.2 | ProHoster","description":"De release van re2c, een gratis lexicale generator, heeft plaatsgevonden.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-generatora-leksicheskih-analizatorov-re2c-1-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/36745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=36745"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/36745\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=36745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=36745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=36745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}