Pegjs: рдПрдХ рдирдП рдЕрдиреБрд░рдХреНрд╖рдХ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдордИ 2017  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pegjs/pegjs

рдЬрдм рдореИрдВрдиреЗ рд▓рдЧрднрдЧ 7 рд╕рд╛рд▓ рдкрд╣рд▓реЗ PEG.js рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдореИрдВрдиреЗ рдХрднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рд╕рдлрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдЬреБрдбрд╝рд╛рд╡ рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓реЗрдЧрд╛ред рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдХреЗ рдЦреБрд╢ рдерд╛, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдПрдХ-рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рдореЗрд░реА рдкреНрд░реЗрд░рдгрд╛ рдХрдо рд╣реЛрдиреЗ рд▓рдЧреАред рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреИрдардХрд░ рдореБрджреНрджреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдпрд╛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рд╕рдордЭрд╛рдирд╛ рдкрдбрд╝рд╛ред рдореБрдЭреЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ PEG.js рдЕрдм рдРрд╕реА рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдЕрдкрдирд╛ рд╕рдордп рдмрд┐рддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореИрдВ рдПрдХ рдирдП PEG.js рдЕрдиреБрд░рдХреНрд╖рдХ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВред

рдореИрдВ рдХрд┐рд╕реЗ рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВ?

рдореИрдВ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдЧрд╣рд░реА рд╕рдордЭ рд╣реЛ рдХрд┐ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рдкрд╛рд░реНрд╕рд░ рдЬреЗрдирд░реЗрдЯрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдордЬрдмреВрдд рдкреНрд░реЗрд░рдгрд╛, рдУрдкрди рд╕реЛрд░реНрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд╣рд╛рдВ рдХрд░рдирд╛ рд╣реИ (рдЬреЛ рд╡рд░реНрддрдорд╛рди рд░реЛрдбрдореИрдк рд╕реЗ рдореЗрд▓ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ)ред рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдПрдХ рд╕рдЦреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ PEG.js рдХреЛ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реМрдВрдк рджреВрдВ рдЬреЛ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрдореА рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЗрдЪреНрдЫреБрдХ?

рдпрджрд┐ рдЖрдк PEG.js рдХреЛ рд▓реЗрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХреБрдЫ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рдПрдЧрд╛ рдХрд┐ рдЖрдк рд╕рд╣реА рд╡реНрдпрдХреНрддрд┐ рд╣реИрдВ :-) рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдордИ рдХреЗ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдХреЗ рджреМрд░рд╛рди рдирдП рдЕрдиреБрд░рдХреНрд╖рдХ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реВрдВрдЧрд╛ред 13-14. рдпрджрд┐ рддрдм рддрдХ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рдЕрдиреБрд░рдХреНрд╖рдХ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ PEG.js рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреБрд░рдХреНрд╖рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рд╕рдВрдкрддреНрддрд┐

рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ:

рдирдП рдЕрдиреБрд░рдХреНрд╖рдХ рдХреЛ PEG.js рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд VPS рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИред рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдирдпрд╛ рдЕрдиреБрд░рдХреНрд╖рдХ рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рддрд╣рдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж pegjs.org рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП DNS рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред рдирдП рдЕрдиреБрд░рдХреНрд╖рдХ рдХреЛ рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡реАрдкреАрдПрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рджреА рдЬрд╛рдПрдЧреА рдФрд░ рди рд╣реА рдореИрдВ рд╡рд╣рд╛рдВ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред


рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рд▓рд┐рдЦреА рдЧрдИ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╢реНрди рдпрд╛ рдиреЛрдЯреНрд╕ рд╣реИрдВ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@dmajda PEG.js рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреАрд╡рд┐рдд рд░рд╣реЗрдЧреАред

рд╕рднреА 20 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдЕрднреА-рдЕрднреА PEG.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИред рд╡реНрдпрд╛рдХрд░рдг рд╕реАрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛рдлреА рдХрдо рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдереЛрдбрд╝рд╛ рд╣рд▓реНрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╣ рд╕рдм рдХреБрдЫ рдорд┐рд▓рд╛ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рде рд╣реА, рдореИрдВ Javascript.pegjs рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд┐рдирд╛ рдЕрдкрдиреА JavaScript рдмреЛрд▓реА рдкрд░ рдЖрд░рдВрдн рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ред рдЬрд┐рд╕рд╕реЗ рдХрд╛рдо рдХрд╛ рдмреЛрдЭ рдХрд╛рдлреА рдХрдо рд╣реЛ рдЧрдпрд╛ред

рдЗрд╕рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕рдХреЗ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИрдВ? рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдХрдорд┐рдпрд╛рдВ рдпрд╣ рд╣реИрдВ рдХрд┐ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдкреНрд░рддрд┐рдпреЛрдЧреА рдХреНрдпрд╛ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдмрдврд╝рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдмрдирд╛рдП? рдпрджрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдерд┐рд░ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЙрд╕ рдкрд░ рдХреНрдпреЛрдВ рди рдЫреЛрдбрд╝реЗрдВ, рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕рд╛рдеред

рд░реЛрдбрдореИрдк рдХреЗ рд▓рд┐рдП, рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреЛрдб рдЖрдкрдХреЛ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ? рдФрд░ рддреЗрдЬ? рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ? рдпрд╛ рд╕рд┐рд░реНрдл "рдЕрдк рдЯреВ рдбреЗрдЯ"? рдореИрдВ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдХ рдХреЗ рдмрдЬрд╛рдп рдЧрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВред рдХреНрд▓реАрдирдЕрдк рдорд╣рдВрдЧрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓рдЧрднрдЧ 1.5, рд╡рд░реНрддрдорд╛рди 1.0 рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрдзрд╛рд░" 1.0 рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рд▓рдХреНрд╖реНрдп рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд░рдВрдЯ 1.0 рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реНрдерд┐рд░ рд╣реИ, рдЕрдЪреНрдЫреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИрдВ, рд╕рднреА рдлреАрдЪрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЖрджрд┐ред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ 1.0 "рдПрдХ" рд╣реЛрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдзрд┐рдХ 2.0, 3.0, рдЖрджрд┐ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд╛рдЗрдЯ, Google рд╕рдореВрд╣ рдЖрджрд┐ рдХреЛ рд▓рд╛рдЗрд╡ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

@mikeaustin рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╢реАрдШреНрд░ рдЙрддреНрддрд░ рджреЗрдиреЗ рджреЗрдВ (рдЬреЛ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛)ред

рдЗрд╕рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕рдХреЗ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИрдВ? рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдЫреЛрдЯреА рднрд╛рд╖рд╛рдУрдВ/рдбреАрдПрд╕рдПрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкреНрд░рдореБрдЦ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рд░реЗрдЧреЗрдХреНрд╕рдкреНрд╕ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИрдВред рдореВрд▓ рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ рдмрдирд╛рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкреАрдИрдЬреА рдиреЗ рдЕрдЪреНрдЫрд╛ рд╡реНрдпрд╛рдХрд░рдг рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреЗрд╢ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдХреЛрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдирд╣реАрдВ рдерд╛ рдЬреЛ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рдерд╛ рдФрд░ рдЕрдЪреНрдЫреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рднреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдХрдорд┐рдпрд╛рдВ рдпрд╣ рд╣реИрдВ рдХрд┐ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред

рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░реНрдп рд░реЛрдбрдореИрдк рдореЗрдВ рд╣реИред

рдЗрд╕рдХреЗ рдкреНрд░рддрд┐рдпреЛрдЧреА рдХреНрдпрд╛ рд╣реИрдВ?

рдЬреИрд╕рди , рдирд┐рдпрд░рд▓реА

рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдмрдврд╝рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдмрдирд╛рдП? рдпрджрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдерд┐рд░ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЙрд╕ рдкрд░ рдХреНрдпреЛрдВ рди рдЫреЛрдбрд╝реЗрдВ, рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕рд╛рдеред

рдпрд╣ рдирдП рдЕрдиреБрд░рдХреНрд╖рдХ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ PEG.js рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХреА рдЧрдИ рд╡рд░реНрддрдорд╛рди рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рд░ рд░рд╣реЗред рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХреНрд╖рдорддрд╛ рд╣реИред

рдХрдИ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЛрд░ (#30, #38, #107, #45, рдФрд░ #285) рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░ рдХреБрдЫ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓реА рдЖ рд░рд╣реА рд╕рдорд╕реНрдпрд╛рдПрдВ/рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ (#11, #217) рдпрд╛ рдПрдкреАрдЖрдИ рдХреЛ рдмрджрд▓рдиреЗ (#327, #430) рдкрд░ рдХреБрдЫ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рднреА рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИрдВред

рд░реЛрдбрдореИрдк рдХреЗ рд▓рд┐рдП, рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреЛрдб рдЖрдкрдХреЛ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ? рдФрд░ рддреЗрдЬ? рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ? рдпрд╛ рд╕рд┐рд░реНрдл "рдЕрдк рдЯреВ рдбреЗрдЯ"?

рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рдЕрджреНрдпрддрд┐рдд рд╣реЛрдирд╛ (рдЬреЛ рдХрд┐ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдкреАрдЖрд░ рдирд┐рд░реНрдгрдп рд╣реИ - рдпрд╣ рдмреБрд░рд╛ рд╣реИ рдЬрдм рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреА рджрд┐рдЦрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдкреБрд░рд╛рдиреА рдФрд░ рдирдИ рддрдХрдиреАрдХ рдХреЗ рдмреАрдЪ рдХреЗрд╡рд▓ рдорд╛рдореВрд▓реА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдЕрдВрддрд░ рд╣реЛ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд░рдВрдЯ 1.0 рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реНрдерд┐рд░ рд╣реИ, рдЕрдЪреНрдЫреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИрдВ, рд╕рднреА рдлреАрдЪрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЖрджрд┐ред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ 1.0 "рдПрдХ" рд╣реЛрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдзрд┐рдХ 2.0, 3.0, рдЖрджрд┐ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ :-) 1.0 рдХреА рдореЗрд░реА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣рдореЗрд╢рд╛ "рдЬрдм рдореИрдВ рдЗрд╕рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реЛрддрд╛ рд╣реВрдВ", рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХрднреА рдирд╣реАрдВ рдЖрдпрд╛ - рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рдЪреАрдЬ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЬреЛ рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдкрд░реЗрд╢рд╛рди рдХрд░рддреА рд╣реИ, рдореИрдВрдиреЗ рдЙрди рдЪреАрдЬреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдкрд░реЗрд╢рд╛рди рдХрд░рддреЗ рдереЗ рдФрд░ рдЬреЛ рдЪреАрдЬреЗрдВ рдереАрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ PEG.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореЗрд░реЗ рдкреВрд░реНрдгрддрд╛рд╡рд╛рджреА рд╕реНрд╡рднрд╛рд╡ рдиреЗ рднреА рдорджрдж рдирд╣реАрдВ рдХреАред

рдпрд╣ 1.0 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдЕрдиреБрд░рдХреНрд╖рдХ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред

https://github.com/futagoza/epeg.js (рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реВрдЪреАрдмрджреНрдз рдЕрдзрд┐рдХрд╛рдВрд╢

рдореИрдВ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИ

@dmajda PEG.js рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреАрд╡рд┐рдд рд░рд╣реЗрдЧреАред

@futagoza рдмрд╕ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк PEG.js рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦреЗрдВрдЧреЗ? рдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдХрд╣реАрдВ рдФрд░ рд╣реИ? :-)

рдореИрдВ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

@dmajda рд╣рд╛рдБ, рдореБрдЭреЗ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА

рдореИрдВ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдореИрдВ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реВрдВ, рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдХреЛрдб рдФрд░ рдбрд┐рдмрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЖрдкрдХреЗ рдпрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рд▓рдЧрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рдореИрдВ рдпрд╛ рддреЛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдмрд╕ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░реАрдХреНрд╖рдг, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд┐рдЫрд▓реА рджреГрд╖реНрдЯрд┐ рдореЗрдВ рдпрд╣ рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рд╕рдордп рдмрдврд╝рд╛рддрд╛ рд╣реИ

@dmajda рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрдиреЗ рдПрдордПрд╕рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рди рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧреА рд╣реИ рдмрд▓реНрдХрд┐ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд╛рдХрдИ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдХреЛ PEG.js рдХрд╛ рдпреЛрдЧреНрдп рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдорд╛рдиреЗрдВрдЧреЗред

@futagoza рдореБрджреНрджреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдЧрд╣рд░реА рд╕рдордЭ рд╣реЛ рдХрд┐ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рдкрд╛рд░реНрд╕рд░ рдЬреЗрдирд░реЗрдЯрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдордЬрдмреВрдд рдкреНрд░реЗрд░рдгрд╛, рдУрдкрди рд╕реЛрд░реНрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд╣рд╛рдВ рдХрд░рдирд╛ рд╣реИ (рдЬреЛ рд╡рд░реНрддрдорд╛рди рд░реЛрдбрдореИрдк рд╕реЗ рдореЗрд▓ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ)ред

рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ, рдЖрдкрдиреЗ ePEG.js рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рд╡рд┐рд╡рд░рдг рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддреЗ рд╣реИрдВ (рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ ePEG.js рдХреА TODO рд╕реВрдЪреА рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рдЬрд╛рдирд╛ рд╣реИ) рд▓реАрдб рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ)ред

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрд╛рдо рдФрд░ рд╡реЗрдм рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рдмреЛрд▓рдиреЗ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдкрдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдЯреНрд╡рд┐рдЯрд░ рдФрд░ рд▓рд┐рдВрдХреНрдбрдЗрди рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╡реЗ рджреЛрдиреЛрдВ рдореГрдд рдереЗ - рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рджреЗрддрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдПред рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рд╣рд╛рд░ рдорд╛рди рд▓реАред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛePEG.js рдХрд╛ рд╕рдВрдмрдВрдз рд╣реИ, рд╡рд░реНрддрдорд╛рди рдЪрд░рдг рдореЗрдВ рдЗрд╕реЗ рдПрдХ рдЗрдЪреНрдЫрд╛ рд╕реВрдЪреА рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдорд╛рдирдирд╛ тАЛтАЛрдХрдард┐рди рд╣реИред

