рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░: 2 * 5 + SUM(1, 2, 3)
[
"2",
"*",
"5",
"+",
"SUM",
"(",
[
"1",
",",
"2",
",",
"3"
],
")"
]
рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ : 2 * 5 + SUM(1, 2, 3)
[
"2",
" ",
"*",
" ",
"5",
" ",
"+",
" ",
"SUM",
"(",
[
"1",
",",
" ",
"2",
",",
" ",
"3"
],
")"
]
рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдХрд░рдг: https://pastebin.com/zpwqT6Uw
рдЦреВрдВрдЯреА.рдЬреЗрдПрд╕ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди https://pegjs.org/online
рдореИрдВ рдХреНрдпрд╛ рдЦреЛ рд░рд╣рд╛ рд╣реВрдБ?
@futagoza рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЦреЗрдж рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реИ рдЬрдм рдореИрдВ рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ рд╕реЗ рдирд┐рдкрдЯ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдореБрджреНрджрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХреНрдпрд╛ рдореИрдВ рдЖрдкрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдВрдХреЗрдд рдорд╛рдВрдЧ рд╕рдХрддрд╛ рд╣реВрдВ?
рд╕рд╛рджрд░,
рдорд╛рд░реЗрдХ
рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╡реНрдпрд╛рдХрд░рдг (рдХрд▓ рдФрд░ рдЕрднреА) рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╕рдордЭрдирд╛ рд╡рд╛рдХрдИ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ (рдПрдХ рддрд░рдл рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдирд╛рдордХрд░рдг, рдкреНрд░рд╛рд░реВрдк, рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЬрдЧрд╣ рд╣реИ), рдореБрдЭреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛:
const
рд░рд┐рдЯрд░реНрди [left_space, cnst, right_space]
)[].concat.apply([], con)
рдлрд┐рд░ рднреА, рдЖрдкрдХреЗ рд╕рд╛рде рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реИрдХреА рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпрд╛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ? рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╣реИрдХреА рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреМрди рд╕реЗ рдирд┐рдпрдо рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛ред
рдпрджрд┐ рдирд╣реАрдВ, рдЬрдм рддрдХ рдЖрдк рд╡реНрдпрд╛рдХрд░рдг рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ (рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ), рддреЛ рдореИрдВ рдЦреБрд╢реА рд╕реЗ рдЗрд╕ рдкрд░ рдПрдХ рдФрд░ рдЫреБрд░рд╛ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛
@ рдорд╛рд░реЗрдХ-рдмрд╛рд░рд╛рдиреЛрд╡рд╕реНрдХреА - рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдм рддрдХ рдирд╣реАрдВ рджреЗрдЦрд╛ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ
рдпрджрд┐ рдЖрдк рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдЙрдирдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдиреЗ рдпреЛрдЧреНрдп рд╕рд╛рдордЧреНрд░реА рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рджреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╛ рддреЛ рджреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╛ рджреЛ рдПрдХ-рд╕реНрдкреЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдо рддреМрд░ рдкрд░ рдореИрдВ рдкреВрд░реНрд╡ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди ... рдЖрдкрдХреА рд╣рд░ рдЪреАрдЬ рдкреНрд░рддрд┐-рдЪрд░рд┐рддреНрд░ рд╣реИ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ ... рдЖрдк рдлрдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрд╡рд╛рд░рд╛ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдХреНрдпреЛрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдкрд╛рд░реНрд╕рд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдирдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡реИрд╕реЗ рднреА
рдЖрдкрдиреЗ рдпрд╣реА рдорд╛рдВрдЧрд╛ рд╣реИ:
Document = Expression*
Whitespace
= tx:[ \r\n]+ { return tx.join(''); }
Number
= str:[0-9]+ { return str.join(''); }
Oper
= '+'
/ '-'
/ '/'
/ '*'
/ ','
Label
= l:[a-zA-Z]+ { return l.join(''); }
Parens
= '(' Whitespace? ex:Expression* Whitespace? ')' { return ex; }
Expression
= Number
/ Oper
/ Whitespace
/ Label
/ Parens
/ [^()]+
рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐, рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдк рдпрд╣реА рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрдЬрд╛рдп рдЖрдк рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдиреЛрдб рдЖрдХрд╛рд░ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Document = Expression*
Whitespace
= tx:[ \r\n]+ { return {
ast: 'whitespace', value: tx.join('')
}; }
Number
= str:[0-9]+ { return {
ast: 'number', value: parseInt(str,10)
}; }
Oper
= '+' { return { ast: 'oper', value: 'add' }}
/ '-' { return { ast: 'oper', value: 'subtract' }}
/ '/' { return { ast: 'oper', value: 'divide' }}
/ '*' { return { ast: 'oper', value: 'multiply' }}
/ ',' { return { ast: 'oper', value: 'sequence' }}
Label
= l:[a-zA-Z]+ { return {
ast: 'label', value: l.join('')
}; }
Parens
= '(' Whitespace? ex:Expression* Whitespace? ')' {
return { ast: 'parens', value: ex
}; }
Expression
= Number
/ Oper
/ Whitespace
/ Label
/ Parens
/ [^()]+
рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рдЖрдкрдХрд╛ рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрдЪрд┐рдд рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рд╣реБрдЖ рдкреЗрдбрд╝ рднреА рд╣реИ, рдФрд░ рдЕрдкрдиреЗ рдкрд╛рд░реНрд╕рд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рднреА рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдИ рдЕрдм рд▓рд╛рдЗрди рдирдВрдмрд░ рдЬреИрд╕реА рдирд┐рдпрдорд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдЧреЗ
@ рдорд╛рд░реЗрдХ-рдмрд╛рд░рд╛рдиреЛрд╡рд╕реНрдХреА - рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рдпрджрд┐ рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ? рдзрдиреНрдпрд╡рд╛рдж
рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпреЛрдВ, рдФрд░ рдореИрдВ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛
@ рдорд╛рд░реЗрдХ-рдмрд╛рд░рд╛рдиреЛрд╡рд╕реНрдХреА рдПрдХ рдФрд░ рдХреЛрдорд▓ рдкрд┐рдВрдЧ: рд╕реНрдорд╛рдЗрд▓реА_рдХреИрдЯ:
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рд╡реНрдпрд╛рдХрд░рдг рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ PEG.js рдкреНрд▓рдЧрдЗрди pegjs-syntactic-actions рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджреЗрдЦреЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рд╡рд░реНрдг рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд┐рд╕ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╢рд╛рдпрдж рдпрд╣рд╛рдВ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ @StoneCypher рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рддрд░реНрдХ рд╣реИ: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдордЭрдирд╛ рдЕрдХреНрд╕рд░/рдХрднреА-рдХрднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдо рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдИ рдЫреЛрдЯреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдвреВрдВрдврдирд╛ рдЬреЛ рдмреБрд░реА рддрд░рд╣ рд╕реЗ/рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдирд┐рдпрдо рдХрд┐рд╕ рдЪрд░рд┐рддреНрд░ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЙрд╕ рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╣реИред
рдЕрд░реЗ рд╡рд╛рд╣ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдл рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@ рдорд╛рд░реЗрдХ-рдмрд╛рд░рд╛рдиреЛрд╡рд╕реНрдХреА рдПрдХ рдФрд░ рдХреЛрдорд▓ рдкрд┐рдВрдЧ: рд╕реНрдорд╛рдЗрд▓реА_рдХреИрдЯ:
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рд╡реНрдпрд╛рдХрд░рдг рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ PEG.js рдкреНрд▓рдЧрдЗрди pegjs-syntactic-actions рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджреЗрдЦреЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рд╡рд░реНрдг рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд┐рд╕ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╢рд╛рдпрдж рдпрд╣рд╛рдВ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ @StoneCypher рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рддрд░реНрдХ рд╣реИ: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдордЭрдирд╛ рдЕрдХреНрд╕рд░/рдХрднреА-рдХрднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдо рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдИ рдЫреЛрдЯреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдвреВрдВрдврдирд╛ рдЬреЛ рдмреБрд░реА рддрд░рд╣ рд╕реЗ/рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдирд┐рдпрдо рдХрд┐рд╕ рдЪрд░рд┐рддреНрд░ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЙрд╕ рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╣реИред