рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреИрдЪ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛

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

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

рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рд╡рд░реНрдЧ рдмрдирд╛рдирд╛

рдЪрд▓рд┐рдП Util.StudioExtension рд╡рд░реНрдЧ рдХреЛ% Studio.Extension.Base рдХреЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЗрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ:

рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рди> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди> рдЙрдиреНрдирдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -> рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА

рдХрдХреНрд╖рд╛ Util.StudioExtension% Studio.Extension.Base рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
{
XData рдореЗрдиреВ
{
< рдореЗрдиреВрдмреЗрд╕ >
< рдореЗрдиреВ рдХрд╛ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк" рдкреНрд░рдХрд╛рд░ = "1" >
< MenuItem рдирд╛рдо = "PlusTab" />
< MenuItem рдирд╛рдо = "MinusTab" />
< MenuItem рд╕реЗрдкрд░реЗрдЯрд░ = "1" />
< MenuItem рдирд╛рдо = "рд╕реБрдзрд╛рд░рдирд╛" />
< MenuItem рдирд╛рдо = "рд╕реБрдзрд╛рд░рдХ рдХрд╛рд░реНрдп" " рд╕рд╣реЗрдЬреЗрдВ = " 100 " />
< MenuItem рд╕реЗрдкрд░реЗрдЯрд░ = "1" />
< MenuItem рдирд╛рдо = "CommentBlock" />
< MenuItem рдирд╛рдо = "UnCommentBlock" />
</ рдореЗрдиреВ >
</ MenuBase >
}
}
рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ, MenuBase, Menu, MenuItem рдЯреИрдЧ% Studio.Extension.Base,% Studio.Extension.Menu,% Studio.Extension.MenuItem рд╡рд░реНрдЧреЛрдВ рдХреА рдореИрдкрд┐рдВрдЧ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЕрд░реНрде рдХреЛ рдЙрдирдХреЗ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд╛рдо рдЖрдЗрдЯрдо рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдирд╛рдо рд╣реИ, рдЯрд╛рдЗрдк = 1 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореЗрдиреВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рд╕реЗрдкрд░реЗрдЯрд░ = 1, рдХрд┐ рдЖрдЗрдЯрдо рдПрдХ рд╡рд┐рднрд╛рдЬрдХ рд╣реИ, рд╕рд╣реЗрдЬреЗрдВ = 100, рдХрд┐ рдЬрдм рдЖрдк рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдВ рдЬреЛ рдореЗрдиреВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рд╕рдВрднрд╛рд▓рддреА рд╣реИред рдореЗрдиреВ рдЖрдЗрдЯрдо рдореЗрдВ рдкрдардиреАрдп рд░реВрд╕реА рдирд╛рдо рдЬреЛрдбрд╝реЗрдВ, рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рд╣рдо рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдорд╛рдирддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░реЗрдВ (рд╕рдХреНрд╖рдо = 0)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдХрд▓реНрдк "рд╕реБрдзрд╛рд░рд┐рдд рдЪрдпрдирд┐рдд рдкрд╛рда" рдХреЛ рд╕рдХреНрд░рд┐рдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред
OnMenuItem рд╡рд┐рдзрд┐
рд╡рд┐рдзрд┐ OnMenuItem ( рдореЗрдиреВ рдирд╛рдо % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ , рдЖрдВрддрд░рд┐рдХ рдирд╛рдо % рд╕реНрдЯреНрд░рд┐рдВрдЧ , рдЪрдпрдирд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ% рд╕реНрдЯреНрд░рд┐рдВрдЧ , ByRef % рдмреБрд▓рд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдХреНрд╖рдо ,
% рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ ByRef DisplayName ) % рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ
{
рд╕реЗрдЯ : MenuName = "рдлрд╝реЙрд░реНрдореЗрдЯ" DisplayName = "рдлрд╝реЙрд░реНрдореЗрдЯ"
рд╕реЗрдЯ : MenuName = "рдкреНрд░рд╛рд░реВрдк, рдкреНрд▓рд╕рдЯреИрдм" DisplayName = "-> | рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдмрдврд╝рд╛рдПрдБ"
рд╕реЗрдЯ : рдореЗрдиреВрдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдорд╛рдЗрдирд╕рдЯреИрдм" рдбрд┐рд╕реНрдкреНрд▓реЗрдирд╛рдо = "ред <- рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХрдо рдХрд░реЗрдВ"
рд╕реЗрдЯ : MenuName = "рдкреНрд░рд╛рд░реВрдк, рд░рд┐рдлреЙрд░реНрдордбрдбрд┐рдореЗрдореЗрдВрдЯ " DisplayName = "рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд░рд┐рдлреЙрд░реНрдо рдХрд░реЗрдВ"
рд╕реЗрдЯ рдХрд░реЗрдВ : рдореЗрдиреВрдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рд╕реБрдзрд╛рд░ рд╕рддреНрд░ " рдкреНрд░рджрд░реНрд╢рдирдирд╛рдо = "рд╕реБрдзрд╛рд░ рдЪрдпрди"
рд╕реЗрдЯ : MenuName = "рдкреНрд░рд╛рд░реВрдк, рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ" DisplayName = "рдЯрд┐рдкреНрдкрдгреА рдмреНрд▓реЙрдХ"
рд╕реЗрдЯ рдХрд░реЗрдВ : MenuName = "рдкреНрд░рд╛рд░реВрдк, UnCommentBlock" DisplayName = "рдмреНрд▓реЙрдХ рдХреЛ рд░рджреНрдж рдХрд░реЗрдВ"
рд╕реЗрдЯ рд╕рдХреНрд╖рдо = 1
рд╕реЗрдЯ ext = $ рдЯреБрдХрдбрд╝рд╛ ( рдЖрдВрддрд░рд┐рдХ рдирд╛рдо " , " , $ рд▓рдВрдмрд╛рдИ ( рдЖрдВрддрд░рд┐рдХ рдирд╛рдо , "" ))ред
рд╕реЗрдЯ рдХрд░реЗрдВ :( рдореЗрдиреВрдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рд╕реБрдзрд╛рд░рдХ рдХрд╛рд░реНрдп" ) рдФрд░& ( ext '= "MAC" ) рдФрд░& ( ext ' = "CLS" ) рд╕рдХреНрд╖рдо = 0
рд╕реЗрдЯ :( MenuName = "рдкреНрд░рд╛рд░реВрдк, рд░рд┐рдлреЙрд░реНрдореИрдЯреЗрд╢рди " ) && ( рдЪрдпрдирд┐рддрдЯрд╛рдЗрдк = "" ) рдЕрдХреНрд╖рдо ) 0
рд╕реЗрдЯ :( рдореЗрдиреВрдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдорд╛рдЗрдирд╕рдЯреИрдм" ) рдФрд░& ( рдЪрдпрдирд┐рддрдЯрд╛рдЗрдк = "" ) рд╕рдХреНрд╖рдо = 0
рд╕реЗрдЯ рдХрд░реЗрдВ :( MenuName = "рдкреНрд░рд╛рд░реВрдк, UnCommentBlock" ) && ( рдЪрдпрдирд┐рддрдЯрд╛рдЗрдк = "" ) рд╕рдХреНрд╖рдо = 0
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}

рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдирдпрд╛ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдЖрдЗрдЯрдо рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:


рдЗрдВрдбреЗрдВрдЯ рдХреНрд▓рд╛рд╕ рд╕реА

рдПрдХ UserAction рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдБ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреА рдкрд╕рдВрдж рд╢рд╛рдорд┐рд▓ рд╣реИ:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдзрд┐
/ * рдХреБрдЫ рд╣реБрдЖ
рдкреНрд░рдХрд╛рд░ = 0 - рдореЗрдиреВ рдЖрдЗрдЯрдо рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдВрддрд░рд┐рдХ рдирд╛рдо рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рдирд╛рдо рд╣реИ, рдЬрдмрдХрд┐
рдЖрдВрддрд░рд┐рдХ рдирд╛рдо - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдирд╛рдо,
рдЪрдпрдирд┐рдд рдкрд╛рда - рдЪрдпрдирд┐рдд рдкрд╛рда (рдпрджрд┐ рдЪрдпрдирд┐рдд рд╣реИ)

рдкреНрд░рдХрд╛рд░ = 1 - рдШрдЯрдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдереА, рдЬрдмрдХрд┐
рдирд╛рдо = 0 - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ
рдирд╛рдо = 1 - рдПрдХ рдирдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдпрд╛ рдФрд░ рдмрдЪрд╛рдпрд╛
рдирд╛рдо = 2 - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛
рдирд╛рдо = 3 - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЦреЛрд▓рд╛
рдирд╛рдо = 4 - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛
рдирд╛рдо = 5 - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ
рдЖрдВрддрд░рд┐рдХ рдирд╛рдо - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдШрдЯрдирд╛ рд╣реБрдИ

рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
реж - рдХреБрдЫ рдордд рдХрд░реЛ
1 - рдорд╛рдирдХ рд╕рдВрд╡рд╛рдж рд╣рд╛рдБ / рдирд╣реАрдВ / рд░рджреНрдж рдХрд░реЗрдВ рджрд┐рдЦрд╛рдПрдВред рд╕рдВрд╡рд╛рдж рдХрд╛ рдкрд╛рда рд▓рдХреНрд╖реНрдп рдЪрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
2 - csp рдкреЗрдЬ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рд▓рдХреНрд╖реНрдп рдкреГрд╖реНрда рдХрд╛ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
3 - рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ EXE рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдБред рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдкрде рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
4 - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рдХреНрд╖реНрдп рдЪрд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рдкрд╛рда рдбрд╛рд▓реЗрдВ
5 - рд▓рдХреНрд╖реНрдп рдЪрд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЦреЛрд▓реЗрдВред рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╛рдо рдореЗрдВ 'test.mac: рд▓реЗрдмрд▓ + 10' рд╣реИ, рддреЛ test.mac рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ 'рд▓реЗрдмрд▓ + 10' рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЦреБрд▓реЗрдЧрд╛ред
6 - рд▓рдХреНрд╖реНрдп рдЪрд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдВрдбреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
7 - рд╣рд╛рдВ / рдирд╣реАрдВ / рд░рджреНрдж рдХрд░реЗрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╡рд╛рдж рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрд╡рд╛рдж рдХрд╛ рдкрд╛рда рд▓рдХреНрд╖реНрдп рдЪрд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рд╕рдВрджреЗрд╢ рдкрд░реАрдХреНрд╖рдг рдЪрд░ Msg рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рд░реАрд▓реЛрдб рддрд░реНрдХ рд╕рддреНрдп рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
* /
рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ ( %% рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ,% рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдо , рдЖрдВрддрд░рд┐рдХ рдирд╛рдо % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ , рдЪрдпрдирд┐рдд рд╢реАрд░реНрд╖ рдХреНрд░рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ,
% рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ByRef рдХреНрд░рд┐рдпрд╛ , % String рдХреЗ рд░реВрдк рдореЗрдВ ByRef рд▓рдХреНрд╖реНрдп , % String рджреНрд╡рд╛рд░рд╛ ByRef Msg , % Boolean рдХреЗ рд░реВрдк рдореЗрдВ ByRef рдкреБрдирдГ рд▓реЛрдб ) % рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ
{
рд╕реЗрдЯ ext = $ zconvert ( $ рдЯреБрдХрдбрд╝рд╛ ( InternalName , " , " , $ рд▓рдВрдмрд╛рдИ ( рдЖрдВрддрд░рд┐рдХ рдирд╛рдо , "" )), "U" )ред
рдпрджрд┐ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдкреНрд▓рд╕рдЯреИрдм"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4 ; рдкрд╛рда рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рд╕реЗрдЯ рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatTab )ред рдкреНрд▓рд╕рдЯреИрдм ( рдЪрдпрдирд┐рддрдЯреЗрдХреНрд╕реНрдЯ , рдПрдХреНрд╕рдЯ = "рд╕реАрдПрд╕рдкреА" )
}
рдЕрдЧрд░ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдорд╛рдЗрдирд╕рдЯреИрдм"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4 ; рдкрд╛рда рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рд╕реЗрдЯ рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatTab )ред рдорд╛рдЗрдирд╕рдЯреИрдм ( рдЪрдпрдирд┐рддрдЯреЗрдХреНрд╕реНрдЯ , рдПрдХреНрд╕рдЯ = "рд╕реАрдПрд╕рдкреА" )
}
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}