рддреЛ, рдореИрдВ рдХреБрдЫ рдареЛрд╕ рдкреНрд░рд╢реНрди рдкреВрдЫрддрд╛ рд╣реВрдВ:

  • рддреБрдореНрд╣рд╛рд░реА рдкреГрд╖реНрдарднреВрдорд┐ рдХреНрдпрд╛ рд╣реИ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрд╛рд░реНрд╕рд░реНрд╕ рдФрд░ рдкрд╛рд░реНрд╕рд░ рдЬреЗрдирд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдЬреНрдЮрд╛рди рдХрд╛ рд╕реНрддрд░ рдХреНрдпрд╛ рд╣реИ? рдЖрдкрдХреЛ рд╡рд╣ рдЬреНрдЮрд╛рди рдХрд╣рд╛рдБ рд╕реЗ рдорд┐рд▓рд╛?

  • PEG.js рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдкреНрд░реЗрд░рдгрд╛ рдХреНрдпрд╛ рд╣реИ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдпрд╛ рдХрд╛рд░реНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ PEG.js (рдпрд╛ ePEG.js) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ PEG.js рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрдкрдХреЗ рджреИрдирд┐рдХ рдХрд╛рд░реНрдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рдХрд░реЗрдВрдЧреЗ?

  • рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛ рдЕрдиреБрднрд╡ рдХреИрд╕рд╛ рд╣реИ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ) рдХреЗ рд╕рд╛рде рддреБрд▓рдиреАрдп рдХреЛрдИ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рд░рдЦрд╛ рд╣реИ?

  • рдЖрдкрдХреА рд░рд╛рдп рдореЗрдВ, рд╢реАрд░реНрд╖ 5 рдЪреАрдЬреЗрдВ рдХреНрдпрд╛ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ PEG.js рдЧрд╛рдпрдм рд╣реИрдВ рдпрд╛ рд╕рд╣реА рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВ? рд╕рд╛рде рд╣реА, рдХреНрдпрд╛ рдЖрдк рдпрд╣ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХрд╣рд╛рдБ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рдХрд╣рд╛рдБ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╡реЗ рдореБрдЭреЗ рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдЖрдк PEG.js рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рд╣реА рдЕрдиреБрд░рдХреНрд╖рдХ рд╣реЛрдВрдЧреЗред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдкрдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рджреЗрдЦреА рдФрд░ рдЯреНрд╡рд┐рдЯрд░ рдФрд░ рд▓рд┐рдВрдХреНрдбрдЗрди рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╡реЗ рджреЛрдиреЛрдВ рдореГрдд рдереЗ

рд╡рд╣ рд╕рд╛рдЗрдЯ рдореЗрд░реА рдкреБрд░рд╛рдиреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ 2010 рдореЗрдВ рдмрдирд╛рдпрд╛ рдерд╛ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдкреБрд░рд╛рдиреЗ рдЙрдкрдирд╛рдо рд╡рд┐рдЯреНрд░реЙрди рдкреНрд░рд┐рдВрд╕ рдХреЗ рдкрд╛рд╕ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд▓рд┐рдВрдХ рдЕрдзрд┐рдХрддрд░ рдЕрдм рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИрдВ, рдпрд╛ рдЙрди рд╕рд╛рдЗрдЯреЛрдВ/рдкреНрд░реЛрдлрд╛рдЗрд▓ рддрдХ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЕрдм рдФрд░ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реВрдВ, рдЬрдмрдХрд┐ рд╕рд╛рдЗрдЯ рдХрднреА рдареАрдХ рд╕реЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рдереАред рдЖрдЬрдХрд▓ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдСрдирд▓рд╛рдЗрди рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реИ рдЬреЛ GitHub рдФрд░ PlayStation рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдореИрдВ рдПрдХ рдкреВрд░реНрдгрдХрд╛рд▓рд┐рдХ рджреЗрдЦрднрд╛рд▓рдХрд░реНрддрд╛ рд╣реВрдВред


рддреБрдореНрд╣рд╛рд░реА рдкреГрд╖реНрдарднреВрдорд┐ рдХреНрдпрд╛ рд╣реИ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрд╛рд░реНрд╕рд░реНрд╕ рдФрд░ рдкрд╛рд░реНрд╕рд░ рдЬреЗрдирд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдЬреНрдЮрд╛рди рдХрд╛ рд╕реНрддрд░ рдХреНрдпрд╛ рд╣реИ? рдЖрдкрдХреЛ рд╡рд╣ рдЬреНрдЮрд╛рди рдХрд╣рд╛рдБ рд╕реЗ рдорд┐рд▓рд╛?

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ 5 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЕрдкрдиреЗ рджрдо рдкрд░ рд╕реАрдЦрд╛, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдмрдлрд░ рдЯреЛрдХрдирд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛, рдХреБрдЫ рд╕рдВрд╕реНрдорд░рдг рдХрд░рддреЗ рд╕рдордп рддреЗрдЬ рд▓реЗрдХрд┐рди рд╕рдЯреАрдХ рдлреИрд╢рди рдореЗрдВ рдПрдПрд╕рдЯреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗ рдФрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдХрдВрдкреНрдпреВрдЯрд░ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реА ++, рдРрд╕реЗ рдкрд╛рд╕ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдПрд╕рдЯреА рд╡рд┐рдЬрд╝рд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдВрдХрд▓рди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдкрд╛рд╕ рдореЗрдВ рд╕реНрдХреНрд╡реИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ PEG.js рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╕реЗ рд╕реАрдЦрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рд╣реИ, рдЗрд╕рд▓рд┐рдП String#charAt рд╕реЗ рдЕрдзрд┐рдХ String#charCodeAt рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рд╣реИ String#charAt рдЬрдм рддрдХ рдЧрддрд┐ рдПрдХ рдХрд╛рд░рдХ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА options.optimize = "size" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкрд╛рд░реНрд╕рд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рднрд╛рдЧреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди speed with accuracy рдкрд░ рдореЗрд░реЗ рдзреНрдпрд╛рди рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рд░реНрд╕рд░ рдкреАрдврд╝реА рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдирд╣реАрдВ рдорд┐рд▓реАред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ: рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдХрд╛рдлреА рдХреБрдЫ рд╕реАрдЦрд╛ рд╣реИ, рдореБрдЭреЗ рд╢рдмреНрджрд╛рд╡рд▓реА рдпрд╛рдж рд░рдЦрдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрддреА рд╣реИ ЁЯШК


