re2c 1.2 рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬрдирд░реЗрдЯрд░рдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рдЬрд╛рдЧрд╛ рдШреЗрддрд▓реА рд░реАрд▓рд┐рдЭ re2c, C рдЖрдгрд┐ C++ рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рд╡рд┐рдирд╛рдореВрд▓реНрдп рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬрдирд░реЗрдЯрд░. рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА re2c рд╣реЗ 1993 рдордзреНрдпреЗ рдкреАрдЯрд░ рдмрд╛рдВрдмреБрд▓рд┐рд╕ рдпрд╛рдВрдиреА рдЕрддрд┐рд╢рдп рд╡реЗрдЧрд╡рд╛рди рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╛рдВрдЪреЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЬрдирд░реЗрдЯрд░ рдореНрд╣рдгреВрди рд▓рд┐рд╣рд┐рд▓реЗ рд╣реЛрддреЗ, рдЬреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреЛрдбрдЪреНрдпрд╛ рдЧрддреАрдордзреНрдпреЗ рдЗрддрд░ рдЬрдирд░реЗрдЯрд░рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реЗ рд╣реЛрддреЗ рдЖрдгрд┐ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдпрдкрдгреЗ рд▓рд╡рдЪрд┐рдХ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╛рдВрдирд╛ рд╡рд┐рджреНрдпрдорд╛рди рдХреЛрдбрдордзреНрдпреЗ рд╕рд╣рдЬ рдЖрдгрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ. рдкрд╛рдпрд╛. рддреЗрд╡реНрд╣рд╛рдкрд╛рд╕реВрди, рд╣рд╛ рдкреНрд░рдХрд▓реНрдк рд╕рдореБрджрд╛рдпрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдФрдкрдЪрд╛рд░рд┐рдХ рд╡реНрдпрд╛рдХрд░рдг рдЖрдгрд┐ рдорд░реНрдпрд╛рджрд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрдирдЪреНрдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рддреАрд▓ рдкреНрд░рдпреЛрдЧ рдЖрдгрд┐ рд╕рдВрд╢реЛрдзрдирд╛рд╕рд╛рдареА рдПрдХ рд╡реНрдпрд╛рд╕рдкреАрда рдЖрд╣реЗ.

рд░рд┐рд▓реАрдЬрдЪреНрдпрд╛ рддрдпрд╛рд░реАрд▓рд╛ рдЬрд╡рд│рдкрд╛рд╕ рд╡рд░реНрд╖рднрд░ рд▓рд╛рдЧрд▓реЗ. рдмрд╣реБрддреЗрдХ рд╡реЗрд│, рдиреЗрд╣рдореАрдкреНрд░рдорд╛рдгреЗ, рдПрдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрдгрд┐ рд▓реЗрдЦрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдШрд╛рд▓рд╡рд▓рд╛ рдЧреЗрд▓рд╛
рд▓реЗрдЦ "NFA рд╡рд░ рдкреНрд░рднрд╛рд╡реА POSIX рд╕рдмрдореЕрдЪ рдПрдХреНрд╕реНрдЯреНрд░реЕрдХреНрд╢рди".
рд▓реЗрдЦрд╛рдд рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реЗ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд▓рд╛рдпрдмреНрд░рд░реА libre2c рдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрд╣реЗрдд
(рд▓рд╛рдпрдмреНрд░рд░реА рдЖрдгрд┐ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЪрд╛рдЪрдгреНрдпрд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдкрд░реНрдпрд╛рдп тАЬтАФenable-libsтАЭ рджреНрд╡рд╛рд░реЗ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рддреЗ). рд▓рд╛рдпрдмреНрд░рд░реАрдЪрд╛ рдЙрджреНрджреЗрд╢ рдЖрд░рдИ2 рд╕рд╛рд░рдЦреНрдпрд╛ рд╡рд┐рджреНрдпрдорд╛рди рдкреНрд░рдХрд▓реНрдкрд╛рдВрдирд╛ рд╕реНрдкрд░реНрдзрдХ рдореНрд╣рдгреВрди рдирд╛рд╣реА, рддрд░ рдирд╡реАрди рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рд╕рд╛рдареА рд╕рдВрд╢реЛрдзрди рд╡реНрдпрд╛рд╕рдкреАрда рдореНрд╣рдгреВрди рдЖрд╣реЗ.
рдЕрд▓реНрдЧреЛрд░рд┐рджрдо (рдЬреЗ рдирдВрддрд░ re2c рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ). рдЪрд╛рдЪрдгреА, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдореЛрдЬрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЗрддрд░ рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рдмрдВрдзрдиреЗ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди рджреЗрдЦреАрд▓ рд╣реЗ рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ.