рд╡рд╣ рд╡рд░реНрдЧ рдЬреЛ рд╣рдо рдЯреИрдм рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
Util.FormatTab рдХреНрд▓рд╛рд╕
/// рдкрд╛рда рдореЗрдВ рдЯреИрдм рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛
рдХреНрд▓рд╛рд╕ рдпреВрдЯрд┐рд▓.рдлреЙрд░реНрдордЯреИрдм
{
/// рдЖрд░рдВрдн рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЯреИрдм рдЬреЛрдбрд╝реЗрдВ
/// рдПрдХ рд╕реНрдерд╛рди рдпрд╛ рдЯреИрдм рдХреЗ рд╕рд╛рдеред
/// рдкрд╛рда рдЪрд┐рд╣реНрдирд┐рдд рдХреЗ рд▓рд┐рдП
ClassMethod PlusTab ( рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ% рдХреЗ рд░реВрдк рдореЗрдВ , inCsp % Boolean = 0 ) % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ
{
рд╕реЗрдЯ cr = $ char (13,10) ; рд▓рд╛рдЗрди рдлрд╝реАрдб рдЕрдХреНрд╖рд░
рд╕реЗрдЯ рдЯреИрдм = $ char (9) ; рдЯреИрдм рд╡рд░реНрдг
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди = $ рд▓рд┐рд╕реНрдЯрдлреНрд░реЙрдорд╕реНрдЯреНрд░рд┐рдВрдЧ ( рдкрд╛рда , рдХрд░реЛрдбрд╝ )
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдУрдЯ = ""
рдореИрдВ = 1: 1: $ рд╕реВрдЪреА ( рддрд╛рд░ )
{
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рд╕реВрдЪреА ( рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди , i )
рдкреНрд░рдердо рд╕реЗрдЯ = $ рдЕрд░реНрдХ ( рдкрдВрдХреНрддрд┐ , 1,1)
if ( inCsp = 1) || ( рдлрд░реНрд╕реНрдЯрд╕рд┐рдордмреЛрд▓ = "" ) || ( рдлрд░реНрд╕реНрдЯрд╕рдВрдмреЛрд▓ = рдЯреИрдм )
{
рдкрдж рдХреЗ рд▓рд┐рдП = 1: 1: $ рд▓рдВрдмрд╛рдИ ( рд▓рд╛рдЗрди ) ; рдкрд╣рд▓реЗ рдЧреИрд░-рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдЪрд░рд┐рддреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рддрд▓рд╛рд╢
{
рд╕реЗрдЯ рдкреНрд░рддреАрдХ = $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди , рдкреЙрдЬрд╝ , рдкреЙрдЬрд╝ )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( рдкреНрд░рддреАрдХ '= "" ) рдФрд░& ( рдкреНрд░рддреАрдХ ' = рдЯреИрдм )
}
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рдПрдХреНрд╕рдЯреНрд░реЗрдХреНрдЯ ( рд▓рд╛рдЗрди , 1, рдкреЙрд╕ -1) _ рдЯреИрдм _ $ рдПрдХреНрд╕рдЯреНрд░реЗрдХреНрдЯ ( рд▓рд╛рдЗрди , рдкреЙрдЬрд╝ , *)
}
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдУрдЯ = рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдСрдЯ _ $ рд╕реВрдЪреА ( рд▓рд╛рдЗрди )
}
$ listtostring ( stringsOut , cr ) рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ
}
/// рдкрдВрдХреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЯреИрдм рд╣рдЯрд╛рдПрдВ
/// рдЯреЗрдХреНрд╕реНрдЯ - рдЬрд┐рд╕ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╣рдо рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
/// inCsp - рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рд╣рдо рдПрдХ csp рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ,
/// рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдХреНрд▓рд╛рд╕рдореИрдереЛрдб рдорд╛рдЗрдирд╕рдЯреИрдм ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ,% рдмреБрд▓рд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ inCsp = 0 )
{
рд╕реЗрдЯ cr = $ char (13,10) ; рд▓рд╛рдЗрди рдлрд╝реАрдб рдЕрдХреНрд╖рд░
рд╕реЗрдЯ рдЯреИрдм = $ char (9) ; рдЯреИрдм рд╡рд░реНрдг
рдЯреИрдм рд╕реЗрдЯ рдХрд░реЗрдВ = 4
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди = $ рд▓рд┐рд╕реНрдЯрдлреНрд░реЙрдорд╕реНрдЯреНрд░рд┐рдВрдЧ ( рдкрд╛рда , рдХрд░реЛрдбрд╝ )
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдУрдЯ = ""
рдореИрдВ = 1: 1: $ рд╕реВрдЪреА ( рддрд╛рд░ )
{
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рд╕реВрдЪреА ( рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди , i )
рдкреНрд░рдердо рд╕реЗрдЯ = $ рдЕрд░реНрдХ ( рдкрдВрдХреНрддрд┐ , 1,1)
j = 1: 1: tabSize рдХреЗ рд▓рд┐рдП
{
рд╕реЗрдЯ рдкреНрд░рддреАрдХ = $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди , 1,1)
рдЕрдЧрд░ рдкреНрд░рддреАрдХ = ""; рдкрд╣рд▓реЗ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдирд┐рдХрд╛рд▓реЗрдВ
{
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди , 2, *)
}
рдФрд░ рдкреНрд░рддреАрдХ = рдЯреИрдм ; рд╣рдо рдЯреИрдм рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдпрд╣рд╛рдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ
{
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди , 2, *)
рдЫреЛрдбрд╝рдирд╛
}
рдФрд░ ; рдХреЛрдИ рд╕реНрдерд╛рди рдФрд░ рдХреЛрдИ рдЯреИрдм рдирд╣реАрдВ, рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдирд┐рдХрд╛рд▓рдирд╛
{
рдЫреЛрдбрд╝рдирд╛
}
}
; рдФрд░ рдЕрдЪрд╛рдирдХ рд╕рднреА рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдФрд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд▓рд╛рдЗрди рдЧрд▓рдд рд╣реЛ рдЧрдИ
; рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рдПрдХ csp рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ
if ( inCsp = 0) && (( firstSymbol = "" ) || (( firstSymbol = tab )) && ( $ extract ( рдкрдВрдХреНрддрд┐ , 1,1) '= "" ) рдФрд░& ( $ extract ( рдкрдВрдХреНрддрд┐ , 1,1)') = рдЯреИрдм )
{
рд╕реЗрдЯ рд▓рд╛рдЗрди = "" _ рд▓рд╛рдЗрди
}
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдУрдЯ = рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдСрдЯ _ $ рд╕реВрдЪреА ( рд▓рд╛рдЗрди )
}
$ listtostring ( stringsOut , cr ) рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ
}
}

рдЕрдм, рдпрджрд┐ рдЖрдк рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рд╡рд░реНрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП), рдореЗрдиреВ рдЖрдЗрдЯрдо "рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдЬреЛрдбрд╝реЗрдВ" рдФрд░ "рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдирд┐рдХрд╛рд▓реЗрдВ" рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ / рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛

