Π’ пятницу 2-Π³ΠΎ августа Π²Ρ‹ΡˆΠ΅Π» Ρ€Π΅Π»ΠΈΠ· re2c — свободного Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° лСксичСских Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² для языков C ΠΈ C++. Напомним, Ρ‡Ρ‚ΠΎ re2c Π±Ρ‹Π» написан Π² 1993 Π³ΠΎΠ΄Ρƒ ΠŸΠΈΡ‚Π΅Ρ€ΠΎΠΌ Бамбулисом ΠΊΠ°ΠΊ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‡Π΅Π½ΡŒ быстрых лСксичСских Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ сгСнСрированного ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΈ эффСктивно Π²ΡΡ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ. Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ развиваСтся сообщСством ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΎΠΉ для экспСримСнтов ΠΈ исслСдований Π² области Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ².

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° Π² вСрсии 1.2:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ (ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ) способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΊΠΎΠ½Π΅Ρ† Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
    (Π°Π½Π³Π». «EOF rule»).
    Для этого Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° конфигурация re2c:eof,
    ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ,
    ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ $, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ срабатываСт Ссли лСксСр
    ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ достиг ΠΊΠΎΠ½Ρ†Π° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
    Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ re2c прСдоставляСт Π½Π° Π²Ρ‹Π±ΠΎΡ€ нСсколько способов ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π°
    ΠΊΠΎΠ½Π΅Ρ† Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎ ограничСнности, эффСктивности ΠΈ простотС
    примСнСния. Новый способ ΠΏΡ€ΠΈΠ·Π²Π°Π½ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ написаниС ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈ этом
    ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ эффСктивным ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ. Π‘Ρ‚Π°Ρ€Ρ‹Π΅ способы
    ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… случаях.

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹
    /*!include:re2c "file.re" */, Π³Π΄Π΅ file.re
    это имя Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Re2c ΠΈΡ‰Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°,
    Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² спискС ΠΏΡƒΡ‚Π΅ΠΉ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ -I.
    Π’ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹.
    Re2c прСдоставляСт «ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅» Ρ„Π°ΠΉΠ»Ρ‹ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ include/
    ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° — прСдполагаСтся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ опрСдСлСния
    рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Π΄ΡƒΡ…Π΅ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
    Пока Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΠΏΡ€ΠΎΡΡŒΠ±Π°ΠΌ трудящихся Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» с опрСдСлСниями ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Unicode.

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ
    содСрТаниСм ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΡ†ΠΈΠΉ -t —type-header (ΠΈΠ»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…
    ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ) ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² /*!header:re2c:on*/ ΠΈ
    /*!header:re2c:off*/. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² случаях,
    ΠΊΠΎΠ³Π΄Π° re2c Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, структур ΠΈ макросов,
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… трансляции.

  • Re2c Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ UTF8-Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΈ классы символов Π² рСгулярных выраТСниях.
    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, re2c парсит выраТСния Π²Ρ€ΠΎΠ΄Π΅ "βˆ€x βˆƒy" ΠΊΠ°ΠΊ.
    ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 1-Π±ΠΈΡ‚Π½Ρ‹Ρ… ASCII-символов e2 88 80 78 20 e2 88 83 79
    (hex-ΠΊΠΎΠ΄Ρ‹), ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ приходится ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Unicode-символы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ:
    "u2200x u2203y". Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ для ΠΌΠ½ΠΎΠ³ΠΈΡ…
    ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (ΠΎ Ρ‡Ρ‘ΠΌ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΡŽΡ‚ постоянныС Π±Π°Π³ Ρ€Π΅ΠΏΠΎΡ€Ρ‚Ρ‹). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ
    re2c прСдоставляСт ΠΎΠΏΡ†ΠΈΡŽ —input-encoding <ascii | utf8>,
    которая позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ "βˆ€x βˆƒy" ΠΊΠ°ΠΊ
    2200 78 20 2203 79.

  • Re2c Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ re2c-Π±Π»ΠΎΠΊΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ -r —reuse.
    Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ссли Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» содСрТит ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠΎΠ², ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ…
    нуТдаСтся Π² ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ использовании.

  • Появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…
    с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ —location-format <gnu | msvc>. GNU-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ отобраТаСтся
    ΠΊΠ°ΠΊ filename:line:column:, Π° MSVC-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ — ΠΊΠ°ΠΊ filename(line,column).
    Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡΠΌ IDE.
    Π’Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция —verbose, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ побСдоносноС сообщСниС Π² случаС успСха.

  • Π‘Ρ‹Π» Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ «ΡΠΎΠ²ΠΌΠ΅ΡΡ‚имости» с flex — исправлСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ошибки Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΈ
    Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² Ρ€Π΅Π΄ΠΊΠΈΡ… случаях.
    Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ опция -F —flex-support позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄
    Π²ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΊΡƒ Π² стилС flex ΠΈ Π² стилС re2c, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ затрудняСт синтаксичСский Ρ€Π°Π·Π±ΠΎΡ€.
    Π Π΅ΠΆΠΈΠΌ совмСстимости с flex Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π΅,
    Π½ΠΎ re2c ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости.

  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вычитания ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… классов / Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ примСняСтся
    Π΄ΠΎ разворачивания ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² большСм числС случаСв,
    Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ символа (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ UTF8).

  • Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ создаётся Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ: re2c сначала создаёт Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
    ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚ Π² Π½Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ
    ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ.

  • ДокумСнтация Π±Ρ‹Π»Π° дописана ΠΈ пСрСписана; Π² частности, Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅
    Π³Π»Π°Π²Ρ‹ ΠΏΡ€ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°
    ΠΈ ΠΏΡ€ΠΎ способы ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΊΠΎΠ½Π΅Ρ† Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
    Новая докумСнтация собрана Π² Π²ΠΈΠ΄Π΅
    ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉΠ³ΠΎ одностраничного ΠΌΠ°Π½ΡƒΠ°Π»Π°
    с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ (ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ исходники ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² manpage ΠΈ Π² ΠΎΠ½Π»Π°ΠΉΠ½-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ).
    Π‘Ρ‹Π»ΠΈ прСдприняты слабыС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ сайта Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ….

  • Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², re2c обзавёлся Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ подсистСмой
    ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. ΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π² Ρ€Π΅Π»ΠΈΠ·Π½Ρ‹Ρ… сборках ΠΈ
    ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ configure-ΠΎΠΏΡ†ΠΈΠΈ —enable-debug.

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅Π»ΠΈΠ· занял Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя — ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ†Π΅Π»Ρ‹ΠΉ Π³ΠΎΠ΄.
Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠ°ΠΊ всСгда, ΡƒΡˆΠ»ΠΎ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ тСорСтичСской Π±Π°Π·Ρ‹ ΠΈ написаниС
ΡΡ‚Π°Ρ‚ΡŒΠΈ «Efficient POSIX Submatch Extraction on NFA».
Алгоритмы, описанныС Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ libre2c
(сборка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ² Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ configure-ΠΎΠΏΡ†ΠΈΠ΅ΠΉ
—enable-libs). Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π°Π΄ΡƒΠΌΠ°Π½Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ Π²Ρ€ΠΎΠ΄Π΅ RE2, Π° ΠΊΠ°ΠΊ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ…
Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² re2c ΠΈΠ»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…).
Π’Π°ΠΊΠΆΠ΅ это ΡƒΠ΄ΠΎΠ±Π½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния тСстирования, Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ² ΠΈ создания Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠ² ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ языкам.

Cпасибо ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² re2c всСм, ΠΊΡ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³ этому Ρ€Π΅Π»ΠΈΠ·Ρƒ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒΡΡ,
ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ сообщСству Π·Π° ΠΈΠ΄Π΅ΠΈ, Π±Π°Π³ Ρ€Π΅ΠΏΠΎΡ€Ρ‚Ρ‹, ΠΏΠ°Ρ‚Ρ‡ΠΈ, Π±ΠΎΠ΅Π²ΠΎΠΉ Π΄ΡƒΡ… ΠΈ Ρ‚.Π΄. ;]

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