PEG.js рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдкреНрд░реЗрд░рдгрд╛ рдХреНрдпрд╛ рд╣реИ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдпрд╛ рдХрд╛рд░реНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ PEG.js (рдпрд╛ ePEG.js) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ PEG.js рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрдкрдХреЗ рджреИрдирд┐рдХ рдХрд╛рд░реНрдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рдХрд░реЗрдВрдЧреЗ?

PEG.js рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдкреНрд░реЗрд░рдгрд╛ CXLang рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реА рд╣реИ , рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдЯреЗрдХреНрд╕реНрдЯ рдЖрдзрд╛рд░рд┐рдд рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдкрд╛рд░реНрд╕рд░ рдмрдирд╛рдирд╛ рдЬреЛ рдореИрдВ рдЕрдкрдиреЗ рдЧреЗрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдФрд░ рдХрд╛рд░реНрдп рджреЛрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП PEG.js рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛, ePEG.js рдХреА рддрд░рд╣, рдЬреНрдпрд╛рджрд╛рддрд░ рдореЗрд░реЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рд╣реЛрдЧрд╛ред

рдЬреЛ рдореИрдВ рдЕрднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реВрдВ рд╡рд╣ рд╣реИ (рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ):

  • PEG.js рдпрд╛ https://github.com/futagoza/epeg.js
  • https://github.com/cx-lang/cx-lang
  • Roxby, рдПрдХ C++ рдЧреЗрдо рдЗрдВрдЬрди рдФрд░ Node.js рдЖрдзрд╛рд░рд┐рдд SDK рдЬреЛ рдирд┐рд░реНрдмрд╛рдз рд▓реЗрдХрд┐рди рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп 3D рджреБрдирд┐рдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ
  • Xross M, рдПрдХ рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рдЧреЗрдо рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рдореЙрдб рд╕рд┐рд╕реНрдЯрдо
  • Xross C, рдПрдХ рдЧреЗрдо рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рд╕рд╛рдереА рдРрдк
  • рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдорд▓реНрдЯреА-рдкреНрд▓реЗрдпрд░ рдФрд░ рдорд▓реНрдЯреА-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдорд┐рдиреАрдХреНрд░рд╛рдлреНрдЯ рдХреНрд▓реЛрди рдмрдЪрд╛рддрд╛ рд╣реИ
  • рдПрдХ MMORPG рдЧреЗрдо, рдЬреЛ рдкреЙрдХреЗрдЯ рд╡рд░реНрд▓реНрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реБрдП, 1 рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗ рд╡рд┐рд╢рд╛рд▓ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ
  • рдореЗрд░реЗ MMORPG рдореЗрдВ рдПрдХ рд╣реА рдкреЙрдХреЗрдЯ рд╡рд░реНрд▓реНрдб рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рдВрдЧрд▓ рдкреНрд▓реЗрдпрд░ рдЧреЗрдореНрд╕ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЧрдИ рд╣реИ

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВ CXLang, Roxby рдФрд░ Xross рдореЗрдВ PEG.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ PEG.js рдХреЛ рдореЗрд░реЗ рдЦреЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рд╕рд╛рджреЗ рдкрд╛рда рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдиреЗ рдФрд░ рдлрд┐рд░ PEG.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рдХрд╕реНрдЯрдо рдХрдВрдкрд╛рдЗрд▓рд░, рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдЧреЗрдо, рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо/рдЯреВрд▓реНрд╕ рдпрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рджреЗрд╢реА рдХреЛрдб рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред


рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛ рдЕрдиреБрднрд╡ рдХреИрд╕рд╛ рд╣реИ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ) рдХреЗ рд╕рд╛рде рддреБрд▓рдиреАрдп рдХреЛрдИ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рд░рдЦрд╛ рд╣реИ?

рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ 2013 рд╕реЗ рдПрдХ рджреЗрдЦрднрд╛рд▓рдХрд░реНрддрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЦрд╛рд▓реА рд╕рдордп рдпрд╛ рддреЛ рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо, рдХреЛрд░рд┐рдпрд╛рдИ рдирд╛рдЯрдХ рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рд╕реА ++/рдиреЛрдб.рдЬреЗрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ (рдЬреНрдпрд╛рджрд╛рддрд░ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд) рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдпрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдореИрдВ рдЧрд┐рдЯрд╣рдм рдкрд░ рд░рдЦрддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдореИрдВ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЕрдиреНрдп рдЬреЛ рдореИрдВ рдЕрдкрдиреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рд░рдЦрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ CXLang рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИ (рдЗрд╕ рддрд░рд╣ рдХреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрднреА рддрдХ рдЧрд┐рдЯрд╣рдм рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рдЫреЛрдЯреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд╣реИ), рдореИрдВ рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рд░реЙрдХреНрд╕рдмреА рдФрд░ рдПрдХреНрд╕рд░реЙрд╕ рдЦреЛрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рдореИрдВрдиреЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рд╣реИрдВ рдореЗрд░реЗ рдЧреЗрдо)ред


рдЖрдкрдХреА рд░рд╛рдп рдореЗрдВ, рд╢реАрд░реНрд╖ 5 рдЪреАрдЬреЗрдВ рдХреНрдпрд╛ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ PEG.js рдЧрд╛рдпрдм рд╣реИрдВ рдпрд╛ рд╕рд╣реА рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВ? рд╕рд╛рде рд╣реА, рдХреНрдпрд╛ рдЖрдк рдпрд╣ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХрд╣рд╛рдБ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рдХрд╣рд╛рдБ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

  • ePEG.js рдпрд╛ рд╡рд┐рдХрд▓реНрдк рди рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг
  • рд╡рд░реНрддрдорд╛рди рдмрд╛рдЗрдЯрдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧреА рд╣реИ

    • рдпрд╣ рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд╛рд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬрдирд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рд╣рд╛рдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

    • рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╛рд░реНрд╕рд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдЯрдХреЛрдб рдФрд░ рдПрдПрд╕рдЯреА рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдкреНрд▓рдЧрдЗрди рд╡рд┐рд╢рд┐рд╖реНрдЯ)

    • рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрд╛рдпрдЯреЗрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ

  • PEG.js рд╡реНрдпрд╛рдХрд░рдг рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рднреАрддрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдХреНрд╖рд░ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдФрд░ рд╕реНрд░реЛрдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

    • рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ ( <strong i="27">@returns</strong> ... рдпрд╛ [returns = ...] ) рдЬреЛ рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░рддреА рд╣реИ

    • рдЕрдиреБрдХреНрд░рдо рдЪрдпрди рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ = рдХрдо рдХреНрд░рд┐рдпрд╛рдПрдВ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛ рдкрд░ рдХрдо рдирд┐рд░реНрднрд░рддрд╛

    • рд╕рд╛рдВрдЦреНрдпрд┐рдХ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдлрд░ рд╕рдорд░реНрдерди, рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕рд╛рджрд╛ рдкрд╛рда рд╕реНрд░реЛрдд рдХреЛрдб

  • рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдЬреЛ рдкрд╛рд░реНрд╕рд░реНрд╕ рдХреЗ рдЕрдзрд┐рдХ рддреАрд╡реНрд░ рд╡рд┐рдХрд╛рд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

    • рдХрдо PEG.js рд╡реНрдпрд╛рдХрд░рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ

    • рдЖрдВрддрд░рд┐рдХ рдкрд╛рд╕ рдпрд╛ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдг (рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдФрд░ рдХрд╕реНрдЯрдо)

    • рдЕрдиреНрдп рд╡реНрдпрд╛рдХрд░рдгреЛрдВ рд╕реЗ рдирд┐рдпрдо рдЖрдпрд╛рдд рдХрд░рдирд╛, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

  • рд╡рд░реНрддрдорд╛рди рдкреНрд▓рдЧрдЗрди рд╕рд┐рд╕реНрдЯрдо рдПрдкреАрдЖрдИ рдХреЛ рдмрджрд▓рдирд╛ рдФрд░ рд╕рдВрдкрд╛рджрдХреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рдмрдирд╛рддрд╛ рд╣реИ
  • рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЖрдк PEG.js (рд╡реЗрдмрд╕рд╛рдЗрдЯ рдпрд╛ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝рддреЗ рд╣реИрдВ:

PEG.js рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рд╣реИ рдЬреЛ рдЙрддреНрдХреГрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рддреЗрдЬрд╝ рдкрд╛рд░реНрд╕рд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░, рджреБрднрд╛рд╖рд┐рдпреЛрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдЕрдиреНрдп рдЯреВрд▓ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░рдгреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╕реЗ рди рдХреЗрд╡рд▓ рдЗрд╕ рдЕрдиреБрдЪреНрдЫреЗрдж рдХреЗ рд╡рд╛рджреЗ рдХрд╛ рд╕рдорд░реНрдерди рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкрд╛рд░реНрд╕рд░реНрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рднреА рдорд┐рд▓реЗрдЧреАред

рд╕рдЪ рдХрд╣реВрдВ рддреЛ, рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд░реНрд╖ рдореЗрдВ рдХрд╣рд╛рдБ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди PEG.js рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд░реЛрдбрдореИрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:

  • __PEG.js v1__ - рдЖрдкрдХреЗ 0.11 рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБ-рдлрд╝рд╛рдЗрд▓ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде
  • __PEG.js v1.x__ - рдЕрдиреБрд░рдХреНрд╖рд┐рдд рд░рд┐рд▓реАрдЬрд╝ (рд╡рд░реНрддрдорд╛рди LTS)
  • __PEG.js v2.x__ - рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2015 рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб-рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЙрдкрд░реЛрдХреНрдд рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
  • __PEG.js v3.x__ - LTS рд░рд┐рд▓реАрдЬрд╝
  • __PEG.js v4.x__ - ECMAScript 2017 рдХреЛрдб-рдмреЗрд╕, рдмрдлрд░ рд╕рдкреЛрд░реНрдЯ, рдирдпрд╛ рдкреНрд▓рдЧрдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕
  • __PEG.js v5.x__ - LTS рд░рд┐рд▓реАрдЬрд╝
  • __PEG.js v6.x__ - ECMAScript 20xx рдХреЛрдб-рдмреЗрд╕, рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ , рдирдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░
  • __PEG.js v7.x__ - LTS рд░рд┐рд▓реАрдЬрд╝
  • __PEG.js v8.x__ - ECMAScript 20xx рдХреЛрдб-рдмреЗрд╕, рдЕрдзрд┐рдХ рд╕рд╣рд╛рдпрдХ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрд╛рд╕, рд╕рдВрдкрд╛рджрдХ рдХреЗрдВрджреНрд░рд┐рдд рд╕рдорд░реНрдерди
  • __PEG.js v9.x__ - рдЕрдВрддрд┐рдо LTS рд░рд┐рд▓реАрдЬрд╝, ECMAScript 20xx+ рдХреЛрдб-рдмреЗрд╕

рдЗрд╕ рд░реЛрдбрдореИрдк рдХрд╛ рдХрд╛рд░рдг рдореЗрд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдореБрдЭреЗ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рдмреЗрд╣рддрд░ рдкреНрд▓рдЧрдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдирд╛, __PEG.js v4.x__ рдФрд░ __PEG рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реИред .js v6.x__

@dmajda рдХреЛ рднреА рдиреЛрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореИрдВ рдЯреНрд╡рд┐рдЯрд░ рдЕрдХрд╛рдЙрдВрдЯ рдФрд░ Google рдЧреНрд░реБрдк рдЬреИрд╕реЗ рдкрд╣рд▓реБрдУрдВ рдХреЛ рдореЙрдбрд░реЗрдЯрд░ рдкрд░ рдЫреЛрдбрд╝рдХрд░, рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдФрд░ рдЯреЗрд╕реНрдЯ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рдореБрдЭреЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдЬрдмрдХрд┐ рдЕрдиреБрд░рдХреНрд╖рдХ рдПрд▓рдЯреАрдПрд╕ рд░рд┐рд▓реАрдЬ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдПрдХ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдзрдиреНрдпрд╡рд╛рдж

рдореИрдВ рдПрдХ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ, рдФрд░ рдореИрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЗрд╕ рд╕рдВрдЧрдарди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

@futagoza рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдЕрдкрдиреЗ рдзреАрдореЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ - рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рдмрд╛рддреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдФрд░ рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рджреМрд░рд╛рди рдЙрддреНрддрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░ рд╕рдордп рдирд┐рдХрд╛рд▓рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрдард┐рди рдерд╛ред

рдЖрдкрдиреЗ рдЬреЛ рд▓рд┐рдЦрд╛ рд╣реИ, рдЙрд╕рд╕реЗ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИрдВ рдФрд░ рдЖрдкрдХреА рдпреЛрдЧреНрдпрддрд╛ рдареЛрд╕ рд╣реИред PEG.js рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рднреА рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ PEG.js рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдЖрдк рдЕрдзрд┐рдХ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ - рдпрд╣ рдПрдХ рдРрд╕рд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдЕрдиреБрд░рдХреНрд╖рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реВрдВред

рдПрдХ рдмрд╛рдд рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдереЛрдбрд╝рд╛ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдмрд╣реБрдд рд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдлреАрдЪрд░ рд░реЗрдВрдЧрдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмрд╣реБрдд рд╕рд╛рд░реЗ PEG.js рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рдХреЛ рдорд╣рддреНрд╡ рджреЗрддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдФрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХреЛрдИ рдФрд░ PEG.js рдХреЛ рд▓реЗрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдореБрдЭреЗ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдХрд┐ рдЖрдк PEG.js рд░рдЦрд░рдЦрд╛рд╡ рдХреНрдпреЛрдВ рди рджреЗрдВред

рдореИрдВ рдПрддрджреНрджреНрд╡рд╛рд░рд╛ рдЖрдкрдХреЛ PEG.js рдХрд╛ рдПрдХ рдирдпрд╛ рдЕрдиреБрд░рдХреНрд╖рдХ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдБред

рдмрдзрд╛рдИ рд╣реЛ!

рдореИрдВ рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдЯреНрд╡рд┐рдЯрд░ рдФрд░ Google рд╕рдореВрд╣ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реВрдВрдЧрд╛ред рдлрд┐рд░ рдореИрдВ рдЖрдкрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдИрдореЗрд▓ рднреЗрдЬреВрдВрдЧрд╛ред рдПрдХ рдмрд╛рд░ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдкреАрдЫреЗ рд╣рдЯ рдЬрд╛рдКрдВрдЧрд╛ред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк PEG.js рдХреА рдЕрдЪреНрдЫреА рджреЗрдЦрднрд╛рд▓ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХрд╛ рднрд╡рд┐рд╖реНрдп рдЖрдкрдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдЙрдЬреНрдЬреНрд╡рд▓ рд╣реЛрдЧрд╛ :-)