рд╣рдо Util.StudioExtension рд╡рд░реНрдЧ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдПрд╢рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдзрд┐
рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ ( %% рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ,% рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдо , рдЖрдВрддрд░рд┐рдХ рдирд╛рдо % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ , рдЪрдпрдирд┐рдд рд╢реАрд░реНрд╖ рдХреНрд░рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ,
% рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ByRef рдХреНрд░рд┐рдпрд╛ , % String рдХреЗ рд░реВрдк рдореЗрдВ ByRef рд▓рдХреНрд╖реНрдп , % String рджреНрд╡рд╛рд░рд╛ ByRef Msg , % Boolean рдХреЗ рд░реВрдк рдореЗрдВ ByRef рдкреБрдирдГ рд▓реЛрдб ) % рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ
{
рд╕реЗрдЯ ext = $ zconvert ( $ рдЯреБрдХрдбрд╝рд╛ ( InternalName , " , " , $ рд▓рдВрдмрд╛рдИ ( рдЖрдВрддрд░рд┐рдХ рдирд╛рдо , "" )), "U" )ред
рд╕реЗрдЯ рдбреЙрдХрдирд╛рдореЗ = $ рдЕрд░реНрдХ ( рдЗрдВрдЯрд░рдирд▓рдиреЗрдо , 1, * - 4)
рдпрджрд┐ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдкреНрд▓рд╕рдЯреИрдм"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4 ; рдкрд╛рда рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рд╕реЗрдЯ рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatTab )ред рдкреНрд▓рд╕рдЯреИрдм ( рдЪрдпрдирд┐рддрдЯреЗрдХреНрд╕реНрдЯ , рдПрдХреНрд╕рдЯ = "рд╕реАрдПрд╕рдкреА" )
}
рдЕрдЧрд░ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдорд╛рдЗрдирд╕рдЯреИрдм"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4 ; рдкрд╛рда рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рд╕реЗрдЯ рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatTab )ред рдорд╛рдЗрдирд╕рдЯреИрдм ( рдЪрдпрдирд┐рддрдЯреЗрдХреНрд╕реНрдЯ , рдПрдХреНрд╕рдЯ = "рд╕реАрдПрд╕рдкреА" )
}
рдЕрдЧрд░ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4
s рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatComment )ред AddComment ( рдЪрдпрдирд┐рддрдЯреИрдХреНрд╕ )
}
рдЕрдЧрд░ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдЕрдирдмреНрд▓реЙрдХрдмреНрд▓реЙрдХ"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4
s рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatComment )ред RemoveComment ( рдЪрдпрдирд┐рддрдЯреИрдХреНрд╕ )
}
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}

рд╣рдо рддрд╛рд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Util.FormatComment рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
Util.FormatComment рд╡рд░реНрдЧ
/// рдХреНрд▓рд╛рд╕ рдХрдореЗрдВрдЯрд┐рдВрдЧ / рдЕрдирдХрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХреЛрдб рдХреЗ рд▓рд┐рдП
рдХрдХреНрд╖рд╛ Util.FormatComment
{
/// рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ
/// рдПрдХ рд╕реНрдерд╛рди рдпрд╛ рдЯреИрдм рдХреЗ рд╕рд╛рдеред
/// рдкрд╛рда рдЪрд┐рд╣реНрдирд┐рдд рдХреЗ рд▓рд┐рдП
ClassMethod AddComment ( рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ % рдХреЗ рд░реВрдк рдореЗрдВ ) % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ
{
рд╕реЗрдЯ cr = $ char (13,10) ; рд▓рд╛рдЗрди рдлрд╝реАрдб рдЕрдХреНрд╖рд░
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди = $ рд▓рд┐рд╕реНрдЯрдлреНрд░реЙрдорд╕реНрдЯреНрд░рд┐рдВрдЧ ( рдкрд╛рда , рдХрд░реЛрдбрд╝ )
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдУрдЯ = ""
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдХрд╛рдЙрдВрдЯ = $ рд╕реВрдЪреА ( рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ )
рдореИрдВ = 1: 1: $ рд╕реВрдЪреА ( рддрд╛рд░ )
{
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рд╕реВрдЪреА ( рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди , i )
s :( i < stringsCount ) || ( рдкрдВрдХреНрддрд┐ '= "" ) рд░реЗрдЦрд╛ = "//" _ рдкрдВрдХреНрддрд┐ ? рдкрд╛рда рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐ рдлрд╝реАрдб рдЕрдХреНрд╕рд░ рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ;
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдУрдЯ = рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдСрдЯ _ $ рд╕реВрдЪреА ( рд▓рд╛рдЗрди )
}
рдбрдмреНрд▓реНрдпреВ ред ;; , $ рд▓рд┐рд╕реНрдЯрдЯреНрд░реЛрд╕реНрдЯрд┐рдВрдЧ ( рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдСрдЯ , рдХрд░реЛрдбрд╝ )
$ listtostring ( stringsOut , cr ) рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ
}
/// рдкрдВрдХреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣рдЯрд╛рдПрдВ
ClassMethod RemoveComment ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ )
{
рд╕реЗрдЯ cr = $ char (13,10) ; рд▓рд╛рдЗрди рдлрд╝реАрдб рдЪрд░рд┐рддреНрд░
рд╕реЗрдЯ рдЯреИрдм = $ char (9) ; рдЯреИрдм рд╡рд░реНрдг
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди = $ рд▓рд┐рд╕реНрдЯрдлреНрд░реЙрдорд╕реНрдЯреНрд░рд┐рдВрдЧ ( рдкрд╛рда , рдХрд░реЛрдбрд╝ )
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдУрдЯ = ""
рдореИрдВ = 1: 1: $ рд╕реВрдЪреА ( рддрд╛рд░ )
{
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рд╕реВрдЪреА ( рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди , i )
; рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдкрд░ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рдЕрдЧреНрд░рдгреА рд╕реНрдерд╛рди рдФрд░ рдЯреИрдм рдирд┐рдХрд╛рд▓реЗрдВ
рд╕реЗрдЯ рд▓рд╛рдЗрди 0 = $ рдЕрдиреБрд╡рд╛рдж ( рд▓рд╛рдЗрди , "" _ рдЯреИрдм , "" )
рдЕрдЧрд░ $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди 0 , 1,1) = ";"
{
рд╕реЗрдЯ рдкреЛрдЬрд╝ = $ рдвреВрдВрдвреЗрдВ ( рдкрдВрдХреНрддрд┐ , ";" )
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди , 1, рдкреЙрд╕ -2) _ $ рдПрдХреНрд╕рдЯреНрд░реЗрдХреНрдЯ ( рд▓рд╛рдЗрди , рдкреЙрдЬрд╝ , *)
}
рдФрд░ $ $ рдирд┐рдХрд╛рд▓рдиреЗ ( рд▓рд╛рдЗрди 0 , 1,3) = "///"
{
рд╕реЗрдЯ рдкреЛрдЬрд╝ = $ рдЦреЛрдЬреЗрдВ ( рдкрдВрдХреНрддрд┐ , "///" )
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди , 1, рдкреЙрд╕ -4) _ $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди , рдкреЙрдЬрд╝ , *)
}
$ $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди 0 , 1,2) = "//"
{
рд╕реЗрдЯ рдкреЛрдЬрд╝ = $ рдЦреЛрдЬреЗрдВ ( рдкрдВрдХреНрддрд┐ , "//" )
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рдЕрд░реНрдХ ( рд▓рд╛рдЗрди , 1, рдкреЙрдЬрд╝ -3) _ $ рдПрдХреНрд╕рдЯреНрд░реЗрдХреНрдЯ ( рд▓рд╛рдЗрди , рдкреЙрдЬрд╝ , *)
}
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдУрдЯ = рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдСрдЯ _ $ рд╕реВрдЪреА ( рд▓рд╛рдЗрди )
}
$ listtostring ( stringsOut , cr ) рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ
}
/// рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд▓рд╛рдЗрди рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИред
/// рдХреЗрд╡рд▓ рдПрдХрд▓-рдкрдВрдХреНрддрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ
ClassMethod CheckForComment ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ % рдХреЗ рд░реВрдк рдореЗрдВ ) % рдмреВрд▓рд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ
{
рд╕реЗрдЯ cr = $ char (13,10) ; рд▓рд╛рдЗрди рдлрд╝реАрдб рдЪрд░рд┐рддреНрд░
рд╕реЗрдЯ рдЯреИрдм = $ char (9) ; рдЯреИрдм рд╡рд░реНрдг
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди = $ рд▓рд┐рд╕реНрдЯрдлреНрд░реЙрдорд╕реНрдЯреНрд░рд┐рдВрдЧ ( рдкрд╛рда , рдХрд░реЛрдбрд╝ )
рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдУрдЯ = ""
рдореИрдВ = 1: 1: $ рд╕реВрдЪреА ( рддрд╛рд░ )
{
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рд╕реВрдЪреА ( рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЗрди , i )
рд╕реЗрдЯ рд▓рд╛рдЗрди = $ рдЕрдиреБрд╡рд╛рдж ( рд▓рд╛рдЗрди , "" _ рдЯреИрдм , "" )
рд╡рд╛рдкрд╕реА : $ рдИ ( рд▓рд╛рдЗрди , 1,2) = "//" 1
рд╡рд╛рдкрд╕реА : $ e ( рдкрдВрдХреНрддрд┐ , 1,1) = ";" 1
}
0 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
}

рдкрд╛рда рд╕реНрд╡рд░реВрдкрдг