рдЖрд╡реГрддреНрддреА re2c 1.2 рдордзреАрд▓ рдореБрдЦреНрдп рдирд╡рдХрд▓реНрдкрдирд╛:

  • рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдЪрд╛ рд╢реЗрд╡рдЯ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдирд╡реАрди рд╕рд░рд▓реАрдХреГрдд рдкрджреНрдзрдд рдЬреЛрдбрд▓реА ("EOF рдирд┐рдпрдо"). рдпрд╛рд╕рд╛рдареА, тАЬre2c:eofтАЭ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ,
    рддреБрдореНрд╣рд╛рд▓рд╛ рдЯрд░реНрдорд┐рдирд▓ рд╡рд░реНрдг рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ,
    рдЖрдгрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо тАЬ$тАЭ, рдЬреЛ рд▓реЗрдХреНрд╕рд░ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЯреНрд░рд┐рдЧрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ
    рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдкреЛрд╣реЛрдЪрд▓реЛ.
    рдРрддрд┐рд╣рд╛рд╕рд┐рдХрджреГрд╖реНрдЯреНрдпрд╛, re2c рдЕрдиреЗрдХ рдкрдбрддрд╛рд│рдгреА рдкрджреНрдзрддреАрдВрдЪреА рдирд┐рд╡рдб рдкреНрд░рджрд╛рди рдХрд░рддреЗ
    рдорд░реНрдпрд╛рджрд╛, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рд╕рд╛рдзреЗрдкрдгрд╛рдордзреНрдпреЗ рднрд┐рдиреНрди рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЗрдирдкреБрдЯрдЪрд╛ рд╢реЗрд╡рдЯ
    рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд╡реАрди рдкрджреНрдзрдд рдХреЛрдб рд▓рд┐рд╣рд┐рдгреЗ рд╕реЛрдкреЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗ рдЖрд╣реЗ, рддрд░
    рдкреНрд░рднрд╛рд╡реА рдЖрдгрд┐ рд╡реНрдпрд╛рдкрдХрдкрдгреЗ рд▓рд╛рдЧреВ рдЕрд╕рддрд╛рдирд╛. рдЬреБрдиреЗ рдорд╛рд░реНрдЧ
    рддрд░реАрд╣реА рдХрд╛рд░реНрдп рдХрд░рддреЗ рдЖрдгрд┐ рдХрд╛рд╣реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджрд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

  • рдирд┐рд░реНрджреЗрд╢ рд╡рд╛рдкрд░реВрди рдмрд╛рд╣реНрдп рдлрд╛рдпрд▓реА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА
    "/*!include:re2c "file.re" */", рдЬреЗрдереЗ "file.re" рд╣реЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛рдпрдЪреНрдпрд╛ рдлрд╛рдЗрд▓рдЪреЗ рдирд╛рд╡ рдЖрд╣реЗ. Re2c рдлрд╛рдЗрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдлрд╛рдЗрд▓реНрд╕ рд╢реЛрдзрддреЗ,
    рддрд╕реЗрдЪ тАЬ-IтАЭ рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░реВрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрдерд╛рдВрдЪреНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ.
    рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рдЗрддрд░ рдлрд╛рдпрд▓реАрдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕реВ рд╢рдХрддреЛ.
    Re2c "рд╕рдорд╛рд╡рд┐рд╖реНрдЯ/" рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд "рдорд╛рдирдХ" рдлрд╛рдЗрд▓реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ
    рдкреНрд░рдХрд▓реНрдк - рддреЗрдереЗ рдЙрдкрдпреБрдХреНрдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЬрдорд╛ рд╣реЛрддреАрд▓ рдЕрд╢реА рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ
    рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддреА, рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА.
    рдЖрддрд╛рдкрд░реНрдпрдВрдд, рдХрд╛рдордЧрд╛рд░рд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдирдВрддреАрдиреБрд╕рд╛рд░, рдпреБрдирд┐рдХреЛрдб рд╢реНрд░реЗрдгреАрдВрдЪреНрдпрд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЕрд╕рд▓реЗрд▓реА рдПрдХ рдлрд╛рдЗрд▓ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.

  • рдЕрдирд┐рдпрдВрддреНрд░рд┐рддрдкрдгреЗ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд╛рдпрд▓реА рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА
    "-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тАЭ
    (рд╣реЗрдХреНрд╕ рдХреЛрдб), рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рд╕реНрд╡рд╣рд╕реНрддреЗ рдпреБрдирд┐рдХреЛрдб рд╡рд░реНрдг рд╕реЛрдбрд╛рд╡реЗ рд▓рд╛рдЧрддрд╛рдд:
    "\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" рдкрд░реНрдпрд╛рдп рджреЗрдЦреАрд▓ рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреЛ рдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ рдПрдХ рд▓рд╣рд╛рди рд╡рд┐рдЬрдп рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЛ.

  • рдлреНрд▓реЗрдХреНрд╕рд╕рд╣ "рд╕реБрд╕рдВрдЧрддрддрд╛" рдореЛрдб рд╕реБрдзрд╛рд░рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ - рдХрд╛рд╣реА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рддреНрд░реБрдЯреА рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд рдЖрдгрд┐
    рджреБрд░реНрдорд┐рд│ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдЪреБрдХреАрдЪреЗ рдСрдкрд░реЗрдЯрд░ рдкреНрд░рд╛рдзрд╛рдиреНрдп.
    рдРрддрд┐рд╣рд╛рд╕рд┐рдХрджреГрд╖реНрдЯреНрдпрд╛, "-F --flex-suppor" рдкрд░реНрдпрд╛рдпрд╛рдиреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЛрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реА
    рдлреНрд▓реЗрдХреНрд╕ рд╢реИрд▓реА рдЖрдгрд┐ re2c рд╢реИрд▓реАрдордзреНрдпреЗ рдорд┐рд╢реНрд░рд┐рдд, рдЬреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдереЛрдбреЗ рдХрдареАрдг рдХрд░рддреЗ.
    рдирд╡реАрди рдХреЛрдбрдордзреНрдпреЗ рдлреНрд▓реЗрдХреНрд╕ рд╕реБрд╕рдВрдЧрддрддрд╛ рдореЛрдб рдХреНрд╡рдЪрд┐рддрдЪ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ,
    рдкрд░рдВрддреБ re2c рдмреЕрдХрд╡рд░реНрдб рдХрдВрдкреЕрдЯрд┐рдмрд┐рд▓рд┐рдЯреАрд╕рд╛рдареА рд╕рдорд░реНрдерди рджреЗрдд рдЖрд╣реЗ.

  • рд╡рд░реНрдг рд╡рд░реНрдЧ рд╡рдЬрд╛рдмрд╛рдХреА рдСрдкрд░реЗрдЯрд░ "/" рдЖрддрд╛ рд▓рд╛рдЧреВ рд╣реЛрддреЛ
    рдПрдиреНрдХреЛрдбрд┐рдВрдЧрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЬреЗ рддреНрдпрд╛рд╕ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ,
    рдЬрд░ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдХреЕрд░реЗрдХреНрдЯрд░ рд▓рд╛рдВрдмреА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд╛рдкрд░рд▓реЗ рдЕрд╕реЗрд▓ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде UTF8).

  • рдЖрдКрдЯрдкреБрдЯ рдлрд╛рдЗрд▓ рдЖрддрд╛ рдЕрдгреБ рдкрджреНрдзрддреАрдиреЗ рддрдпрд╛рд░ рдХреЗрд▓реА рдЖрд╣реЗ: re2c рдкреНрд░рдердо рддрд╛рддреНрдкреБрд░рддреА рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рддреЗ
    рдЖрдгрд┐ рддреНрдпрд╛рдд рдирд┐рдХрд╛рд▓ рд▓рд┐рд╣рд┐рддреЛ, рдЖрдгрд┐ рдирдВрддрд░ рддрд╛рддреНрдкреБрд░рддреНрдпрд╛ рдлрд╛рдИрд▓рдЪреЗ рдЖрдЙрдЯрдкреБрдЯрд╡рд░ рдирд╛рд╡ рдмрджрд▓рддреЛ
    рдПрдХ рдСрдкрд░реЗрд╢рди.

  • рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдкреВрд░реНрдг рдЭрд╛рд▓реЗ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд┐рд▓реЗ рдЧреЗрд▓реЗ; рд╡рд┐рд╢реЗрд╖рддрдГ, рдирд╡реАрди рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ
    рдмрджреНрджрд▓ рдЕрдзреНрдпрд╛рдп http://re2c.org/manual/manual.html#buffer-refilling ╨╖╨░╨┐╨╛╨╗╨╜╨╡╨╜╨╕╨╡ ╨▒╤Г╤Д╨╡╤А╨░
    ╨╕ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдЪрд╛ рд╢реЗрд╡рдЯ рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреНрдпрд╛ рдорд╛рд░реНрдЧрд╛рдВрдмрджреНрджрд▓.
    рдирд╡реАрди рдХрд╛рдЧрджрдкрддреНрд░реЗ рдлреЙрд░реНрдордордзреНрдпреЗ рдЧреЛрд│рд╛ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд
    рдПрдХ рд╕рд░реНрд╡рд╕рдорд╛рд╡реЗрд╢рдХ рдПрдХ рдкреГрд╖реНрда рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ
    рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╣ (рд╕рдорд╛рди рд╕реНрд░реЛрдд рдореЕрдирдкреЗрдЬ рдЖрдгрд┐ рдСрдирд▓рд╛рдЗрди рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдд рдкреНрд░рд╕реНрддреБрдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд).
    рдлреЛрдирд╡рд░ рд╕рд╛рдЗрдЯрдЪреА рд╡рд╛рдЪрдиреАрдпрддрд╛ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЦрд░рд╛рдм рдкреНрд░рдпрддреНрди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд.

  • рд╡рд┐рдХрд╕рдХрд╛рдВрдЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди, re2c рдиреЗ рдЕрдзрд┐рдХ рд╕рдВрдкреВрд░реНрдг рдЙрдкрдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реА рдЖрд╣реЗ
    рдбреАрдмрдЧрд┐рдВрдЧ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛрдб рдЖрддрд╛ рд░рд┐рд▓реАрдЭ рдмрд┐рд▓реНрдб рдЖрдгрд┐ рдордзреНрдпреЗ рдЕрдХреНрд╖рдо рдЖрд╣реЗ
    рдХреЙрдиреНрдлрд┐рдЧрд░ рдкрд░реНрдпрд╛рдп "--enable-debug" рд╡рд╛рдкрд░реВрди рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