рдореИрдВ рдПрдХ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ, рдФрд░ рдореИрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЗрд╕ рд╕рдВрдЧрдарди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

@ericjjj рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдЕрднреА @futagoza рдкрд░

@futagoza ЁЯШВ рдмрдзрд╛рдИ рд╣реЛ, рдореИрдВ рдПрдХ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ, рдФрд░ рдореИрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЗрд╕ рд╕рдВрдЧрдарди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

@dmajda рдзрдиреНрдпрд╡рд╛рдж , рдФрд░ рдореИрдВ рдЕрдкрдиреА

рдореИрдВ рдлреАрдЪрд░ рд░реЗрдВрдЧрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЪрд┐рдВрддрд┐рдд рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрд▓рдЯреАрдПрд╕ рд╢реЗрдбреНрдпреВрд▓ рдХреЛ рдКрдкрд░ рд░реЛрдбрдореИрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдЕрднреА рддрдХ рдкрддреНрдерд░ рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред

@ericjjj рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж m8

рдореИрдВ рдЗрд╕ рдкрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдЪреАрдЬреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИред

рдПрдХ рдмрд╛рд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдФрд░ рдореИрдВрдиреЗ рд░рдЦрд░рдЦрд╛рд╡ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рднрдВрдбрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдореИрдВ рдЙрд╕ рдкрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВ рдмрджрд▓рдиреЗ, рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