рдХреЛрдб рдХреЛ рдкреБрди: рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рднрд┐рдиреНрди рдЯреАрдореЛрдВ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рдереА рдЬреЛ рдПрдХ рд╣реА рд╢реИрд▓реА рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рдереЗред рдХреЛрдб рдЯрд╛рдЗрдк рдХрд░реЗрдВ
рдХреЗ рд▓рд┐рдП рдореИрдВ = TheNum : 1: TheNum +2 {
рд╕реЗрдЯ рд╕реНрдЯрд╛рд░реНрдЯрдЯрд╛рдЗрдо = 12 * 3600 + (300 * $ рдЖрд░ (6))
рдЬрдмрдХрд┐ StartTime <(3600 * 22) {
рд╕реЗрдЯ рд╢реЛ = ## рд╡рд░реНрдЧ ( Cinema.Show )ред % рдирдпрд╛ ()
рд╢реЛ рдХрд╛ рд╕реЗрдЯ ред рдлрд┐рд▓реНрдо = рдж рдлрд╝рд┐рд▓реНрдо
рд╢реЛ рдХрд╛ рд╕реЗрдЯ ред рд░рдВрдЧрдордВрдЪ = ( i )
рд╢реЛ рдХрд╛ рд╕реЗрдЯ ред StartTime = StartTime
рджрд┐рдЦрд╛рдУ % рдмрдЪрд╛рдУ ()
StartTime = StartTime + ( TheFilm ред рд▓рдВрдмрд╛рдИ * 60) + 1200 \ 300 * 300 рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
}
}
рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
рдХреЗ рд▓рд┐рдП рдореИрдВ = TheNum : 1: TheNum +2
{
рд╕реЗрдЯ рд╕реНрдЯрд╛рд░реНрдЯрдЯрд╛рдЗрдо = 12 * 3600 + (300 * $ рдЖрд░ (6))
рдЬрдмрдХрд┐ StartTime <(3600 * 22)
{
рд╕реЗрдЯ рд╢реЛ = ## рд╡рд░реНрдЧ ( Cinema.Show )ред % рдирдпрд╛ ()
рд╢реЛ рдХрд╛ рд╕реЗрдЯ ред рдлрд┐рд▓реНрдо = рдж рдлрд╝рд┐рд▓реНрдо
рд╢реЛ рдХрд╛ рд╕реЗрдЯ ред рд░рдВрдЧрдордВрдЪ = ( i )
рд╢реЛ рдХрд╛ рд╕реЗрдЯ ред StartTime = StartTime
рджрд┐рдЦрд╛рдУ % рдмрдЪрд╛рдУ ()
StartTime = StartTime + ( TheFilm ред рд▓рдВрдмрд╛рдИ * 60) + 1200 \ 300 * 300 рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
}
}
рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдк рдХреА рддрд░рд╣ред "рдмреНрд░реИрдХреЗрдЯ рдкрд░ рдмреНрд░реИрдХреЗрдЯ" рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕ рдпреВрдЯрд┐рд▓ рд╣реИред рдХреЛрдбрдлрд╝реЙрд░реНрдореИрдЯ, "рд▓рд╛рдЗрди рдХреЗ рдЕрдВрдд рдореЗрдВ рдмреНрд░реИрдХреЗрдЯ" рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕ рдпреВрдЯрд┐рд▓ рд╣реИред рдХреЛрдбрдХреЛрдбрд░реНрдореИрдЯ 3

рд╣рдо рдирдП рдореЗрдиреВ рдЖрдЗрдЯрдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЬреЛрдбрд╝рдХрд░ UserAction рд╡рд┐рдзрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдзрд┐
рд╡рд┐рдзрд┐ рдпреВрдЬрд░рдПрд╢рди ( рдкреНрд░рдХрд╛рд░ % рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ , рдирд╛рдо % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ , рдЖрдВрддрд░рд┐рдХ рдирд╛рдо % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ , рдЪрдпрдирд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ% рд╕реНрдЯреНрд░рд┐рдВрдЧ , ByRef рдХрд╛рд░реНрд░рд╡рд╛рдИ % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ,
% рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ByRef рд▓рдХреНрд╖реНрдп , % String ByRef Msg , % рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ ByRef рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВ )
{
рд╕реЗрдЯ ext = $ zconvert ( $ рдЯреБрдХрдбрд╝рд╛ ( InternalName , " , " , $ рд▓рдВрдмрд╛рдИ ( рдЖрдВрддрд░рд┐рдХ рдирд╛рдо , "" )), "U" )ред
рд╕реЗрдЯ рдбреЙрдХрдирд╛рдореЗ = $ рдЕрд░реНрдХ ( рдЗрдВрдЯрд░рдирд▓рдиреЗрдо , 1, * - 4)
рдпрджрд┐ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдкреНрд▓рд╕рдЯреИрдм"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4 ; рдкрд╛рда рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рд╕реЗрдЯ рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatTab )ред рдкреНрд▓рд╕рдЯреИрдм ( рдЪрдпрдирд┐рддрдЯреЗрдХреНрд╕реНрдЯ , рдПрдХреНрд╕рдЯ = "рд╕реАрдПрд╕рдкреА" )
}
рдЕрдЧрд░ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдорд╛рдЗрдирд╕рдЯреИрдм"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4 ; рдкрд╛рда рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рд╕реЗрдЯ рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatTab )ред рдорд╛рдЗрдирд╕рдЯреИрдм ( рдЪрдпрдирд┐рддрдЯреЗрдХреНрд╕реНрдЯ , рдПрдХреНрд╕рдЯ = "рд╕реАрдПрд╕рдкреА" )
}
рдЕрдЧрд░ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4
рд╕реЗрдЯ рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatComment )ред AddComment ( рдЪрдпрдирд┐рддрдЯреИрдХреНрд╕ )
}
рдЕрдЧрд░ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рдЕрдирдмреНрд▓реЙрдХрдмреНрд▓реЙрдХ"
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4
рд╕реЗрдЯ рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.FormatComment )ред RemoveComment ( рдЪрдпрдирд┐рддрдЯреИрдХреНрд╕ )
}
рдЕрдЧрд░ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рд╕реБрдзрд╛рд░
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = 4
рд╕реЗрдЯ рд▓рдХреНрд╖реНрдп = ## рд╡рд░реНрдЧ ( Util.CodeFormat )ред FormatString ( рдЪрдпрдирд┐рдд рдЯреЗрдХреНрд╕реНрдЯ )
}
рдЕрдЧрд░ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк, рд╕реБрдзрд╛рд░
{
рд╕реЗрдЯ рдХреНрд░рд┐рдпрд╛ = реж
do : ext = "MAC" ## рд╡рд░реНрдЧ ( Util.CodeFormat )ред FormatMAC ( docname )
do : ext = "CLS" ## рд╡рд░реНрдЧ ( Util.CodeFormat )ред FormatClass ( docname )
}
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}

