Π’ ΠΏΠΎΠ½Π΅Π΄Π΅Π»Π½ΠΈΠΊ, 20 юли, бСшС пусната вСрсията Π½Π° re2c, Π±ΡŠΡ€Π· Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° лСксикалСн Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€.
Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΅Π·ΠΈΠΊ Go
    (Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΎ ΠΈΠ»ΠΈ с опцията --lang go Π·Π° re2c, ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ самостоятСлна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° re2go).
    ДокумСнтацията Π·Π° C ΠΈ Go сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ тСкст, Π½ΠΎ с Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½
    ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΊΠΎΠ΄ΠΎΠ²Π΅. ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚Π° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π² re2c Π΅ напълно ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ
    трябва Π΄Π° улСсни ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π½ΠΎΠ²ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅.

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π° систСма Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° CMake (благодаря ligfx!).
    ΠžΠΏΠΈΡ‚ΠΈΡ‚Π΅ Π·Π° ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° re2c Π² CMake са ΠΏΡ€Π°Π²Π΅Π½ΠΈ ΠΎΡ‚ дълго Π²Ρ€Π΅ΠΌΠ΅, Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈ ligfx Π½ΠΈΠΊΠΎΠΉ
    ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ цялостно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.
    Π‘Ρ‚Π°Ρ€Π°Ρ‚Π° систСма Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Autotools ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°,
    ΠΈ Π² ΠΎΠ±ΠΎΠ·Ρ€ΠΈΠΌΠΎ Π±ΡŠΠ΄Π΅Ρ‰Π΅ няма ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° изоставянСто ΠΌΡƒ (отчасти Π·Π° Π΄Π° Π½Π΅ сС създава
    ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° разпространСниС, отчасти ΠΏΠΎΡ€Π°Π΄ΠΈ старата систСма Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅
    ΠΏΠΎ-стабилСн ΠΈ ΠΊΡ€Π°Ρ‚ΡŠΠΊ ΠΎΡ‚ новия).
    И Π΄Π²Π΅Ρ‚Π΅ систСми са Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ тСствани с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Travis CI.

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° интСрфСйсния ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅
    Π³Π΅Π½Π΅Ρ€ΠΈΡ‡Π΅Π½ API (Π³Π΅Π½Π΅Ρ€ΠΈΡ‡Π΅Π½ API). ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ API Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ посочСни във формуляра
    Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ макроси. Π‘Π΅Π³Π° Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ
    Π½ΠΈΠ·ΠΎΠ²Π΅ с ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° шаблона във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° @@{name} ΠΈΠ»ΠΈ просто @@ (Π°ΠΊΠΎ
    ΠΈΠΌΠ° само Π΅Π΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ ΠΈ няма двусмислиС). Π‘Ρ‚ΠΈΠ»ΡŠΡ‚ Π½Π° API ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°
    re2c:api:style (стойността Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ опрСдСля функционалния стил, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ стойността Π² свободна Ρ„ΠΎΡ€ΠΌΠ° Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½Π°).

  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° опцията -c, --start-conditions, която Π²ΠΈ позволява Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ няколко
    Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ лСксСри Π² Π΅Π΄ΠΈΠ½ re2c Π±Π»ΠΎΠΊ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅
    ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π½Π°Ρ€Π°Π²Π½ΠΎ с условнитС ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ няколко Π½Π΅ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ условни
    Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π² Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ».
    ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ -r, --reuse (ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Π±Π»ΠΎΠΊ
    Π² Π΄Ρ€ΡƒΠ³ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅) Π² комбинация с ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ -c, --start-conditions ΠΈ -f, --storable-state
    (лСксСр със ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ място
    ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΠΎ-късно).

  • ΠŸΠΎΠΏΡ€Π°Π²Π΅Π½Π° Π΅ Π³Ρ€Π΅ΡˆΠΊΠ° Π² новодобавСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° края Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ
    (ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ EOF), ΠΊΠΎΠ΅Ρ‚ΠΎ Π² Ρ€Π΅Π΄ΠΊΠΈ случаи Π΅ Π΄ΠΎΠ²Π΅Π»ΠΎ Π΄ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°
    ΠΏΡ€ΠΈΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ‰ΠΈ сС ΠΏΡ€Π°Π²ΠΈΠ»Π°.

  • ΠžΠΏΡ€ΠΎΡΡ‚Π΅Π½ процСс Π½Π° стартиранС. ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° систСмата Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π²Π΅Ρ‡Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π°ΡˆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ
    построСн re2c, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ°ΠΌΠΎΠ²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅.
    Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ зависимости (Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π° Π½Π° зависимостта сС ΠΎΠΊΠ°Π·Π°
    Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅Π½, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ систСми Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π΅ харСсват).
    Π‘Π΅Π³Π°, Π·Π° Π΄Π° сС изградят ΠΎΡ‚Π½ΠΎΠ²ΠΎ лСксСри, сС изисква ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ
    ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΉΡ‚Π΅ систСмата Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° RE2C_FOR_BUILD.

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ Π½Π° всички, ΠΊΠΎΠΈΡ‚ΠΎ допринСсоха Π·Π° Ρ‚ΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅!

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

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