рдЬрдм рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдирд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛, рддрд╛рдХрд┐ рдЖрдк рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдХрдм рдХреВрджрдирд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рджрд┐рдЦрд╛рдПрдВ рдФрд░ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╣рд╛рдВ рдЬрд╛рдирд╛ рд╣реИ, рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдореЗрд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реИрдВ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛

@futagoza рдареАрдХ рд╣реИ, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

рдЕрдЧрд░ рд╕рдВрдЧрдарди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдпреЛрдЧрджрд╛рди рджреВрдВрдЧрд╛

рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдПрдХ рд╕рд╛рде рд░рдЦ рд╕рдХрддрд╛ рдерд╛ред рдПрдХ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рднрд╛рд╖рд╛, рдЬреИрд╕реЗ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╕рдХреЗ рдореВрд▓ рд╕реЗ рдЫреАрди рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдиреЗ рдореБрдЭреЗ PEG.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕реАрдЦрдиреЗ рдореЗрдВ рдорджрдж рдХреА рд╣реЛрдЧреАред рдПрдПрд╕рдЯреА рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдпрд╣ рднреА рдЬрд╛рдирдирд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдХрд╣реАрдВ рдФрд░ рдЦреЛрдЬрдирд╛ рдерд╛ред

рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЫреЛрдЯреЗ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╕реЗ рдПрдХ рдкреВрд░реНрдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░реНрд╕рд░ рддрдХ рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреАрдЪ рдореЗрдВ рдХреБрдЫ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдЙрджрд╛рд╣рд░рдг рд▓реЗрдЦ:
https://structura.quora.com/Extension-Methods-in-JavaScript

рддреЛ, @futagoza рдирдпрд╛ PEG.js рдЕрдиреБрд░рдХреНрд╖рдХ рд╣реИред
рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдорд╕рд▓рд╛ рдХреНрдпреЛрдВ рдЦреБрд▓рд╛ рд╣реИ?

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдорд╣рд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреЛрд╕реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдореЗрд░реЗ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдкрд╛рд╕реНрдХрд▓ рднрд╛рд╖рд╛ рдкрд╛рд░реНрд╕рд░ рдерд╛ - рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЗрддрдирд╛ рдХрдард┐рди рдерд╛: рдбреА
JavaScript + PEG.js рдРрд╕реЗ рдХрд╛рд░реНрдп рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ

рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреИрд╢ рдЬреИрд╕реА рднрд╛рд╖рд╛ (рдХреНрдпреВрдореЗрдХ рдкреНрд░реЛ-рдлрд╛рдЗрд▓) рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдкрд╛рд░реНрд╕рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдХрдореА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рд╡реНрдпрд╛рдХрд░рдг рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдИ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЕрднрд╛рд╡ред
рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдорд╕рд▓рд╛ рдХреНрдпреЛрдВ рдЦреБрд▓рд╛ рд╣реИ?

рдореИрдВ рдмрд╕ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ред рдЕрдм рдРрд╕рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