"рдХреЛрд╖реНрдардХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрд╖реНрдардХ" рдХреА рд╢реИрд▓реА рдореЗрдВ рдХреНрд▓рд╛рд╕ рд╣реИрдВрдбрд▓рд░ рдХреЛрдб
рдХрдХреНрд╖рд╛ Util.CodeFormat
/// рдХреЛрдб рдлреЙрд░реНрдореЗрдЯрд░ рдХреНрд▓рд╛рд╕
рдХрдХреНрд╖рд╛ Util.CodeFormat% RegisteredObject рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
{
/// рдЗрдирдкреБрдЯ рдмрдлрд░ рдЧреНрд▓реЛрдмрд▓ рдирд╛рдо
рд╕рдВрдкрддреНрддрд┐ рдмрдлрд░ 1% рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ;

/// рд╡реИрд╢реНрд╡рд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд░ рдХрд╛ рдирд╛рдо
рд╕рдВрдкрддреНрддрд┐ рдмрдлрд░ 2 % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ;

/// рдЗрдирдкреБрдЯ рдмрдлрд░ рдХреА рдХрд░рдВрдЯ рд▓рд╛рдЗрди
рд╕рдВрдкрддреНрддрд┐ CurrentLine1 % рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдХреЗ рд░реВрдк рдореЗрдВ [ InitialExpression = 1 ];

/// рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд░ рдХреА рдХрд░рдВрдЯ рд▓рд╛рдЗрди
рд╕рдВрдкрддреНрддрд┐ CurrentLine2 % рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдХреЗ рд░реВрдк рдореЗрдВ [ InitialExpression = 1 ];

/// рдЗрдирдкреБрдЯ рдмрдлрд░ рд▓рд╛рдЗрди рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐
рд╕рдВрдкрддреНрддрд┐ CurrentPos1 % рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдХреЗ рд░реВрдк рдореЗрдВ [ InitialExpression = 1 ];

/// рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ рдХрд╛ рд╕реНрддрд░
рдкреНрд░реЙрдкрд░реНрдЯреА LevelFigureBrace % Integer [ InitialExpression = 0 ] рдХреЗ рд░реВрдк рдореЗрдВ;

/// рдХреЛрд╖реНрдардХ рд╕реНрддрд░
рдкреНрд░реЙрдкрд░реНрдЯреА LevelRoundBrace % рдкреВрд░реНрдгрд╛рдВрдХ [ рдкреНрд░рд╛рд░рдВрднрд┐рдХExpression = 0 ] рдХреЗ рд░реВрдк рдореЗрдВ;

/// рдХреНрдпрд╛ рд▓рд╛рдЗрди рдкрд░ рдХреЛрдИ рдХреЛрдб рд╣реИ? <br>
/// рд╕рдВрдпреЛрдЬрди:
/// LineHasCode = 0 && рд╕реНрдХрд┐рдкрд╕реНрдкреЗрд╕ = 1 -> рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд, рдПрдХ рд▓реЗрдмрд▓ рдпрд╛ рдХреЛрдб рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВ
/// LineHasCode = 0 && рд╕реНрдХрд┐рдкрд╕реНрдкреЗрд╕ = 0 -> рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
/// LineHasCode = 1 && SkipSpace = 0 -> рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдб рд╣реИ, рдЬреИрд╕рд╛ рд╣реИ рд╡реИрд╕рд╛ рд╣реА рд╕рдм рдХреБрдЫ рд▓рд┐рдЦреЗрдВ
/// LineHasCode = 1 && SkipSpace = 1 -> рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдб рд╣реИ, рд▓реЗрдХрд┐рди рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЫреЛрдбрд╝реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, {рдХреЗ рдмрд╛рдж
рдкреНрд░реЙрдкрд░реНрдЯреА рд▓рд╛рдЗрдирд╣рд╛рд╕рдХреЛрдб % рдмреВрд▓рд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ ;

/// рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЫреЛрдбрд╝реЗрдВ
рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реНрдХрд┐рдкрд╕реНрдкреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ% рдмреВрд▓рд┐рдпрди [ InitialExpression = 1 ];

/// рд▓рд╛рдЗрди рдлреАрдб рдХреЛ рдЫреЛрдбрд╝реЗрдВ
/// 1 - рдПрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ
/// -1 - рдЕрдиреБрд╡рд╛рдж рдХреЛ рдЕрднреА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЯреИрдЧ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рдЪреМрдХрд╕ рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕рдВрдкрддреНрддрд┐ SkipCR % рдмреВрд▓рд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ [ InitialExpression = 0 ];

/// рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬрдм рдХреЛрдб рджрд┐рдЦрд╛рдИ рджреЗ)
рд╕рдВрдкрддреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ % рдмреВрд▓рд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ ;

/// рдПрдХ рдПрдХрд▓ рдкрдВрдХреНрддрд┐ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ?
рдкреНрд░реЙрдкрд░реНрдЯреА InSingleLineComment % рдмреВрд▓рд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ [ InitialExpression = 0 ];

/// рдПрдХ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ?
рд╕рдВрдкрддреНрддрд┐ InMultiLineComment % рдмреВрд▓рд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ [ InitialExpression = 0 ];

/// рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд╛рдЗрди рдлрд╝реАрдб
рд╡рд┐рдзрд┐ ProcessCR ( % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рда )
{
if .. SkipCR = 1
{
set .. SkipCR = -1
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
рдХрд░рддреЗ рд╣реИрдВ : .. рдЬрд░реВрд░рдд рд╣реИ .. рд▓рд┐рдЦреЗрдВ (.. MakeIndent ())
рд╕реЗрдЯ .. рд▓рд╛рдЗрдирд╣рд╛рд╕рдХреЛрдб = 0
set .. рд╕реНрдХрд┐рдкрд╕реНрдкреЗрд╕ = 1
set .. рдЬрд░реВрд░рддрдордВрдж = реж
set .. InSleleLineComment = 0
do .. WriteCR ()
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рд╣реИрдВрдбрд▓ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк
рд╡рд┐рдзрд┐ рдкреНрд░реЛрд╕реЗрд╕рд╕реНрдкреЗрд╕ ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ )
{
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. InMultiLineComment ) .. ProcessCononCode ( рдкрд╛рда )
; рд▓рд╛рдЗрди рдлрд╝реАрдб рдХреЛ рджрдмрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рд╕рдлреЗрдж рдЬрдЧрд╣ рдХреЗ рдмрд╛рдж рд╕рд╛рдорд╛рдиреНрдп рдЪрд░рд┐рддреНрд░ рд╣реИред
set : .. SkipCR = -1 .. SkipCR = 0, .. NeedIndent = 0, .. SkipSpace = 1
рдХрд░реЗрдВ : '.. рд╕реНрдХрд┐рдкрд╕реНрдкреЗрд╕ .. рд▓рд┐рдЦреЗрдВ ( рдкрд╛рда )
рд╕реЗрдЯ : '.. LineHasCode .. NeedIndent = 1
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЦреЛрд▓рдиреЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝
рд╡рд┐рдзрд┐ ProcessFigureBraceOpen ( % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рда )
{
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. LevelRoundBrace ) .. ProcessCommonCode ( рдкрд╛рда )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. InMultiLineComment ) .. ProcessCononCode ( рдкрд╛рда )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. InSleleLineComment ) .. ProcessCononCode ( рдкрд╛рда )
do : .. рд▓рд╛рдЗрдирд╣рд╕рдХреЛрдб .. рд░рд╛рдЗрдЯрд╕реАрдЖрд░ ()
do .. рд▓рд┐рдЦреЛ (.. MakeIndent () _ text )
do .. WriteCR ()

