Հետ
Ծրագրավորում և բաց կոդ

Ինչպես ես տեղափոխեցի լեքսերի կառուցումը compile-time

Habr
Advertisement468 × 90
Ինչպես ես տեղափոխեցի լեքսերի կառուցումը compile-time

Հոդվածի հեղինակը կիսվում է HydraScript-ի լեքսերի մշակման գործընթացը .NET source generators-ի միջոցով օպտիմալացնելու իր փորձով: Նախկինում գործընթացը պահանջում էր կանոնավոր արտահայտությունների ձեռքով պատճենում, ինչը անհարմար էր և հակված սխալների: Հիմնական դժվարությունը մեկ գեներատորի արդյունքը մյուսին փոխանցելու անհրաժեշտությունն էր, որն օգտագործում է [GeneratedRegex] ատրիբուտը: Այս խնդիրը լուծելու համար հեղինակը խորությամբ ուսումնասիրել է Roslyn-ի աշխատանքի մեխանիզմը՝ կոդի գեներատորների կատարման հերթականությունը ճիշտ կարգավորելու համար: Արդյունքում հաջողվել է ամբողջությամբ ավտոմատացնել լեքսերի կառուցման գործընթացը՝ այն տեղափոխելով կոմպիլյացիայի փուլ: Սա թույլ է տալիս նկարագրել թոքենները մեկ անգամ և բացառել կոդի ձեռքով թարմացման անհրաժեշտությունը: Հոդվածը օգտակար կլինի .NET-ում Roslyn-ի և կոդերի գեներացման հետ աշխատող ծրագրավորողների համար, քանի որ այն բացահայտում է մեկ նախագծի շրջանակներում մի քանի գեներատորների փոխգործակցության նրբությունները:

This is a summary. Read the full article at the original source:

Habr
Advertisement468 × 90
Share
Ծրագրավորում և բաց կոդ

Կապակցված

Մենֆրեյմների արդիականացումը մնում է բարդ խնդիր՝ COBOL կոդի մեջ տասնամյակների ընթացքում կուտակված բիզնես տրամաբանության պատճառով: Մինչ գեներատիվ AI-ն ն…

Dev.to

Այս հոդվածում հեղինակը քննարկում է ծրագրային ապահովման մոդուլային թեստավորման ժամանակ մոկ-օբյեկտների (mocks) օգտագործման հետ կապված տարածված դժվարությ…

Habr
Advertisement970 × 250