re2c 1.2

Ni ọjọ Jimọ, Oṣu Kẹjọ Ọjọ 2, itusilẹ ti re2c, olupilẹṣẹ ọfẹ ti awọn itupalẹ lexical fun awọn ede C ati C++, ti tu silẹ. Re2c ni a kọ ni ọdun 1993 nipasẹ Peter Bamboulis gẹgẹbi olupilẹṣẹ esiperimenta ti awọn olutupalẹ lexical ti o yara pupọ, ti o yatọ si awọn olupilẹṣẹ miiran nipasẹ iyara koodu ti ipilẹṣẹ ati wiwo olumulo ti o ni irọrun ti ko ni irọrun ti o fun laaye awọn atunnkanka lati ni irọrun ati daradara ni ifibọ sinu ipilẹ koodu to wa tẹlẹ. Lati igbanna, iṣẹ akanṣe naa ti ni idagbasoke nipasẹ agbegbe ati tẹsiwaju lati jẹ pẹpẹ fun awọn idanwo ati iwadii ni aaye ti awọn girama ti iṣe deede ati awọn ẹrọ ipinlẹ ipari.

Awọn imotuntun akọkọ ni ẹya 1.2:

  • Ṣafikun ọna tuntun (irọrun) lati ṣayẹwo fun opin data titẹ sii
    (Gẹẹsi "ofin EOF").
    Fun eyi, a ti ṣafikun atunto re2c: eof,
    gba ọ laaye lati yan ohun kikọ ebute,
    ati ofin $ pataki kan ti o ba ti lexer
    ni aṣeyọri de opin data titẹ sii.
    Itan-akọọlẹ, re2c n pese yiyan ti awọn ọna ijerisi pupọ fun
    opin awọn igbewọle ti o yatọ ni aropin, ṣiṣe ati ayedero
    awọn ohun elo. Awọn titun ọna ti a ṣe lati simplify kikọ koodu, nigba ti
    nigba ti o ku munadoko ati ki o ni opolopo wulo. Awọn ọna atijọ
    ṣi ṣiṣẹ ati pe o le jẹ ayanfẹ ni awọn igba miiran.

  • Ṣe afikun agbara lati ṣafikun awọn faili ita ni lilo itọsọna kan
    /*!pẹlu:re2c "file.re" */ nibiti file.re
    eyi ni orukọ faili pẹlu. Re2c n wa awọn faili ninu pẹlu itọsọna faili,
    bakannaa ninu atokọ ti awọn ọna ti a sọ nipa lilo aṣayan -I.
    Awọn faili to wa le pẹlu awọn faili miiran.
    Re2c n pese awọn faili “boṣewa” ninu akojọpọ/ilana
    ise agbese - o ti wa ni o ti ṣe yẹ wipe wulo itumo yoo kojọpọ nibẹ
    deede expressions, nkankan bi awọn boṣewa ìkàwé.
    Nitorinaa, ni ibeere ti awọn oṣiṣẹ, faili kan pẹlu awọn asọye ti awọn ẹka Unicode ti ṣafikun.

  • Ṣe afikun agbara lati ṣe ina awọn faili akọsori pẹlu lainidii
    akoonu nipa lilo awọn aṣayan -t --type-akọsori (tabi yẹ
    awọn atunto) ati awọn itọsọna titun /*! akọsori: re2c: lori * / ati
    /*!akọsori:re2c:pa*/. Eyi le wulo ni awọn ọran nibiti
    nigbati re2c nilo lati ṣe ipilẹṣẹ awọn asọye ti awọn oniyipada, awọn ẹya ati awọn macros,
    ti a lo ninu awọn ẹya itumọ miiran.

  • Re2c ni oye awọn ọrọ gangan UTF8 ati awọn kilasi ihuwasi ni awọn ikosile deede.
    Nipa aiyipada, re2c tumọ awọn ọrọ bi "∀x∃y" bi.
    lẹsẹsẹ 1-bit ASCII ohun kikọ e2 88 80 78 20 e2 88 83 79
    (awọn koodu hex), ati awọn olumulo ni lati sa fun awọn ohun kikọ Unicode pẹlu ọwọ:
    "u2200x u2203y". Eyi jẹ airọrun pupọ ati airotẹlẹ fun ọpọlọpọ
    awọn olumulo (bi ẹri nipasẹ awọn ijabọ kokoro igbagbogbo). Nitorina bayi
    re2c n pese aṣayan --input-encoding ,
    eyiti o fun ọ laaye lati yi ihuwasi pada ki o sọ “∀x∃y” bi
    2200 78 20 2203 79.

  • Re2c ni bayi ngbanilaaye lilo awọn bulọọki re2c deede ni ipo -r --atunlo.
    Eyi rọrun ti faili titẹ sii ni ọpọlọpọ awọn bulọọki ati diẹ ninu wọn nikan
    nilo lati tun lo.

  • Bayi o le ṣeto ọna kika ti awọn ikilo ati awọn ifiranṣẹ aṣiṣe
    lilo ọna kika tuntun --location-format . GNU ọna kika ti han
    bi filename:line:column:, ati MSVC kika bi filename(ila, iwe).
    Ẹya yii le wulo fun awọn ololufẹ IDE.
    Aṣayan --verbose tun ti ṣafikun, eyiti o tẹ ifiranṣẹ iṣẹgun kukuru kan ti o ba ṣaṣeyọri.

  • Ipo “ibaramu” pẹlu irọrun ti ni ilọsiwaju - diẹ ninu awọn aṣiṣe itọka ti jẹ ti o wa titi ati
    iṣaaju oniṣẹ ti ko tọ ni awọn iṣẹlẹ toje.
    Itan-akọọlẹ, aṣayan atilẹyin -F --flex gba ọ laaye lati kọ koodu
    adalu ni Flex ara ati re2c ara, eyi ti o mu kikopa kekere kan soro.
    Ipo ibaramu Flex jẹ ṣọwọn lo ninu koodu titun,
    ṣugbọn re2c tẹsiwaju lati ṣe atilẹyin fun ibaramu sẹhin.

  • Oṣiṣẹ iyokuro kilasi ohun kikọ / ni bayi kan
    ṣaaju fifi koodu sii, eyiti o fun laaye laaye lati lo ni nọmba nla ti awọn ọran,
    ti o ba ti lo fifi koodu ipari gigun ohun kikọ (fun apẹẹrẹ UTF8).

  • Faili ti o wu jade ni a ṣẹda ni atomiki: re2c ṣẹda faili igba diẹ ni akọkọ
    ati kọ abajade sinu rẹ, ati lẹhinna tunrukọ faili igba diẹ si iṣẹjade
    ọkan isẹ.

  • Awọn iwe ti pari ati tun kọ; ni pataki, awọn tuntun ni a ṣafikun
    awọn ipin nipa àgbáye saarin
    и nipa awọn ọna lati ṣayẹwo fun opin data titẹ sii.
    Awọn iwe titun ni a gba ni fọọmu naa
    a okeerẹ ọkan-iwe Afowoyi
    pẹlu awọn apẹẹrẹ (awọn orisun kanna ni a ṣe ni manpage ati ninu iwe ori ayelujara).
    Awọn igbiyanju ti ko dara ni a ti ṣe lati mu ilọsiwaju kika ti aaye naa wa lori awọn foonu.

  • Lati oju wiwo ti awọn olupilẹṣẹ, re2c ti ni eto ipilẹ-pipe diẹ sii
    n ṣatunṣe aṣiṣe Koodu yokokoro ti wa ni alaabo bayi ni awọn kikọ idasilẹ ati
    le mu ṣiṣẹ nipa lilo aṣayan atunto --enable-debug.

