ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° re2c лСксСр Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ 4.0

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° Π΅ вСрсията Π½Π° re2c 4.0 - Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° лСксикални Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ (извСстСн ΠΎΡ‰Π΅ ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π½Π° рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ Π² ΠΊΠΎΠ΄ Π½Π° цСлСвия Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅). Re2c Π΅ спСциализиран Π² Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±ΡŠΡ€Π·ΠΈ ΠΈ лСсни Π·Π° Π²Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ лСксСри ΠΈ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ своя ΠΏΠΎ-извСстСн ΠΊΠΎΠ»Π΅Π³Π° Flex Π² своя гъвкав интСрфСйс, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π½Π΅Ρ‚Π°Π±ΡƒΠ»Π°Ρ€Π½ΠΈ лСксСри ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° подсъвпадСниС, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ дСтСрминистични ΠΊΡ€Π°ΠΉΠ½ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈ (TDFA). re2c сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ скоростта Π½Π° лСксСра Π΅ Π²Π°ΠΆΠ½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ninja ΠΈ PHP.

Π’ΡŠΠ² вСрсия 4.0 подсистСмата Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ бСшС Ρ€Π°Π΄ΠΈΠΊΠ°Π»Π½ΠΎ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈ възмоТно добавянСто Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° осСм Π½ΠΎΠ²ΠΈ Π΅Π·ΠΈΠΊΠ° (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) Π² допълнСниС към Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈΡ‚Π΅ (C /C++, Go, Rust), Π° ΡΡŠΡ‰ΠΎ ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ‰ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° добавянС Π½Π° Π½ΠΎΠ²ΠΈ Π΅Π·ΠΈΡ†ΠΈ Ρ‡Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° ΠΊΠΎΠ΄ Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½ Π·Π° ΠΏΡ€Π΅Π²ΠΎΠ΄Π° Π½Π° Π²Π΅Ρ‡Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ ΠΊΡ€Π°Π΅Π½ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ Π² ΠΊΠΎΠ΄, Ρ‚.Π΅. Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Π΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ управляващи конструкции, Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ, общия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Π½ ΠΌΠΎΠ΄Π΅Π» ΠΈ Ρ‚.Π½., ΠΊΠΎΠΈΡ‚ΠΎ са подходящи Π·Π° цСлСвия Π΅Π·ΠΈΠΊ. ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° цялата Ρ‚Π°Π·ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° бСшС част ΠΎΡ‚ изходния ΠΊΠΎΠ΄ Π½Π° re2c ΠΈ Π·Π° Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π½ΠΎΠ² Π΅Π·ΠΈΠΊ, Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π·Π°ΠΊΡŠΡ€ΠΏΠΈΡ‚Π΅ изходния ΠΊΠΎΠ΄ ΠΈ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ re2c. Π’Π°ΠΊΠΈΠ²Π° ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π½Π΅ бяха ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ Π² основното Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π±Π΅Π· внСдряванС Π½Π° стандартСн Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΈ тСстовС, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ услоТни цСлия процСс.

Π‘Π΅Π³Π° цялата Ρ‚Π°Π·ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ прСмСстСна Π² синтактични Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ - тСкстови ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ прСдоставСни ΠΎΡ‚ потрСбитСля (re2c ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стандартни ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅). Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ Π½Π° re2c Π΅ напълно свободСн ΠΎΡ‚ спСцифични Π·Π° Π΅Π·ΠΈΠΊΠ° подробности ΠΈ Ρ€Π°Π·Ρ‡ΠΈΡ‚Π° само Π½Π° синтактичния Ρ„Π°ΠΉΠ». ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΡ‚ ΠΌΠΎΠΆΠ΅ частично Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ синтактичСн Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π΄Π° напишС Π½ΠΎΠ² ΠΎΡ‚ Π½ΡƒΠ»Π°Ρ‚Π°. Всички ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ ΠΈΠΌΠ°Ρ‚ пълна докумСнтация с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ.

Π˜Π·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π·Π° опростяванС Π½Π° потрСбитСлския интСрфСйс ΠΈ подобряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Π³Ρ€ΡƒΠΏΠΈΡ‚Π΅ Π·Π° улавянС. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠ½Π»Π°ΠΉΠ½ срСда Π·Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€