Re2c рд▓реЗрдХреНрд╕рд░ рдЬрдирд░реЗрдЯрд░ 2.0 рдХрд╛ рд╡рд┐рдореЛрдЪрди

рд╣реБрдЖ ╤А╨╡╨╗╨╕╨╖ re2c 2.0, C рдФрд░ C++ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдГрд╢реБрд▓реНрдХ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬрдирд░реЗрдЯрд░ред Re2c рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореВрд▓ рд░реВрдк рд╕реЗ 1993 рдореЗрдВ рдкреАрдЯрд░ рдмрдореНрдмреЛрд▓рд┐рд╕ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рддреЗрдЬрд╝ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА рдЧрддрд┐ рдФрд░ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд▓рдЪреАрд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрдиреНрдп рдЬрдирд░реЗрдЯрд░ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдореМрдЬреВрджрд╛ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЛрдб рдЖрдзрд╛рд░. рддрдм рд╕реЗ, рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рд╣реИ рдФрд░ рдФрдкрдЪрд╛рд░рд┐рдХ рд╡реНрдпрд╛рдХрд░рдг рдФрд░ рдкрд░рд┐рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ рдмрдиреА рд╣реБрдИ рд╣реИред

рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди:

  • рдЧреЛ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ (рдпрд╛ рддреЛ re2c рдХреЗ рд▓рд┐рдП "--рд▓реИрдВрдЧ рдЧреЛ" рд╡рд┐рдХрд▓реНрдк рджреНрд╡рд╛рд░рд╛ рдпрд╛ рдПрдХ рдЕрд▓рдЧ re2go рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдХреНрд╖рдо)ред рд╕реА рдФрд░ рдЧреЛ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдПрдХ рд╣реА рдкрд╛рда рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рдеред Re2c рдореЗрдВ рдХреЛрдб рдЬрдирд░реЗрд╢рди рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ рд░реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирдИ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
  • рд╕реАрдПрдордХреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдЬреЛрдбрд╝реА рдЧрдИ (рдзрдиреНрдпрд╡рд╛рдж)ред ligfx!) Re2c рдХреЛ CMake рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди ligfx рддрдХ рдХрд┐рд╕реА рдиреЗ рднреА рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВ рджрд┐рдпрд╛ред рдкреБрд░рд╛рдиреЗ рдСрдЯреЛрдЯреВрд▓реНрд╕ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд╣реИ, рдФрд░ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ (рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рдг рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдкреБрд░рд╛рдирд╛ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдирдП рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ) ). рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛрдиреЛрдВ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдЬреЗрдиреЗрд░рд┐рдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЧрдИред рдкрд╣рд▓реЗ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдкреАрдЖрдИ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдЕрдм рдЙрдиреНрд╣реЗрдВ "@@{рдирд╛рдо}" рдпрд╛ рдмрд╕ "@@" (рдпрджрд┐ рдХреЗрд╡рд▓ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдФрд░ рдХреЛрдИ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдирд╣реАрдВ рд╣реИ) рдХреЗ рдирд╛рдорд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдордирдорд╛рдиреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдкреАрдЖрдИ рд╢реИрд▓реА re2c:api:style рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ (рдлрд╝рдВрдХреНрд╢рди рдорд╛рди рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╢реИрд▓реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлреНрд░реА-рдлрд╝реЙрд░реНрдо рдПрдХ рдордирдорд╛рдиреА рд╢реИрд▓реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ)ред
  • "-рд╕реА", "-рд╕реНрдЯрд╛рд░реНрдЯ-рдХрдВрдбреАрд╢рдиреНрд╕" рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдПрдХ re2c рдмреНрд▓реЙрдХ рдореЗрдВ рдХрдИ рдЗрдВрдЯрд░рдХрдиреЗрдХреНрдЯреЗрдб рд▓реЗрдХреНрд╕рд░реНрд╕ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рдЖрдк рд╕рд╢рд░реНрдд рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдирд┐рдпрдорд┐рдд рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╕рд╢рд░реНрдд рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред "-c", "--start-conditions" рдФрд░ "-f", "-- рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ "-r", "--reuse" рд╡рд┐рдХрд▓реНрдк (рдПрдХ рдмреНрд▓реЙрдХ рд╕реЗ рджреВрд╕рд░реЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ) рдХрд╛ рдмреЗрд╣рддрд░ рд╕рдВрдЪрд╛рд▓рди рд╕реНрдЯреЛрд░реЗрдЬреЗрдмрд▓-рд╕реНрдЯреЗрдЯ" рд╡рд┐рдХрд▓реНрдк (рдПрдХ рд╕реНрдЯреЗрдЯрдлреБрд▓ рд▓реЗрдХреНрд╕рд░ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ рдмрд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
  • рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдПрдВрдб-рдСрдл-рдЗрдирдкреБрдЯ (рдИрдУрдПрдл рдирд┐рдпрдо) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдПрдХ рдмрдЧ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреА рдЧрд▓рдд рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╣реБрдИред
  • рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдкрд╣рд▓реЗ, рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдиреЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд re2c рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдпрдВ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдЧрд╝рд▓рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рд╣реБрдИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдлрд╝ рдЧрддрд┐рд╢реАрд▓ рдерд╛, рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ)ред рдЕрдм, рд▓реЗрдХреНрд╕рд░реНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ RE2C_FOR_BUILD рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

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