set .. LevelFigureBrace = .. LevelFigureBrace +1
set .. LineHasCode = 0, .. SkipSpace = 1, .. рдЬрд░реВрд░рдд = 1, .. SkipCR = 1
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдВрдж рдмреНрд░реЗрд╕рд┐рдЬрд╝
рд╡рд┐рдзрд┐ ProcessFigureBraceClose ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ )
{
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. LevelRoundBrace ) .. ProcessCommonCode ( рдкрд╛рда )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. InMultiLineComment ) .. ProcessCononCode ( рдкрд╛рда )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. InSleleLineComment ) .. ProcessCononCode ( рдкрд╛рда )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. LevelFigureBrace = 0) .. ProcessCommonCode ( рдкрд╛рда )
do : .. рд▓рд╛рдЗрдирд╣рд╕рдХреЛрдб .. рд░рд╛рдЗрдЯрд╕реАрдЖрд░ ()
set .. LevelFigureBrace = .. LevelFigureBrace -1
do .. рд▓рд┐рдЦреЛ (.. MakeIndent () _ text )
do .. WriteCR ()
set .. SkipCR = 1, .. NeedIndent = 1, .. SkipSpace = 1, .. LineHasCode = 0
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛрд╖реНрдардХ рдЦреЛрд▓рдиреЗ
рд╡рд┐рдзрд┐ ProcessRoundBraceOpen ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ )
{
рд╕реЗрдЯ :( .. InMultiLineComment = 0) рдФрд░& (.. InSleleLineComment = 0) .. LevelRoundBrace = .. LevelRoundBrace +1
рдХрд░реЛ .. рд▓рд┐рдЦреЛ ( рдкрд╛рда )
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкрди рдХреЛрд╖реНрдардХ
рд╡рд┐рдзрд┐ ProcessRoundBraceClose ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ )
{
set :( .. InMultiLineComment = 0) рдФрд░& (.. InSleleLineComment = 0) рдФрд░& (.. LevelRoundBrace > 0) .. LevelRoundBrace = .. LevelRoundBrace -1
рдХрд░реЛ .. рд▓рд┐рдЦреЛ ( рдкрд╛рда )
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдПрдХ рдмрд╣реБ-рд▓рд╛рдЗрди рдЯрд┐рдкреНрдкрдгреА рдЦреЛрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛
рд╡рд┐рдзрд┐ ProcessMultilineCommentOpen ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ )
{
set .. InMultiLineComment = 1
do .. ProcessCommonCode ( рдкрд╛рда )
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдмрдВрдж рдХрд░рдирд╛
рд╡рд┐рдзрд┐ ProcessMultilineCommentClose ( % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рда )
{
рд╕реЗрдЯ .. InMultiLineComment = 0
do .. ProcessCommonCode ( рдкрд╛рда )
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдПрдХрд▓ рдкрдВрдХреНрддрд┐ рдЯрд┐рдкреНрдкрдгреА
рд╡рд┐рдзрд┐ ProcessOnelineCommentOpen ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ )
{
do .. ProcessCommonCode ( рдкрд╛рда )
set .. InSleleLineComment = 1
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдмрд┐рдирд╛ рдХрд┐рд╕реА рдлреАрдЪрд░реНрд╕ рдХреЗ рдХреЛрдб рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВ
рд╡рд┐рдзрд┐ ProcessCommonCode ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ )
{
// рд▓рд╛рдЗрди рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛, рдФрд░ рдирдИ рд▓рд╛рдЗрди рдкрд░ рддреБрд░рдВрдд рдкрд╛рда - рдпрд╣ рд▓реЗрдмрд▓ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред
// рдЖрдкрдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЕрдиреБрд╡рд╛рдж рдХреЛ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рднреА рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
if .. SkipCR = -1
{
do .. WriteCR ()
set .. рдЬрд░реВрд░рддрдордВрдж = реж
}
set .. SkipCR = 0
set : .. рдиреАрдд рдкрд╛рда = .. рдореЗрдХрдЗрдВрдбреЗрдВрдЯ () _ рдкрд╛рда
рдХрд░реЛ .. рд▓рд┐рдЦреЛ ( рдкрд╛рда )
рд╕реЗрдЯ .. рд╕реНрдХрд┐рдкрд╕реНрдкреЗрд╕ = 0
set .. рд▓рд╛рдЗрдирд╣рд╛рд╕рдХреЛрдб = 1
set .. рдЬрд░реВрд░рддрдордВрдж = реж
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдЦрд╕рдЦрд╕ тАЛтАЛрдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд░рд┐рдлреЙрд░реНрдо рдХрд░реЗрдВ
/// d ## рд╡рд░реНрдЧ (Util.CodeFormat) .FormatMAC ("рд╢реАрд░реНрд╖рдХрд╣реАрди 1")
ClassMethod FormatMAC ( % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдирд╛рдо ) % рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ
{
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : рдирд╛рдо = ""
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : ' $ рдбреЗрдЯрд╛ (^ rMAC ( рдирд╛рдо ))
рд╕реЗрдЯ рдкрд╛рд░реНрд╕рд░ = .. % рдирдпрд╛ ()
рдкрд╛рд░реНрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдмрдлрд░ 1 = "^ || рдмрдлрд░ 1"
рдкрд╛рд░реНрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдмрдлрд░ 2 = "^ || рдмрдлрд░ 2 "
рдорд╛рд░ рдбрд╛рд▓реЛ @ рдкрд╛рд░реНрд╕рд░ ред Buffer1
рдорд╛рд░ рдбрд╛рд▓реЛ @ рдкрд╛рд░реНрд╕рд░ ред Buffer2
рд╕реЗрдЯ рдХреБрдВрдЬреА = 0, рдкрдВрдХреНрддрд┐ = 0
рдХреЗ рд▓рд┐рдП // рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЧреНрд▓реЛрдмрд▓ рд╕реЗ рдмрдлрд░ рдбреЗрдЯрд╛ рдХреЛ рд▓рд┐рдЦреЗрдВ
{
рд╕реЗрдЯ рдХреБрдВрдЬреА = $ рдЖрджреЗрд╢ (^ rMAC ( рдирд╛рдо , 0, рдХреБрдВрдЬреА )) рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : + рдХреБрдВрдЬреА = 0
@ рдкрд╛рд░реНрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдмрдлрд╝рд░ 1 @ ( $ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ ( рд▓рд╛рдЗрди )) = ^ rMAC ( рдирд╛рдо , 0, рдХреБрдВрдЬреА )
}
рд╕реЗрдЯ рдмреНрд░реЗрд╕рд┐рдЬрд╝ = рдкрд╛рд░реНрд╕рд░ ред рдлрд╝реЙрд░реНрдо рдмрдлрд╝рд░ ()
рдирд╛рдо , рдирд╛рдо , ":" , рдмреНрд░реЗрд╕рд┐рдЬрд╝
рд╕реЗрдЯ рдХреБрдВрдЬреА = 0
рдХреЗ рд▓рд┐рдП ; рдкреБрд░рд╛рдиреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд╛рдЗрди рд╣рдЯрд╛рдПрдВ
{
рд╕реЗрдЯ рдХреБрдВрдЬреА = $ рдЖрджреЗрд╢ (^ rMAC ( рдирд╛рдо , 0, рдХреБрдВрдЬреА )) рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : + рдХреБрдВрдЬреА = 0
рдорд╛рд░ ^ rMAC ( рдирд╛рдо , 0, рдХреБрдВрдЬреА )
}
рдорд░реНрдЬ ^ rMAC ( рдирд╛рдо , 0) = @ рдкрд╛рд░реНрд╕рд░ ред Buffer2
рд╕реЗрдЯ ^ rMAC ( рдирд╛рдо , 0,0) = $ рдСрд░реНрдбрд░ (@ parser ред рдмрдлрд░ 2 @ ( "" ), - 1)
рд╕реЗрдЯ ^ rMAC ( рдирд╛рдо , 0) = $ horolog
}
/// рд╕рднреА рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВ <br>
/// d ## рд╡рд░реНрдЧ (Util.CodeFormat) .FormatClass ("Import.NIAdvs")
ClassMethod FormatClass ( рд╡рд░реНрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ )
{
рд╕реЗрдЯ рд╡рд┐рдзрд┐ = ""
рдХреЗ рд▓рд┐рдП
{
рд╕реЗрдЯ рд╡рд┐рдзрд┐ = $ рдСрд░реНрдбрд░ (^ рдСрдбрдбреЗрдИрдПрдл ( рдХрдХреНрд╖рд╛ , "рдПрдо" , рд╡рд┐рдзрд┐ )) рдкрдж рдЫреЛрдбрд╝рдирд╛ : рд╡рд┐рдзрд┐ = ""
do .. FormatMethod ( рд╡рд░реНрдЧ , рд╡рд┐рдзрд┐ )
}
}
/// рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВред рдмрд╣реБрдд рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ - рдЧреНрд▓реЛрдмрд▓реНрд╕ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдорд┐рд╢реНрд░рдг <br>
/// d ## рд╡рд░реНрдЧ (Util.CodeFormat) .FormatMethod ("Import.NIAdvs", "% OnValidateObject5")
ClassMethod FormatMethod ( рд╡рд░реНрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ,% рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдзрд┐ )
{
рд╕реЗрдЯ mdef = ## рд╡рд░реНрдЧ ( % Dictionary.MethodDefinition )ред % OpenId ( рд╡рд░реНрдЧ _ "||" _ рд╡рд┐рдзрд┐ )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : mdef = ""
рд╕реЗрдЯ gl1 = "^ oddDEF (" "" _ рд╡рд░реНрдЧ _ "" "," "m" "," "" _ рд╡рд┐рдзрд┐ _ "" ", 30)"; рд╡рд┐рдзрд┐ рдХреЛрдб рдпрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ
рд╕реЗрдЯ рдкрд╛рд░реНрд╕рд░ = .. % рдирдпрд╛ ()
рдкрд╛рд░реНрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдмрдлрд░ 1 = "^ || рдмрдлрд░ 1"
рдкрд╛рд░реНрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдмрдлрд░ 2 = "^ || рдмрдлрд░ 2 "
рдорд╛рд░ рдбрд╛рд▓реЛ @ рдкрд╛рд░реНрд╕рд░ ред Buffer1
рдорд╛рд░ рдбрд╛рд▓реЛ @ рдкрд╛рд░реНрд╕рд░ ред Buffer2

рд╕реЗрдЯ рдХреБрдВрдЬреА = 0
рдХреЗ рд▓рд┐рдП // рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдзрд┐ рд╕реЗ рдмрдлрд░ рдбреЗрдЯрд╛ рд▓рд┐рдЦреЗрдВ
{
рд╕реЗрдЯ рдХреБрдВрдЬреА = $ рдСрд░реНрдбрд░ (@ gl1 @ ( рдХреБрдВрдЬреА )) рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : + рдХреБрдВрдЬреА = 0
@ рдкрд╛рд░реНрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдмрдлрд░ 1 @ ( рдХреБрдВрдЬреА ) = @ gl1 @ ( рдХреБрдВрдЬреА )
}
рд╕реЗрдЯ рдмреНрд░реЗрд╕рд┐рдЬрд╝ = рдкрд╛рд░реНрд╕рд░ ред рдлрд╝реЙрд░реНрдо рдмрдлрд╝рд░ ()
рд▓рд┐рдЦрдирд╛ ред, рдХрдХреНрд╖рд╛ , "ред" , рд╡рд┐рдзрд┐ , ":" , рдмреНрд░реЗрд╕рд┐рдЬрд╝

mdef рдХрд░реЗрдВ ред рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрдиред рд╕реНрдкрд╖реНрдЯ ()
рд╕реЗрдЯ рдХреБрдВрдЬреА = 0
рдХреЗ рд▓рд┐рдП
{
рд╕реЗрдЯ рдХреБрдВрдЬреА = $ рдСрд░реНрдбрд░ (@ parser ред рдмрдлрд░ 2 @ ( рдХреБрдВрдЬреА )) рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : + рдХреБрдВрдЬреА = 0
mdef рдХрд░реЗрдВ ред рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрдиред WriteLine (@ parser ред рдмрдлрд░ 2 @ ( рдХреБрдВрдЬреА ))
}
mdef рдХрд░реЗрдВ ред % рдмрдЪрд╛рдУ ()
}
/// рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░реЗрдВ, рдЬреЛ рдлрд┐рд░ рд▓реМрдЯрддреА рд╣реИ
/// w ## рд╡рд░реНрдЧ (Util.CodeFormat) .FormatString ("рдпрджрд┐ x = 1 {s x = 1}")
ClassMethod FormatString ( % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ) % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ
{

рд╕реЗрдЯ рдкрд╛рд░реНрд╕рд░ = .. % рдирдпрд╛ ()
рдкрд╛рд░реНрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдмрдлрд░ 1 = "^ || рдмрдлрд░ 1"
рдкрд╛рд░реНрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдмрдлрд░ 2 = "^ || рдмрдлрд░ 2 "
рдорд╛рд░ рдбрд╛рд▓реЛ @ рдкрд╛рд░реНрд╕рд░ ред Buffer1
рдорд╛рд░ рдбрд╛рд▓реЛ @ рдкрд╛рд░реНрд╕рд░ ред Buffer2

рд╕реЗрдЯ рд░реЗрдВрдбреЗрдВрдб = $ рдЪрд╛рд░ (13,10)
рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░реЗрдВ = $ listfromstring ( str , rowend )
рд╕реЗрдЯ рдХреБрдВрдЬреА = 0
i = 1: 1: $ listlength ( рдкрдВрдХреНрддрд┐рдпрд╛рдБ ) // рдбреЗрдЯрд╛ рдХреЛ рдмрдлрд░ рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдзрд┐ рд╕реЗ рд▓рд┐рдЦреЗрдВ
{
@ рдкрд╛рд░реНрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ ред рдмрдлрд╝рд░ 1 @ ( i ) = $ рд╢реНрд░реЛрддрд╛ ( рдкрдВрдХреНрддрд┐рдпрд╛рдБ , i )
}
рдкрд╛рд░реНрд╕рд░ рдХрд░реЗрдВ ред рдлрд╝реЙрд░реНрдо рдмрдлрд╝рд░ ()

рд╕реЗрдЯ рд╕реНрдЯреНрд░реИрдЯ = ""
рд╕реЗрдЯ рдХреБрдВрдЬреА = ""
рдХреЗ рд▓рд┐рдП
{
рд╕реЗрдЯ рдХреБрдВрдЬреА = $ рдСрд░реНрдбрд░ (@ рдкрд╛рд░реНрд╕рд░ ред рдмрдлрд░ 2 @ ( рдХреБрдВрдЬреА )) рдкрдж рдЫреЛрдбрд╝рдирд╛ : рдХреБрдВрдЬреА = ""
рд╕реЗрдЯ str = str _ $ рд╕реВрдЪреА (@ рдкрд╛рд░реНрд╕рд░ ред рдмрдлрд░ 2 @ ( рдХреБрдВрдЬреА ))
}
рд╕реЗрдЯ : $ рд╕реВрдЪреА ( рдкрдВрдХреНрддрд┐рдпрд╛рдБ , $ рд╕реВрдЪреА ( рдкрдВрдХреНрддрд┐рдпрд╛рдБ )) = "" str = str _ $ рд╕реВрдЪреА ( " )
$ рд╕реВрдЪреАрдкрддреНрд░ рдЫреЛрдбрд╝реЗрдВ ( str , rowend )
}
/// рдЗрдирдкреБрдЯ рдмрдлрд░ рд╕реЗ рдкрд╛рда рдкрдврд╝реЗрдВ <br>
/// рдкрд╛рда рдХреА рд╕реВрдЪреА рдФрд░ рдЙрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╛рдкрд╕реА рдХрд░рддрд╛ рд╣реИ <br>
/// рдкрд╛рда рдкреНрд░рдХрд╛рд░ <br>
/// p - рд╕рдлреЗрдж рд╕реНрдерд╛рди <br>
/// рдПрд╕ - рд╕реНрдЯреНрд░рд┐рдВрдЧ <br>
/// рдИ - рд▓рд╛рдЗрди рдХрд╛ рдЕрдВрдд <br>
/// рдИ - рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд╛рда рдХрд╛ рдЕрдВрдд <br> <br>
/// {- {<br>
///} -} <br>
/// (- (<br>
///) -) <br>
///; - рдПрдХрд▓ рд▓рд╛рдЗрди рдЯрд┐рдкреНрдкрдгреА рдХреА рд╢реБрд░реБрдЖрдд <br>
/// / * - рдПрдХ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╢реБрд░реБрдЖрдд <br>
/// * / - рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЕрдВрдд
рд╡рд┐рдзрд┐ ReadTerm () % рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ
{
рд╕реЗрдЯ : $ рдбреЗрдЯрд╛ (@ .. рдмрдлрд╝рд░ рез @ (.. рдХрд░рдВрдЯрд▓рд╛рдЗрди рез )) = реж .. рдХрд░рдВрдЯрд▓рд╛рдЗрди рез = .. рдХрд░рдВрдЯрд▓рд╛рдЗрди рез +, .. рдХрд░рдВрдЯрдкреЛрд╕ рез = рез
рдкрдж рдЫреЛрдбрд╝рдирд╛ : $ рдбреЗрдЯрд╛ (@ .. рдмрдлрд░ 1 @ (.. рдХрд░рдВрдЯрд▓рд╛рдЗрди 1 )) = 0 $ рд╕реВрдЪреА ( "" , "рдИ" )
рд╕реЗрдЯ str = @ .. рдмрдлрд╝рд░ 1 @ (.. рдХрд░рдВрдЯрд▓рд╛рдЗрди 1 )
рд╕реЗрдЯ рдХрд░реЗрдВ char1 = $ рдЕрд░реНрдХ ( str , .. CurrentPos1 , .. CurrentPos1 )
char2 = $ рдПрдХреНрд╕реНрдЯреНрд░реЗрдХреНрдЯ ( str , .. рдХрд░рдВрдЯрдкреЛрд╕ 1 +1, .. рдХрд░рдВрдЯрдкреЛрд╕ 1 +1)
рд╕реЗрдЯ : char1 = "" .. рдХрд░рдВрдЯрд▓рд╛рдЗрди 1 = .. рдХрд░рдВрдЯрд▓рд╛рдЗрди 1 +1, рдХрд░рдВрдЯрдкреЛрд╕ 1 = 1
рдкрдж рдЫреЛрдбрд╝рдирд╛ : char1 = "" $ рд╕реВрдЪреА рдмрдирд╛рдирд╛ ( "" , "e" )
set .. рдХрд░рдВрдЯрдкреЛрд╕ 1 = .. рдХрд░рдВрдЯрдкреЛрд╕ 1 +1
рдкрдж рдЫреЛрдбрд╝рдирд╛ : char1 = "" $ рд╕реВрдЪреА рдмрдирд╛рдирд╛ ( char1 , "p" )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : char1 = $ char (9) $ рд╕реВрдЪреА ( char1 , "p" )
рдкрдж рдЫреЛрдбрд╝рдирд╛ : char1 = "{" $ рд╕реВрдЪреА рдмрдирд╛рдирд╛ ( char1 , "{" )
рдкрдж рдЫреЛрдбрд╝рдирд╛ : char1 = "}" $ рд╕реВрдЪреА рдмрдирд╛рдирд╛ ( char1 , "}" )
рдкрдж рдЫреЛрдбрд╝рдирд╛ : char1 = "(" $ рд╕реВрдЪреА рдмрдирд╛рдирд╛ ( char1 , " ) (" )
рдкрдж рдЫреЛрдбрд╝рдирд╛ : char1 = ")" $ рд╕реВрдЪреА рдмрдирд╛рдирд╛ ( char1 , ")" )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : char1 = ";" $ рд╕реВрдЪреА ( char1 , ";" )
if ( char1 = "/" ) && ( char2 = "/" ) рд╕реЗрдЯ .. CurrentPos1 = .. CurrentPos1 +1 рдиреЗ $ listbuild ( char1 _ char2 ; ";";
if ( char1 = "/" ) рдФрд░& ( char2 = "*" ) рд╕реЗрдЯ .. CurrentPos1 = .. CurrentPos1 +1 рдиреЗ $ listbuild ( char1 _ char2 , "/ *" ) рдЫреЛрдбрд╝ рджрд┐рдпрд╛
if ( char1 = "*" ) && ( char2 = "/" ) рд╕реЗрдЯ .. CurrentPos1 = .. CurrentPos1 +1 рдиреЗ $ listbuild ( char1 _ char2 , "* /" ) рдЫреЛрдбрд╝ рджрд┐рдпрд╛
рдЕрдЧрд░ ( char1 = "" "" )
{
рд╕реЗрдЯ pos2 = $ рдвреВрдВрдвреЗрдВ ( str , "" "" , .. CurrentPos1 )
рд╕реЗрдЯ рдкрд╛рда = $ рдЕрд░реНрдХ ( str , .. CurrentPos1 -1 , pos2 -1)
рд╕реЗрдЯ .. рдХрд░рдВрдЯрдкреЛрд╕ рез = рдкреЙрд╕ реи
$ рд╕реВрдЪреА рдмрдирд╛рдирд╛ ( рдкрд╛рда , "s" )
}
$ рд╕реВрдЪреА рдирд┐рд░реНрдорд╛рдг ( char1 , "s" ) рдЫреЛрдбрд╝реЗрдВ
}
/// рдПрдХ рд╣реА ReadTerm, рд▓реЗрдХрд┐рди рддрд░реНрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдкрд░реЛрд╕рд╛ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╡рд┐рдзрд┐ ReadTerm1 ( % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ByRef рдкреНрд░рдХрд╛рд░ ) % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ
{
рд╕реЗрдЯ Res = .. ReadTerm ()
рд╕реЗрдЯ рдкреНрд░рдХрд╛рд░ = $ рд╕реВрдЪреА ( рд░реЗрд╕ , 2)
$ рд╢реНрд░рдЧ рдЫреЛрдбрд╝реЗрдВ ( рд░реЗрд╕ , 1)
}
/// рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд░ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВ ( рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ% = "" )
{
рд╕реЗрдЯ @ .. рдмрдлрд╝рд░ 2 @ (.. рдХрд░рдВрдЯрд▓рд╛рдЗрди 2) = $ рдорд┐рд▓рддрд╛ рд╣реИ (@ .. рдмрдлрд╝рд░ 2 @ (.. рдХрд░рдВрдЯ рд▓рд┐рд▓реА 2 ) _ рдЯреЗрдХреНрд╕реНрдЯ
}
/// рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд░ рдореЗрдВ рд▓рд╛рдЗрди рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ
рд╡рд┐рдзрд┐ WriteCR ()
{
рд╕реЗрдЯ .. рдХрд░рдВрдЯрд▓рд╛рдЗрди 2 = .. рдХрд░рдВрдЯрд▓рд╛рдЗрди 2 +1
}
/// рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЗрдВрдбреЗрдВрдЯ рдХрд░реЗрдВ
рд╡рд┐рдзрд┐ рдореЗрдХрдЗрдВрдбреЗрдВрдЯ () % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ
{
рдЗрдВрдбреЗрдВрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ = $ char (9)
i = 1: 1 рдХреЗ рд▓рд┐рдП: LevelFigureBrace рд╕реЗрдЯ рдЗрдВрдбреЗрдВрдЯ = рдЗрдВрдбреЗрдВрдЯ _ $ char (9)
i = 1: 1: .. LevelRoundBrace рд╕реЗрдЯ рдЗрдВрдбреЗрдВрдЯ = рдЗрдВрдбреЗрдВрдЯ _ ""
рдЗрдВрдбреЗрдВрдЯ рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
/// рдкреНрд░рд╛рд░реВрдк рдкрд╛рда рдЖрдВрддрд░рд┐рдХ "рдмрдлрд░" рдореЗрдВ
рд╡рд┐рдзрд┐ FormatBuffer ()
{
рд╕реЗрдЯ рд╕реНрддрд░ = 0
рдХреЗ рд▓рд┐рдП
{
рд╕реЗрдЯ рдкрд╛рда = .. ReadTerm1 (; рдкреНрд░рдХрд╛рд░ ) рдЫреЛрдбрд╝ рджрд┐рдпрд╛ : рдкреНрд░рдХрд╛рд░ = "рдИ"
do : type = "e" .. ProcessCR ( рдЯреЗрдХреНрд╕реНрдЯ )
do : type = "p" .. рдкреНрд░реЛрд╕реЗрд╕рд╕реНрдкреЗрд╕ ( рдкрд╛рда )
do : рдЯрд╛рдЗрдк = "" .. ProcessOnelineCommentOpen ( рдкрд╛рда )
do : type = "/ *" .. ProcessMultilineCommentOpen ( рдкрд╛рда )
do : type = "* /" .. ProcessMultilineCommentClose ( рдкрд╛рда )
do : type = "(" .. ProcessRoundBraceOpen ( рдкрд╛рда )
do : type = ")" .. ProcessRoundBraceClose ( рдкрд╛рда )
do : type = "{" .. ProcessFigureBraceOpen ( рдкрд╛рда )
do : type = "}" .. ProcessFigureBraceClose ( рдкрд╛рда )
do : type = "s" .. ProcessCommonCode ( рдкрд╛рда )
рд╕реЗрдЯ : .. LevelFigureBrace > рд╕реНрддрд░ рд╕реНрддрд░ = .. LevelFigureBrace
}
рд╕реНрддрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
}

рд╢реИрд▓реА рдореЗрдВ рд╡рд░реНрдЧ-рд╣реИрдВрдбрд▓рд░ рд╡рд░реНрдЧ "рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдмреНрд░реИрдХреЗрдЯ"ред рдпрджрд┐ рдпрд╣ рд╢реИрд▓реА рдмреЗрд╣рддрд░ рд╣реИ, рддреЛ рдЖрдкрдХреЛ UtilCodeFormat3 рдХреЗ рд╕рд╛рде UserAction рд╡рд┐рдзрд┐ рд╕реЗ UtilCodeFormat рд╡рд░реНрдЧ рдореЗрдВ рдХреЙрд▓ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
Util.CodeFormat3 рдХреНрд▓рд╛рд╕
рдХреНрд▓рд╛рд╕ Util.CodeFormat3 Util.CodeFormat рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
{
/// рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдлрд╝реАрдб рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░реЗрдВ
рд╡рд┐рдзрд┐ рд░рд┐рдЯрд░реНрдирд╕реАрдЖрд░ ()
{
set .. рдХрд░рдВрдЯрд▓рд╛рдЗрди 2 = .. рдХрд░рдВрдЯрд▓рд╛рдЗрди -2
}
/// рдЕрдВрддрд┐рдо рд╕реНрдерд╛рди рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░реЗрдВ
рд╡рд┐рдзрд┐ рд░рд┐рдЯрд░реНрдирд╕реНрдкреЗрд╕ ()
{
рд╕реЗрдЯ str = @ .. рдмрдлрд╝рд░ 2 @ (.. рдХрд░рдВрдЯрд▓рд╛рдЗрди 2 )
рд╕реЗрдЯ рд▓реЗрди = $ рд▓рдВрдмрд╛рдИ ( str )
рдХреЗ рд▓рд┐рдП
{
рдЕрдВрддрд┐рдо рд╕реЗрдЯ = $ рдЕрд░реНрдХ ( str , len , len )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( lastchar '= " ) && ( lastchar ' = $ char (9))
рд╕реЗрдЯ str = $ рдЕрд░реНрдХ ( str , 1, рд▓реЗрди -1)
set len = рд▓реЗрди -1
рд╕реЗрдЯ @ .. рдмрдлрд░ 2 @ (.. рдХрд░рдВрдЯрд▓рд╛рдЗрди 2) = str
}
}
/// рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЦреЛрд▓рдиреЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝
рд╡рд┐рдзрд┐ ProcessFigureBraceOpen ( % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рда )
{
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. LevelRoundBrace ) .. ProcessCommonCode ( рдкрд╛рда )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. InMultiLineComment ) .. ProcessCononCode ( рдкрд╛рда )
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :( .. InSleleLineComment ) .. ProcessCononCode ( рдкрд╛рда )
рдХрд░рддреЗ рд╣реИрдВ : '.. LineHasCode .. ReturnCR ()
рдХрд░реЛ .. рд░рд┐рдЯрд░реНрдирд╕реНрдкреЗрд╕ ()
рдХрд░реЛ .. рд▓рд┐рдЦреЛ ( "" )
рдХрд░реЛ .. рд▓рд┐рдЦреЛ ( рдкрд╛рда )
set .. LevelFigureBrace = .. LevelFigureBrace +1

do .. WriteCR ()
set .. LineHasCode = 0, .. SkipSpace = 1, .. рдЬрд░реВрд░рдд = 1, .. SkipCR = 1
1 рдЫреЛрдбрд╝ рджрд┐рдпрд╛
}
}

рдХреНрд▓рд╛рд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреИрдЪ рдкреВрд░реА рддрд░рд╣ рд╕реЗ:
Util.StudioExtension рд╡рд░реНрдЧ
рдХрдХреНрд╖рд╛ Util.StudioExtension% Studio.Extension.Base рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
{
XData рдореЗрдиреВ
{
< рдореЗрдиреВрдмреЗрд╕ >
< рдореЗрдиреВ рдХрд╛ рдирд╛рдо = "рдкреНрд░рд╛рд░реВрдк" рдкреНрд░рдХрд╛рд░ = "1" >
< MenuItem рдирд╛рдо = "PlusTab" />
< MenuItem рдирд╛рдо = "MinusTab" />
< MenuItem рд╕реЗрдкрд░реЗрдЯрд░ = "1" />
< MenuItem рдирд╛рдо = "рд╕реБрдзрд╛рд░рдирд╛" />
< MenuItem рдирд╛рдо = "рд╕реБрдзрд╛рд░рдХ рдХрд╛рд░реНрдп" = "100" /> рд╕рд╣реЗрдЬреЗрдВ
< MenuItem рд╕реЗрдкрд░реЗрдЯрд░ = "1" />
< MenuItem рдирд╛рдо = "CommentBlock" />
< MenuItem рдирд╛рдо = "UnCommentBlock" />
</ рдореЗрдиреВ >
</ MenuBase >
}
OnMenuItem рд╡рд┐рдзрд┐ ( рдореЗрдиреВ рдирд╛рдо % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ , рдЖрдВрддрд░рд┐рдХ рдирд╛рдо % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ , рдЪрдпрдирд┐рдд рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ
ByRef % Boolean рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдХреНрд╖рдо , ByRef DisplayName % рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ) % рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ
{
рд╕реЗрдЯ : MenuName = "рдлрд╝реЙрд░реНрдореЗрдЯ" DisplayName = "рдлрд╝реЙрд░реНрдореЗрдЯ"
set : MenuName = "Format,PlusTab" DisplayName = "->| "
set : MenuName = "Format,MinusTab" DisplayName = "|<- "
set : MenuName = "Format,ReformatDocument" DisplayName = " "
set : MenuName = "Format,ReformatSelection" DisplayName = " "
set : MenuName = "Format,CommentBlock" DisplayName = " "
set : MenuName = "Format,UnCommentBlock" DisplayName = " "
set Enabled =1
set ext = $piece ( InternalName , "." , $length ( InternalName , "." ))
set :( MenuName = "Format,ReformatDocument" )&&( ext '= "MAC" )&&( ext '= "CLS" ) Enabled =0
set :( MenuName = "Format,ReformatSelection" )&&( SelectedText = "" ) Enabled =0
set :( MenuName = "Format,MinusTab" )&&( SelectedText = "" ) Enabled =0
set :( MenuName = "Format,UnCommentBlock" )&&( ##class ( Util.FormatComment ). CheckForComment ( SelectedText )=0) Enabled =0
quit 1
}
/* -
Type = 0 - ,
InternalName - ,
InternalName - ,
SelectedText - ( )
Type = 1 - ,
Name = 0 -
Name = 1 -
Name = 2 -
Name = 3 -
Name = 4 -
Name = 5 -
InternalName - ,
Action
0 -
1 - //. Target.
2 - csp . Target
3 - EXE - . Target
4 - , Target
5 - , Target. . 'test.mac:label+10', test.mac 'label+10'.
6 - , Target
7 - Yes/No/Cancel. Target. Msg.
Reload , .
* /
Method UserAction( Type As %Integer , Name As %String , InternalName As %String , SelectedText As %String ,
ByRef Action As %String , ByRef Target As %String , ByRef Msg As %String , ByRef Reload As %Boolean ) As %Status
{
set ext = $zconvert ( $piece ( InternalName , "." , $length ( InternalName , "." )), "U" )
set docname = $extract ( InternalName ,1,*-4)
if Name = "Format,PlusTab"
{
set Action =4 ;
set Target = ##class ( Util.FormatTab ). PlusTab ( SelectedText , ext = "CSP" )
}
if Name = "Format,MinusTab"
{
set Action =4 ;
set Target = ##class ( Util.FormatTab ). MinusTab ( SelectedText , ext = "CSP" )
}
if Name = "Format,CommentBlock"
{
set Action =4
set Target = ##class ( Util.FormatComment ). AddComment ( SelectedText )
}
if Name = "Format,UnCommentBlock"
{
set Action =4
set Target = ##class ( Util.FormatComment ). RemoveComment ( SelectedText )
}
if Name = "Format,ReformatSelection"
{
set Action =4
set Target = ##class ( Util.CodeFormat ). FormatString ( SelectedText )
}
if Name = "Format,ReformatDocument"
{
set Action =0
do : ext = "MAC" ##class ( Util.CodeFormat ). FormatMAC ( docname )
do : ext = "CLS" ##class ( Util.CodeFormat ). FormatClass ( docname )
}
quit 1
}
}

рд╣реЛ рдЧрдпрд╛!

Source: https://habr.com/ru/post/In202608/


All Articles