Air 19 Mà rt, chaidh an leabharlann C ++ fhoillseachadh An t-Iuchar, a tha a 'cur an gnÏomh freumhaichte cà nan a tha sònraichte don à rainn airson parsers a chuir an cèill mar a chaidh a leudachadh grà mar de syntactic expressions, agus air a sgaoileadh fo chead MIT.
Feartan leabharlainn:
- Co-chòrdadh nà durrach mar chuimhneachan air cà nanan gineadair parser taobh a-muigh, le taic airson buadhan agus gnÏomhan semantach.
- Comas a bhith ag obair le grĂ mair a tha mothachail air co-theacsa le clĂ ran samhla, suidheachaidhean agus ro-innsean syntactic.
- Tha na parsairean gineadh air an cur ri chèile ann am bytecode agus air an cur gu bàs ann an inneal brÏgheil parsadh.
- Dealachadh soilleir eadar riaghailtean syntactic agus briathrachais leis aâ chomas a bhith aâ rèiteachadh leumadh soilleir de charactaran Ă ite geal.
- Taic airson ath-chuairteachadh clĂŹ dĂŹreach agus neo-dhĂŹreach, le ĂŹrean prĂŹomhachais gus fo-aithrisean a chuingealachadh le ath-chuairtean measgaichte clĂŹ is deas.
- Taic iomlan airson parsadh teacsa UTF-8, aâ toirt a-steach ĂŹre 1 agus pĂ irt de ghèilleadh ri ĂŹre 2 den inbhe theicnigeach Aithris Cunbhalach UTS #18 Unicode.
- LĂ imhseachadh mhearachdan agus faighinn air ais aâ cleachdadh fĂ illigidhean le bileag, riaghailtean ath-bheothachaidh, agus lĂ imhseachadh mhearachdan.
- SgrÚdadh fèin-ghluasadach air à ireamhan loidhne is cholbhan, leud tab gnà thaichte agus co-thaobhadh.
- Leabharlann bann-cinn a-mhà in a chleachdas an leabharlann à bhaisteach a-mhà in agus comasan inbhe C ++17. San à m ri teachd co-chòrdail ri inbhean C ++20 agus C ++23.
- Meud leabharlainn an Ïre mhath beag, leis an amas an à ireamh iomlan de loidhnichean anns a h-uile faidhle cinn a chumail gu nas lugha na 6000 loidhne de chòd pongail.
Liosta atharrachaidhean:
- Chaidh stiĂširidhean airson cruinneachadh agus buadhan stuthan a chuir an gnĂŹomh. StiĂšireadh cruinneachadh Ăšr a [e] aâ co-chur sreath no inneal ceangail de sheòrsa C anns a bheil eileamaidean cruinnichte bho bhuadhan a chaidh a shealbhachadh no air an co-chur ann an abairt e. Mar an ceudna, tha stiĂširidhean synthesize Ăšra ann [e], synthesize_shared [e] agus synthesize_unique [e] gus nithean, comharran cumanta agus comharran sònraichte a cho-chur, air an togail bho fheartan nam pĂ irtean san abairt e.
- Chaidh an stiĂšireadh synthesize_collect a chuir an gnĂŹomh, a tha aâ cothlamadh nan stiĂširidhean cruinneachaidh agus co-chur gus leughadh còd a leasachadh agus an Ă ireamh de theamplaidean a lughdachadh nuair a bhios tu aâ togail structaran dĂ ta iom-fhillte bho eileamaidean parsed. Tha seo gu sònraichte feumail airson cruinneachaidhean neadachaidh a chruthachadh, leithid sreath de stuthan no soithichean ceangail le seòrsachan luach iom-fhillte.
- Lug clas teamplaid air a chur ris ::recursive_wrapper gus eisimeileachd cearcallach ann an craobhan co-chòrdadh eas-chruthach a lĂ imhseachadh, gu sònraichte an fheadhainn a tha aâ cleachdadh std ::variant.
- Taic airson inbhe Unicode 16.0.0 agus taic a bharrachd airson innealan togail ann an CMakeLists.txt.
- Chaidh am mapadh eadar caractaran raon agus ASCII a bharrachadh, agus mar thoradh air sin thĂ inig leasachaidhean mòra ann an coileanadh airson obair giullachd teacsa cumanta. Chaidh geĂ rr-liostaichean sònraichte a chur ris airson a bhith aâ giullachd charactaran ASCII a-mhĂ in, a tha gu math nas luaithe na còd giullachd Unicode.
- Opcodes deuchainn air a chuir an gnÏomh gus mearachdan a mheudachadh agus còdan ath-aithris gus na caractaran à ite geal as fheà rr a dhèanamh. Bidh na optimizations sin air an là n chomasachadh san ath fhoillseachadh às deidh cruth-atharrachaidhean craoibhe abairt a tha san amharc.
- LĂ imhseachadh nas fheĂ rr air stòran cuir a-steach le buffering nas fheĂ rr agus aithris mhearachdan airson std ::istream, agus taic modh eadar-ghnĂŹomhach leasaichte a bhios aâ lĂ imhseachadh cuir a-steach loidhne-air-loidhne gu ceart airson seiseanan deireannach no airson grĂ mair loidhne.
- Gluais std :: taic istream gu faidhle cinn air leth . Bidh seo aâ lughdachadh Ăšine cruinneachaidh agus aâ lughdachadh eisimeileachd cinn airson pròiseactan nach eil feumach air gnĂŹomhachd sruthadh I/O.
- Parser ath-obraichte aâ rèiteachadh loidsig le bhith aâ toirt a-steach stiĂšireadh ann an lug :: basic_parser gus a bhith nas fheĂ rr a rèir na h-atharrachaidhean ailtireachd frèam stac a chaidh a thoirt a-steach ann an dreach 0.4.0, a leasaich eagrachadh còd agus coileanadh.
- Duilgheadas stèidhichte ann an eisimpleir parser BASIC, nuair a chaidh gnĂŹomhan gnĂ thaichte (me FNA(X)) a chrĂŹochnachadh rè luachadh. Chaidh seo adhbhrachadh le atharrachaidhean ann an dreach 0.4.0 a dh'ath-shuidhich lug ::Ă rainneachd rè obair parsaidh neadachaidh. Chaidh gnĂŹomh Ăšr, lug ::Ă rainneachd ::should_reset_on_parse, a chur ris gus smachd fĂŹor mhath a thoirt seachad air aâ ghiĂšlan seo, aâ leigeil leis an Ă rainneachd cumail aâ dol ann am parsailean neadachaidh nuair a bhios feum air.
- Chaidh bun-structar coileanta a chuir ris airson deuchainn a dhèanamh air prògraman sampall.
- Chaidh an rangachd eòlaire gabhail a-steach ath-thogail.
- Gus co-chòrdalachd nas fharsainge a thoirt seachad, tha GitHub CI air taic a chuir ri luchd-cruinneachaidh a bharrachd (GCC 9/10/11/12, Clang 14/15/16/17).
- Chaidh sgrĂšdairean statach Clang agus MSVC a chur ri GitHub CI.
- Sanitizer Seòladh a bharrachd (ASan), Sanitizer GiÚlan Neo-mhÏnichte (UBSan), agus Memory Sanitizer (MSan) gu GitHub CI.
- Chaidh amalachadh clang-sgiobalta a chur ri GitHub CI.
- Đ GitHub CI ŃдаНонО иŃпОНŃСОванио Ubuntu 20.04.
Source: linux.org.ru
