рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ "рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдмрдирд╛рдирд╛" рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЖрдкрдХреЛ рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рднреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рдж рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬреЗрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдХреЛрдб LLVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреА рд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓реЙрдиреНрдЪрд┐рдВрдЧ рдкреИрдб рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдзреАрд░реЗ-рдзреАрд░реЗ рд╣рдорд╛рд░реА рднрд╛рд╖рд╛, рдЗрд╕рдХреА рдЪрд░рдгрдмрджреНрдз рд░рдЪрдирд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдб рдХреЛ рджрд┐рдЦрд╛рддреЗ рдФрд░ рд╕рдордЭрд╛рддреЗ рд╣реБрдП рднрд╛рд╖рд╛ рдбрд┐рдЬрд╛рдЗрди рдФрд░ LLVM рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдореБрджреНрджреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреБрдЫ рд╕рдВрдХрд▓рди рддрдХрдиреАрдХ рдФрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рд╕рд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдзреБрдирд┐рдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдирд╣реАрдВ рд╕рд┐рдЦрд╛рддрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рдХрдо рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд░ рдЬрдЧрд╣ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрддреНрдХреГрд╖реНрдЯ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдЬреИрд╕реЗ
рд╡рд┐рдЬрд╝рд┐рдЯрд░ рдФрд░ рдЕрдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рднрд╡рд┐рд╖реНрдп рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕реА рдХрдорд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдореИрдВрдиреЗ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рд░рдЪрдирд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддрд╛рдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХреЗрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдпрд╛ рдЬрд┐рдирдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рдХреА рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рдЕрдзреНрдпрд╛рдп рд╕рдВрдЦреНрдпрд╛ 1 : рдмрд╣реБрд░реВрдкрджрд░реНрд╢рдХ рднрд╛рд╖рд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рдФрд░ рдЗрд╕рдХреЗ рд╢рд╛рдмреНрджрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ - рдпрд╣ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рд╣рдо рдХрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдХрд░реАрдм рд╣реИрдВ, рд╣рдордиреЗ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рд╢реБрджреНрдз C ++ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдПрд▓рдПрд▓рд╡реАрдПрдо, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЕрдзреНрдпрд╛рдп 2 : рдкрд╛рд░реНрд╕рд░ рдФрд░ рдПрдПрд╕рдЯреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ - рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╢рд╛рдмреНрджрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдФрд░ рдПрдПрд╕рдЯреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╡рдВрд╢ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ рдкреВрд░реНрд╡рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рдЕрдзреНрдпрд╛рдп 1 рдпрд╛ 2 рдореЗрдВ рдХреБрдЫ рднреА рдПрд▓рдПрд▓рд╡реАрдПрдо рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрди рдЕрдзреНрдпрд╛рдпреЛрдВ рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд▓рд┐рдП рдХреЛрдб рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред :)
- рдЕрдзреНрдпрд╛рдп 3 : рдПрд▓рдПрд▓рд╡реАрдПрдо рдЖрдИрдЖрд░ рдХреЛрдб рдЬрдирд░реЗрд╢рди - рдПрдПрд╕рдЯреА рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рд╣рдо рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЖрдИрдЖрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред
- рдЕрдзреНрдпрд╛рдп 4 : рдЬреЗрдЖрдИрдЯреА рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ - рдЪреВрдВрдХрд┐ рдХрдИ рд▓реЛрдЧ рдЬреЗрдЖрдИрдЯреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо рдЗрд╕рдореЗрдВ рдбреБрдмрдХреА рд▓реЗрдВрдЧреЗ рдФрд░ рдЖрдкрдХреЛ рдЬреЗрдЖрдИрдЯреА рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП 3 рдЪрд░рдг рджрд┐рдЦрд╛рдПрдВрдЧреЗред рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рднреА рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреА рддрд╛рдХрдд рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ "рдпреМрди" рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред :)
- рдЕрдзреНрдпрд╛рдп 5 : рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░: рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ - рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдирд┐рд░реНрдорд╛рдг (рдпрджрд┐ / рдлрд┐рд░ / рдФрд░ "рд▓реВрдк рдХреЗ рд▓рд┐рдП") рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рд╕рд░рд▓ SSA рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИред
- рдЕрдзреНрдпрд╛рдп 6 : рднрд╛рд╖рд╛ рд╡рд┐рд╕реНрддрд╛рд░: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдСрдкрд░реЗрдЯрд░ рднрд╛рд╖рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдк рдЕрдзреНрдпрд╛рдп рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдирд╛рд░реНрдп рдФрд░ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ (рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде) рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рд░реВрдЯреАрди рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ "рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛" рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
- рдЕрдзреНрдпрд╛рдп 7 : рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░: рдЪрд░ рдЪрд░ - рдпрд╣ рдЕрдзреНрдпрд╛рдп рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╕реНрдЯрдо рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрд╕рдПрд╕рдП рдлреЙрд░реНрдо рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдФрд░ рддреБрдЪреНрдЫ рд╣реИ: рдФрд░ рдирд╣реАрдВ, рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛ рдЖрдкрдХреЗ рдлреНрд░рдВрдЯ рдПрдВрдб рдореЗрдВ рдПрд╕рдПрд╕рдП рдлреЙрд░реНрдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ!
- рдЕрдзреНрдпрд╛рдп 8 : рдирд┐рд╖реНрдХрд░реНрд╖ рдФрд░ рдЕрдиреНрдп LLVM рдЙрдкрд╣рд╛рд░ - рдпрд╣ рдЕрдзреНрдпрд╛рдп рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдХреЗ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рд╕рдорд╛рдкрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рд╕рдорд░реНрдерди, рдЕрдкрд╡рд╛рдж, рдбрд┐рдмрдЧрд┐рдВрдЧ, рд╕реНрдкреЗрдЧреЗрдЯреА рд╕рдорд░реНрдерди -рд╕реНрдЯреИрдХ тАЭ(тАЬ рд╕реНрдкреЗрдЧреЗрдЯреА рд╕реНрдЯреИрдХ тАЭ), рдФрд░ рдЕрдиреНрдп рдпреБрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдПрдХ рд╕рдореВрд╣ред
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдВрдд рддрдХ, рд╣рдордиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рд░рд┐рдХреНрдд рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдб рдХреА 700 рд╕реЗ рдереЛрдбрд╝реА рдХрдо рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ред рдХреЛрдб рдХреА рдЗрд╕ рдЫреЛрдЯреА рд░рд╛рд╢рд┐ рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдВрдХрд▓рдХ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ, рдкрд╛рд░реНрд╕рд░, рдПрдПрд╕рдЯреА, рд╕рд╛рде рд╣реА рдЬреЗрдЖрдИрдЯреА рдХреЗ рд╕рд╛рде рдХреЛрдб рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИред рдЬрдмрдХрд┐ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╣реИрд▓реЛ, рд╡рд┐рд╢реНрд╡-рд╢реИрд▓реА рдХреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВ, рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рдЪреМрдбрд╝рд╛рдИ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреА рд╢рдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рд╡рд╕реАрдпрддрдирд╛рдорд╛ рд╣реИред рдпрджрд┐ рдЖрдк рднрд╛рд╖рд╛ рдФрд░ рд╕рдВрдХрд▓рдХ рдмрдирд╛рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рдЬрд░реВрд░ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдФрд░ рдПрдХ рдФрд░ рдмрд╛рдд: рд╣рдо рдЖрдкрд╕реЗ рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╣рдорд╛рд░реЗ рд╡рд┐рд╡реЗрдХ рд╕реЗ рдЦреЗрд▓реЗрдВрдЧреЗред рдХреЛрдб рд▓реЗрдВ рдФрд░ рдлреНрд░реИрдВрдЪрд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░реЗрдВ, рдкрд╛рдЧрд▓ рд╣реЛ рдЬрд╛рдПрдВ, рд╕рдВрдХрд▓рдХ рдЖрдкрдХреЛ рдбрд░рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рдмрд╣реБрдд рдордЬреЗрджрд╛рд░ рд╣реИ!
рдЬреАрдн рдХрд╛рд▓реАрджреЛрд╕реНрдХреЛрдк
рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЯреЙрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдордиреЗ "
рдХреИрд▓реАрдбреЛрд╕реНрдХреЛрдк " рдХрд╣рд╛ рд╣реИ (рдирд╛рдо рддреАрди рдЧреНрд░реАрдХ рд╢рдмреНрджреЛрдВ рд╕реЗ рдЖрдпрд╛ рд╣реИ: "рд╕реБрдВрджрд░", "рджреЗрдЦреЛ" рдФрд░ "рджреЗрдЦреЛ, рджреЗрдЦреЛ")ред рдмрд╣реБрд░реВрдкрджрд░реНрд╢рдХ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ, рд╢рд░реНрддреЛрдВ, рдЧрдгрд┐рдд рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЕрдзреНрдпрдпрди рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдЕрдЧрд░ / рдлрд┐рд░ / рдирд┐рд░реНрдорд╛рдг, рд▓реВрдк, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрдпрд╛рди, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдВрд╕реЛрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде JIT рд╕рдВрдХрд▓рди, рдЖрджрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрд░реВрдкрджрд░реНрд╢рдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдмрд╣реБрд░реВрдкрджрд░реНрд╢рдХ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ - рдПрдХ 64-рдмрд┐рдЯ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ (рдЬреИрд╕реЗ "рдбрдмрд▓" рд╕реА рдореЗрдВ)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдореВрд▓реНрдп рджреЛрд╣рд░реЗ рд╕рдЯреАрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИрдВ рдФрд░ рднрд╛рд╖рд╛ рдХреЛ рдкреНрд░рдХрд╛рд░ рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рднрд╛рд╖рд╛ рдХреЛ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг
рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ:
рд╣рдордиреЗ рдХреИрд▓реАрдбреЛрд╕реНрдХреЛрдк рдХреЛ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдпреЛрдВ (LLVM JIT рдЗрд╕реЗ рдХрд╛рдлреА рддреБрдЪреНрдЫ рдмрдирд╛рддрд╛ рд╣реИ) рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдПрдХреНрд╕рдЯрд░реНрдирд▓ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
extern sin(arg); extern cos(arg); extern atan2(arg1 arg2); atan2(sin(.4), cos(42))
рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЙрджрд╛рд╣рд░рдг рдЕрдзреНрдпрд╛рдп 6 рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдо рдХрд▓реАрдбреЛрд╕реНрдХреЛрдк рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЖрд╡реЗрджрди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдЧреНрд░реА рдореЗрдВ рдореИрдВрдбреЗрд▓рдмреНрд░реЙрдЯ рд╕реЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдФрд░ рдЕрдм рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдПрдБ!
рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ
рдЬрдм рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реА рдЪреАрдЬ рдЪрд╛рд╣рд┐рдП рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдФрд░ рдЙрд╕рдореЗрдВ рдХреЛрдб рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ "рдЯреЛрдХрди" рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП "
рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ " (рдпрд╛ "рд╕реНрдХреИрдирд░") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдЯреЛрдХрди рдореЗрдВ рдХреЛрдб рдХреА рдПрдХ рдЗрдХрд╛рдИ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдВрдЧреЗ:
рд╣рдорд╛рд░реЗ рд╢рд╛рдмреНрджрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдЯреЛрдХрди рдпрд╛ рддреЛ рдЯреЛрдХрди рдПрдиреНрдпреВрдорд░реЗрд╢рди рдорд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдВрдЧреЗ рдпрд╛ рдпрд╣ "рдЕрдЬреНрдЮрд╛рдд" рдЬреИрд╕реЗ "+" рд╡рд░реНрдг рдХреЗ рд╣реЛрдВрдЧреЗ, рдЬреЛ рдХрд┐ ASCII рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдЯреЛрдХрди рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ, рддреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдореЗрдВ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдЯреЛрдХрди рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╢рд╛рдмреНрджрд┐рдХ рд╣реИ (рдЬреИрд╕реЗ 1.0), рддреЛ NumVal рдореЗрдВ рдЗрд╕рдХрд╛ рдорд╛рди рд╣реЛрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ :)ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдорд╛рд░реЗ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдЧреЗрдЯрдХреЛрдХ рдирд╛рдордХ рдПрдХрд▓ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЧреЗрдЯрдЯреЙрдХ рдлрд╝рдВрдХреНрд╢рди, рдЬрдм рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдорд╛рдирдХ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЕрдЧрд▓рд╛ рдЯреЛрдХрди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЗрд╕ рддрд░рд╣ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ:
gettok рдорд╛рдирдХ рдЗрдирдкреБрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рд╡рд░реНрдгреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП getchar () C рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдФрд░ рд▓рд╛рд╕реНрдЯ рдЪреЗрдпрд░ рдореЗрдВ рд▓рд╛рд╕реНрдЯ рд░реАрдб рдХреИрд░реЗрдХреНрдЯрд░ рдХреЛ рд╕реЗрд╡ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдЙрд╕реЗ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рдЯреЛрдХрди рдХреЗ рдмреАрдЪ рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рдЪрдХреНрд░ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд▓реА рдЧреЗрдЯрдЯреЙрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдХреАрд╡рд░реНрдб рдЬреИрд╕реЗ "рдбреАрдПрдлрд╝" рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдХреИрд▓реАрдбреЛрд╕реНрдХреЛрдк рдЗрд╕ рд╕рд░рд▓ рд▓реВрдк рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ:
if (isalpha(LastChar)) {
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреЛрдб рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ "рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛" рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднрд╛рд╖рд╛ рдХреЗ рдХреАрд╡рд░реНрдб рдПрдХ рд╣реА рдЪрдХреНрд░ рдореЗрдВ рдЬрд╛рдВрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ:
if (isdigit(LastChar) || LastChar == '.') {
рдпрд╣ рдЗрдирдкреБрдЯ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд░рд▓ рдХреЛрдб рд╣реИред рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп, рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП strtod C рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо NumVal рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣рд╛рдВ рдкрд░реНрдпрд╛рдкреНрдд рддреНрд░реБрдЯрд┐ рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ: "1.23.45.67" рдорд╛рди рдкрдврд╝рд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗ "1.23" рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИред рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЛ рдкреВрд░рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)ред рдЕрдм рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ:
if (LastChar == '#') {
рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╡рд░реНрдгреЛрдВ рдХреЛ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рддрдХ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЕрдЧрд▓рд╛ рдЯреЛрдХрди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдлрд┐рд░, рдпрджрд┐ рдЗрдирдкреБрдЯ рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдпрд╛ рддреЛ "+" рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдЬреИрд╕реЗ рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╣реИред рд╡реЗ рдЗрд╕ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ:
рдЙрд╕реА рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд▓рд┐рдбреЛрд╕реНрдХреЛрдк рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реЛрддрд╛ рд╣реИ (рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдЕрдЧрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ
рдХреЛрдб рдХреА рдПрдХ
рдкреВрд░реА рд╕реВрдЪреА рдЙрдкрд▓рдмреНрдз рд╣реИ)ред рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рд░реНрд╕рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рд╕рд╛рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЯреНрд░реА рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╣рдо рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдФрд░ рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпреБрдкреАрдбреАредрдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рдЬреЛ рд╕реАрдЦрдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ: