19 ΠΌΠ°ΡΡ Π±Π΅ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ C++ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Lug, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ° Π²Π³ΡΠ°Π΄Π΅Π½ ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ Π΅Π·ΠΈΠΊ Π·Π° ΠΈΠ·ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π³ΡΠ°ΠΌΠ°ΡΠΈΠΊΠΈ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ, ΠΈ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Π½Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ MIT.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°:
- ΠΡΡΠ΅ΡΡΠ²Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π½Π°ΠΏΠΎΠΌΠ½ΡΡ Π½Π° Π΅Π·ΠΈΡΠΈ Π·Π° Π²ΡΠ½ΡΠ½ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΈ Π½Π° ΠΏΠ°ΡΡΠ΅ΡΠΈ, Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°ΡΡΠΈΠ±ΡΡΠΈ ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΠΈ Π³ΡΠ°ΠΌΠ°ΡΠΈΠΊΠΈ Ρ ΡΠ°Π±Π»ΠΈΡΠΈ Π·Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ, ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΈ.
- Π‘Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠΈ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Ρ Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·.
- Π―ΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½ΠΈ ΠΈ Π»Π΅ΠΊΡΠΈΠΊΠ°Π»Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π½Π΅ΡΠ²Π½ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½Π΅ Π½Π° ΠΏΡΠ°Π·Π½ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½Π° ΠΈ ΠΊΠΎΡΠ²Π΅Π½Π° Π»ΡΠ²Π° ΡΠ΅ΠΊΡΡΡΠΈΡ, Ρ Π½ΠΈΠ²Π° Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π·Π° ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΈΠ·ΡΠ°Π·ΠΈ Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π»ΡΠ²Π° ΠΈ Π΄ΡΡΠ½Π° ΡΠ΅ΠΊΡΡΡΠΈΡ.
- ΠΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠ΅ΠΊΡΡ Π² UTF-8 ΡΠΎΡΠΌΠ°Ρ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ 1 ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ 2 ΠΎΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡ UTS #18 Unicode Regular Expressions.
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ ΠΏΡΠΎΠ²Π°Π»ΠΈ, ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠ° ΡΠΈΡΠΈΠ½Π° ΠΈ ΠΏΠΎΠ΄ΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΡΠ»Π°ΡΠΈΠΈ.
- Header-only Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ° ΡΠ°ΠΌΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° C++17. ΠΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ C++20 ΠΈ C++23.
- ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ°Π»ΡΠΊ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°, Ρ ΡΠ΅Π» Π΄Π° ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΎΠ±ΡΠΈΡΡ Π±ΡΠΎΠΉ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ Π·Π°Π³Π»Π°Π²Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎΠ΄ 6000 ΡΠ΅Π΄Π° Π»Π°ΠΊΠΎΠ½ΠΈΡΠ΅Π½ ΠΊΠΎΠ΄.
Π‘ΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ Π·Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ. ΠΠΎΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° collect<C>[e] ΡΠΈΠ½ΡΠ΅Π·ΠΈΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΈΠ»ΠΈ Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΎΡ ΡΠΈΠΏ C, ΡΡΡΡΠΎΡΡ ΡΠ΅ ΠΎΡ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ, ΡΡΠ±ΡΠ°Π½ΠΈ ΠΎΡ Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈ ΠΈΠ»ΠΈ ΡΠΈΠ½ΡΠ΅Π·ΠΈΡΠ°Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ Π² ΠΈΠ·ΡΠ°Π·Π° e. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΠΎΠ²Π°, Π½ΠΎΠ²ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ synthesize<C,Aβ¦>[e], synthesize_shared<C,Aβ¦>[e] ΠΈ synthesize_unique<C,Aβ¦>[e] ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π·Π° ΡΠΈΠ½ΡΠ΅Π· Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ, ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΎΡ Π°ΡΡΠΈΠ±ΡΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π² ΠΈΠ·ΡΠ°Π·Π° e.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ° synthesize_collect, ΠΊΠΎΡΡΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈΡΠ΅ collect ΠΈ synthesize Ρ ΡΠ΅Π» ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π±ΡΠΎΡ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈΡΠ΅ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΠΌΠ°ΡΠΈΠ²ΠΈ ΠΎΡ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈΠ»ΠΈ Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΈΡΡ ΠΊΠ»Π°Ρ lug::recursive_wrapper Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² Π΄ΡΡΠ²Π΅ΡΠ° Π½Π° Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ std::variant.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ° Unicode 16.0.0 ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π² CMakeLists.txt.
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π΅ ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ ΠΈ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ASCII ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π±ΡΡΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΌΠΎ Π½Π° ASCII ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΈ ΠΎΡ ΠΊΠΎΠ΄Π° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Unicode.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ° ΠΎΠΏΠΊΠΎΠ΄ΠΈΡΠ΅ test Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΎΠΏΠΊΠΎΠ΄ΠΈΡΠ΅ repeat Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π½ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ. Π’Π΅Π·ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° Π΄ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅.
- Π£Π²Π΅Π»ΠΈΡΠ΅Π½Π° Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π·Π° std::istream, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ, ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΠΎΡΡΡΠΎΡΠ΅Π½ Π²Ρ ΠΎΠ΄ Π·Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π½ΠΈ ΡΠ΅ΡΠΈΠΈ ΠΈΠ»ΠΈ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ Π³ΡΠ°ΠΌΠ°ΡΠΈΠΊΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° std::istream Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½Π° Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ Π·Π°Π³Π»Π°Π²Π΅Π½ ΡΠ°ΠΉΠ» . Π’ΠΎΠ²Π° ΡΡΠΊΡΠ°ΡΠ°Π²Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΡ Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π·Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎ Π²Ρ ΠΎΠ΄\/ΠΈΠ·Ρ ΠΎΠ΄.
- ΠΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½Π° Π΅ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΠ°ΡΡΠ΅ΡΠ° Ρ ΠΈΠ½Π»Π°ΠΉΠ½Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ Π² lug::basic_parser Π·Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΡΠ΅ΠΊΠΎΠ²ΠΈΡ ΡΡΠ΅ΠΉΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ Π² Π²Π΅ΡΡΠΈΡ 0.4.0, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
- ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° ΠΏΠ°ΡΡΠ΅Ρ Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½. BASIC, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, FNA(X)) ΡΠΏΠΈΡΠ°Ρ Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΡΠ΅Π½ΠΊΠ°. Π’ΠΎΠ²Π° Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΎ ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π²Π΅ΡΡΠΈΡ 0.4.0, ΠΊΠΎΠΈΡΠΎ Π½ΡΠ»ΠΈΡΠ°Ρ Π° lug::environment ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ lug::environment::should_reset_on_parse Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ½Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π²ΡΡΡ Ρ ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π½Π° ΠΎΠΊΠΎΠ»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΠ»ΠΎΠΆΠ½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
- ΠΡΠ΅ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° Π΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΡΠ° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ include.
- ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎ-ΡΠΈΡΠΎΠΊΠ° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Π² GitHub CI Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈ (GCC 9/10/11/12, Clang 14/15/16/17).
- Π GitHub CI ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ Clang ΠΈ MSVC.
- Π GitHub CI ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Address Sanitizer (ASan), Undefined Behavior Sanitizer (UBSan) ΠΈ Memory Sanitizer (MSan).
- Π GitHub CI Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ clang-tidy.
- Π GitHub CI Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° Ubuntu 20.04.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
