рд╕реЛрдорд╡рд╛рд░, 20 рдЬреБрд▓рд╛рдИ рдХреЛ, рдПрдХ рддреЗрдЬрд╝ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬрдирд░реЗрдЯрд░, re2c рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди:

  • рдЧреЛ рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
    (рдпрд╛ рддреЛ re2c рдХреЗ рд▓рд┐рдП --lang go рд╡рд┐рдХрд▓реНрдк рджреНрд╡рд╛рд░рд╛ рдпрд╛ рдПрдХ рдЕрд▓рдЧ re2go рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
    рд╕реА рдФрд░ рдЧреЛ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдПрдХ рд╣реА рдкрд╛рда рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЗ рд╕рд╛рде
    рдХреЛрдб рдЙрджрд╛рд╣рд░рдг. Re2c рдореЗрдВ рдХреЛрдб рдЬрдирд░реЗрд╢рди рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ рд░реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
    рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирдИ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

  • рд╕реАрдПрдордХреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдЬреЛрдбрд╝реА рдЧрдИ (рдзрдиреНрдпрд╡рд╛рдж)ред ligfx!).
    Re2c рдХреЛ CMake рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди ligfx рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдИ рдирд╣реАрдВ
    рд╕рдВрдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ред
    рдСрдЯреЛрдЯреВрд▓реНрд╕ рдкрд░ рдкреБрд░рд╛рдиреЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд╣реИ,
    рдФрд░ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ (рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рддрд╛рдХрд┐ рдЗрд╕реЗ рди рдмрдирд╛рдпрд╛ рдЬрд╛рдП)ред
    рд╡рд┐рддрд░рдг рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдБ, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреА рдмрд┐рд▓реНрдб рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдХрд╛рд░рдг
    рдирдП рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд)ред
    рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛрдиреЛрдВ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛрдб рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЧрдИ
    рд╕рд╛рдорд╛рдиреНрдп рдПрдкреАрдЖрдИ. рдкрд╣рд▓реЗ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдкреАрдЖрдИ рдХреЛ рдлреЙрд░реНрдо рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛
    рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдореИрдХреНрд░реЛрдЬрд╝. рдЕрдм рдЙрдиреНрд╣реЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
    @@{рдирд╛рдо} рдпрд╛ рдХреЗрд╡рд▓ @@ (рдпрджрд┐) рдЬреИрд╕реЗ рдирд╛рдорд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ
    рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдФрд░ рдХреЛрдИ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдирд╣реАрдВ рд╣реИ)ред рдПрдкреАрдЖрдИ рд╢реИрд▓реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ
    re2c:api:style (рдлрд╝рдВрдХреНрд╢рди рдорд╛рди рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╢реИрд▓реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлреНрд░реА-рдлрд╝реЙрд░реНрдо рдПрдХ рдордирдорд╛рдиреА рд╢реИрд▓реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ)ред

  • -c, --start-conditions рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдХрдИ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
    рдПрдХ re2c рдмреНрд▓реЙрдХ рдореЗрдВ рдЗрдВрдЯрд░рдХрдиреЗрдХреНрдЯреЗрдб рд▓реЗрдХреНрд╕рд░реНрд╕ред рдЕрдм рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
    рд╕рд╢рд░реНрдд рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдорд┐рдд рдмреНрд▓реЙрдХ рдФрд░ рдХрдИ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╕рд╢рд░реНрдд рдмреНрд▓реЙрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
    рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмреНрд▓реЙрдХ.
    -r, --reuse рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдмреЗрд╣рддрд░ рд╕рдВрдЪрд╛рд▓рди (рдПрдХ рдмреНрд▓реЙрдХ рд╕реЗ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ)ред
    рдЕрдиреНрдп рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ) -c, --start-conditions рдФрд░ -f, --storable-state рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ
    (рдПрдХ рд╕реНрдЯреЗрдЯрдлреБрд▓ рд▓реЗрдХреНрд╕рд░ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ рдмрд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
    рдФрд░ рдмрд╛рдж рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦреЗрдВ)ред

  • рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдПрдВрдб-рдСрдл-рдЗрдирдкреБрдЯ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдПрдХ рдмрдЧ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛
    (рдИрдУрдПрдл рдирд┐рдпрдо), рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЧрд▓рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╣реБрдЖ
    рдЕрддрд┐рд╡реНрдпрд╛рдкреА рдирд┐рдпрдо.

  • рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдкрд╣рд▓реЗ, рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛
    рдПрдХ re2c рдмрд┐рд▓реНрдб рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдпрдВ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
    рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЧрд╝рд▓рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рд╣реБрдИрдВ (рдЪреВрдБрдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдлрд╝ рдерд╛
    рдЧрддрд┐рд╢реАрд▓, рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ)ред
    рдЕрдм, рд▓реЗрдХреНрд╕рд░реНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
    рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ RE2C_FOR_BUILD рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░реЗрдВред

рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

рд╕реНрд░реЛрдд: linux.org.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