Air Dihaoine, Lùnastal 2, chaidh sgaoileadh re2c, gineadair an-asgaidh de mhion-sgrùdairean briathrachais airson na cànanan C agus C ++, fhoillseachadh. Chaidh Re2c a sgrìobhadh ann an 1993 le Peter Bamboulis mar ghineadair deuchainneach de mhion-sgrùdairean briathrachais fìor luath, eadar-dhealaichte bho ghineadairean eile le astar a’ chòd a chaidh a chruthachadh agus eadar-aghaidh cleachdaiche neo-àbhaisteach sùbailte a leigeas le sgrùdairean a bhith freumhaichte gu furasta agus gu h-èifeachdach ann am bunait còd a tha ann mu thràth. Bhon uairsin, chaidh am pròiseact a leasachadh leis a’ choimhearsnachd agus tha e fhathast na àrd-ùrlar airson deuchainnean agus rannsachadh ann an raon gràmair foirmeil agus innealan stàite crìochnaichte.
Prìomh innleachdan ann an dreach 1.2:
Chuir sinn dòigh ùr (sìmplidh) ris gus sùil a thoirt airson deireadh an dàta cuir a-steach
(Beurla “EOF rule”).
Airson seo, chaidh an rèiteachadh re2c:eof a chur ris,
a’ leigeil leat an caractar crìochnachaidh a thaghadh,
agus riaghailt $ sonraichte a dh' fheudas an lexer
soirbheachail gu deireadh an dàta cuir a-steach.
Gu h-eachdraidheil, tha re2c a’ toirt seachad taghadh de ghrunn dhòighean dearbhaidh airson
deireadh cuir a-steach ag atharrachadh ann an cuingealachadh, èifeachdas agus sìmplidheachd
iarrtasan. Tha an dòigh ùr air a dhealbhadh gus còd sgrìobhaidh a dhèanamh nas sìmplidhe, fhad 'sa tha
fhad ‘s a tha iad fhathast èifeachdach agus iomchaidh gu farsaing. Seann dòighean
fhathast ag obair agus is dòcha gum b’ fheàrr leotha ann an cuid de chùisean.
Chuir sinn ris comas faidhlichean taobh a-muigh a thoirt a-steach a’ cleachdadh stiùireadh
/*! cuir a-steach: re2c "file.re" */ far a bheil file.re
is e seo ainm an fhaidhle in-ghabhail. Bidh Re2c a’ coimhead airson faidhlichean san eòlaire fhaidhlichean a’ toirt a-steach,
a bharrachd air an liosta de shlighean a chaidh a shònrachadh leis an roghainn -I.
Faodaidh faidhlichean eile a bhith air an toirt a-steach.
Tha Re2c a’ toirt seachad faidhlichean “àbhaisteach” anns an in-ghabhail / eòlaire
pròiseact - thathar an dùil gun cruinnich mìneachaidhean feumail an sin
abairtean cunbhalach, rudeigin mar an leabharlann àbhaisteach.
Gu ruige seo, air iarrtas luchd-obrach, chaidh aon fhaidhle le mìneachaidhean de roinnean Unicode a chur ris.
Chuir sinn ris a’ chomas air faidhlichean cinn a ghineadh le neo-riaghailteach
susbaint a’ cleachdadh na roghainnean -t -type-header (no iomchaidh
rèiteachaidhean) agus stiùiridhean ùra /*! header: re2c: air */ agus
/*! bann-cinn: re2c: dheth */. Faodaidh seo a bhith feumail ann an cùisean far a bheil
nuair a dh’fheumas re2c mìneachaidhean a ghineadh air caochladairean, structaran agus macros,
cleachdadh ann an aonadan eadar-theangachaidh eile.
Tha Re2c a-nis a’ tuigsinn litrichean UTF8 agus clasaichean caractar ann an abairtean cunbhalach.
Gu gnàthach, bidh re2c a’ parsadh abairtean mar “∀x ∃y” mar.
sreath de charactaran ASCII 1-bit e2 88 80 78 20 e2 88 83 79
(còdan hex), agus feumaidh luchd-cleachdaidh teicheadh bho charactaran Unicode le làimh:
"u2200x u2203y". Tha seo gu math mì-ghoireasach agus ris nach robh dùil dha mòran
luchd-cleachdaidh (mar a chithear bho aithisgean bug cunbhalach). Mar sin a-nis
Tha re2c a’ toirt seachad roghainn còdachaidh --input ,
a leigeas leat an giùlan atharrachadh agus parse “∀x ∃y” mar
2200 78 20 2203 79.
Tha Re2c a-nis a’ ceadachadh blocaichean re2c cunbhalach a chleachdadh ann am modh -r --reuse.
Tha seo goireasach ma tha mòran bhlocaichean anns an fhaidhle cuir a-steach agus dìreach cuid dhiubh
feumar ath-chleachdadh.
A-nis faodaidh tu an cruth rabhaidhean agus teachdaireachdan mearachd a shuidheachadh
a’ cleachdadh an roghainn ùr --location-format . Tha cruth GNU air a thaisbeanadh
mar ainm faidhle: loidhne: colbh :, agus an cruth MSVC mar ainm faidhle (loidhne, colbh).
Faodaidh am feart seo a bhith feumail dha leannanan IDE.
Chaidh roghainn --verbose a chur ris cuideachd, a bhios a’ clò-bhualadh teachdaireachd buaidh ghoirid ma bhios e soirbheachail.
Chaidh am modh “co-chòrdalachd” le flex a leasachadh - chaidh cuid de mhearachdan parsaidh a shuidheachadh agus
prìomhachas gnìomhaiche ceàrr ann an cùisean ainneamh.
Gu h-eachdraidheil, thug an roghainn -F --flex-support cothrom dhut còd a sgrìobhadh
measgaichte ann an stoidhle flex agus stoidhle re2c, a tha ga dhèanamh beagan duilich parsadh.
Is ann ainneamh a thathas a’ cleachdadh modh co-chòrdalachd Flex ann an còd ùr,
ach tha re2c a' leantainn air adhart a' toirt taic dha airson co-fhreagarrachd air ais.
Bidh gnìomhaiche toirt air falbh clas caractar / a-nis a’ buntainn
mus tèid an còdachadh a leudachadh, a leigeas leis a chleachdadh ann an àireamh nas motha de chùisean,
ma thèid còdachadh faid caractar caochlaideach a chleachdadh (mar eisimpleir UTF8).
Tha am faidhle toraidh a-nis air a chruthachadh gu atamach: bidh re2c a’ cruthachadh faidhle sealach an toiseach
agus a 'sgrìobhadh an toradh a-steach ann, agus an uairsin ag ath-ainmeachadh am faidhle sealach chun an toraidh
aon obrachadh.
Bho shealladh an luchd-leasachaidh, tha re2c air fo-shiostam nas coileanta fhaighinn
debugging Tha còd dì-bhugachaidh a-nis à comas ann an togail fuasglaidh agus
Faodar a chomasachadh leis an roghainn rèiteachaidh --enable-debug.
Thug an naidheachd seo ùine mhòr - cha mhòr bliadhna air fad.
Chaidh a 'mhòr-chuid den ùine, mar a bha e an-còmhnaidh, a chosg air frèam teòiridheach agus sgrìobhadh a leasachadh
artaigilean "Tharraing submatch POSIX èifeachdach air NFA".
Tha na h-algorithms a tha air am mìneachadh san artaigil air an cur an gnìomh anns an leabharlann deuchainneach libre2c
(tha togail an leabharlainn agus slatan-tomhais ciorramach gu bunaiteach agus tha e air a chomasachadh leis an roghainn rèiteachaidh
--comas-libs). Chan eilear den bheachd gu bheil an leabharlann mar cho-fharpaiseach don fheadhainn a th’ ann
pròiseactan mar RE2, ach mar àrd-ùrlar rannsachaidh airson leasachadh ùr
algorithms (a ghabhas cleachdadh an uairsin ann an re2c no ann am pròiseactan eile).
Tha e cuideachd goireasach bho shealladh deuchainn, slatan-tomhais agus cruthachadh ceangail ri cànanan eile.
Mòran taing bhon luchd-leasachaidh re2c don a h-uile duine a chuidich leis an fhoillseachadh seo,
agus don choimhearsnachd san fharsaingeachd airson beachdan, aithrisean air bug, badan, misneachd, msaa. ;]