Itusilẹ yii gba akoko pipẹ - o fẹrẹ to ọdun kan.
Pupọ julọ akoko naa, bi nigbagbogbo, ni a lo lori idagbasoke ilana ilana ati kikọ
awọn nkan "Isediwon Submatch POSIX daradara lori NFA".
Awọn algoridimu ti a ṣapejuwe ninu nkan naa jẹ imuse ni ile-ikawe esiperimenta libre2c
(kikọ ile-ikawe ati awọn ala-ilẹ jẹ alaabo nipasẹ aiyipada ati pe o ṣiṣẹ nipasẹ aṣayan atunto
--agbara-libs). Ile-ikawe naa ko loyun bi oludije si ti wa tẹlẹ
ise agbese bi RE2, sugbon bi a iwadi Syeed fun awọn idagbasoke ti titun
awọn algoridimu (eyiti o le ṣee lo ni re2c tabi ni awọn iṣẹ akanṣe miiran).
O tun rọrun lati oju wiwo ti idanwo, awọn ipilẹ ati ṣiṣẹda awọn asopọ si awọn ede miiran.

O ṣeun lati ọdọ awọn olupilẹṣẹ re2c si gbogbo eniyan ti o ṣe iranlọwọ itusilẹ yii ṣẹlẹ,
ati si agbegbe ni gbogbogbo fun awọn imọran, awọn ijabọ kokoro, awọn abulẹ, iṣesi, ati bẹbẹ lọ. ;]

orisun: linux.org.ru

Fi ọrọìwòye kun