рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЙрд╕реА рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░-рдмрд╛рд░ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдкреНрд░рддреАрдХ рдХреА рдкрд░рд╡рд╛рд╣ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
system OBJECT IDENTIFIER ::= { mib-2 1 }
interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
at OBJECT IDENTIFIER ::= { mib-2 3 }
ip OBJECT IDENTIFIER ::= { mib-2 4 }
icmp OBJECT IDENTIFIER ::= { mib-2 5 }
tcp OBJECT IDENTIFIER ::= { mib-2 6 }
udp OBJECT IDENTIFIER ::= { mib-2 7 }
egp OBJECT IDENTIFIER ::= { mib-2 8 }
рдпрд╣ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд╣рд╛рдВ _ рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рд╣реИ):
identifier _ "OBJECT IDENTIFIER" _ "::=" _ "{" _ identifier _ number _ "}"
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рд╕реМрджрд╛ рдирд╣реАрдВ рд╣реИ (рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкреИрдЯрд░реНрди рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реИ :-) рд▓реЗрдХрд┐рди рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреНрдп рдмрдбрд╝реЗ рдмрд╛рд▓реЛрдВ рд╡рд╛рд▓реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдкреВрд░реНрдг рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ (рдореИрдВ рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдореЗрд░реЗ рдорди рдореЗрдВ рдЬреЛ рдХрд╛рдо рд╣реИ рдХрд░реЛ)ред
рдореИрдВ рдЗрд╕ рдкреИрдЯрд░реНрди рдХреА рддрд░рд╣ рдХреБрдЫ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:
identifier _ "OBJECT IDENTIFIER" .*? "}"
рдЬрд╣рд╛рдВ "ред*?" рдЧреИрд░ рд▓рд╛рд▓рдЪреА рд╣реИ - рдпрд╣ рдХреЗрд╡рд▓ рдЯрд░реНрдорд┐рдирд▓ рдХреА рдкрд╣рд▓реА рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдЦрдкрдд рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ PEG.js рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ: рдпрд╣ рдПрдХ рджреЛрд╣рд░рд╛рд╡ рдЧрдгрдирд╛ (рдЬреЛ рдореЗрд░реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╣реИ) рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ Google рд╕рдореВрд╣ рдореЗрдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: http://groups.google.com/group/pegjs/browse_thread/thread/2bea15581be45187
рдкреАрдИрдЬреА рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛ рдореЗрдВ, рдЖрдк .
рдореЗрдЯрд╛рдПрдХреНрдЯреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзреЗрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рддрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
"OBJECT IDENTIFIER" (!"}" .)* "}"
рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ?
рд╣рд╛рдБ, рдпрд╣ рдПрдХрджрдо рд╕рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!
@dmajda !"}"
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдЦрд╛рд▓реА рдЪрд╛рд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЕрднреНрдпрд╛рд╕ рдХреНрдпрд╛ рд╣реИ?
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
= chars:(!"-suffix" .)+ "-suffix"
"foo-suffix" => [[ '', 'f' ], ['', 'o' ], ['', 'o' ]] // result
"foo-suffix" => ['f', 'o', 'o' ] // desired result
рдореИрдВ !"-suffix" .
рдХреЛ рдЕрдкрдиреЗ рдирд┐рдпрдо рдореЗрдВ рддреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдЬреЛ рд╕рд┐рд░реНрдл .
рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ рддреЛ рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмреАрдЪ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
= chars:(!"-suffix" c:. {return c})+ "-suffix"
@islandr рдХреГрдкрдпрд╛ рдореБрджреНрджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ PEG.js рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рди рдХрд░реЗрдВред рдЦрд╛рд╕рддреМрд░ рдкрд░ рддрдм рдЬрдм рд╡реЗ рдмрдВрдж рд╣реЛрдВ рдФрд░ рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдкреВрдЫ рд░рд╣реЗ рд╣реЛрдВ рдЬрд┐рд╕рдореЗрдВ рдореЗрд░реЗ рдмрдЧрд▓ рдХреЗ рдЕрдиреНрдп рд▓реЛрдЧ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХреЗрдВред рдЙрдЪрд┐рдд рдЪреИрдирд▓ Google рд╕рдореВрд╣ рд╣реИ ред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдбреЗрд╡рд┐рдбред рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдерд╛
рд╕реАрдзреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рдмреБрдзрд╡рд╛рд░, 9 рдЬрдирд╡рд░реА, 2013 рдХреЛ рд░рд╛рдд 9:51 рдмрдЬреЗ, рдбреЗрд╡рд┐рдб рдорд╛рдЬрджрд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.comрд▓рд┐рдЦрд╛:
@islandr https://github.com/islandr рдХреГрдкрдпрд╛ рдореБрджреНрджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рди рдХрд░реЗрдВ
PEG.js рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдПред рдЦрд╛рд╕рдХрд░ рдЬрдм рд╡реЗ рдмрдВрдж рд╣реЛрдВ рдФрд░
рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдкреВрдЫ рд░рд╣реЗ рд╣реЛрдВ рдЬреЛ рдореЗрд░реЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд▓реЛрдЧ рдХрд░ рд╕рдХреЗрдВ
рддреБрдореНрд╣рд╛рд░реА рдорджрдж рдХрд░реЛред рдЙрдЪрд┐рдд рдЪреИрдирд▓ Google рд╕рдореВрд╣ рд╣реИhttp://groups.google.com/group/pegjs
.-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHubhttps: //github.com/dmajda/pegjs/issues/57#issuecomment -12083927 рдкрд░ рджреЗрдЦреЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдкреАрдИрдЬреА рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛ рдореЗрдВ, рдЖрдк
.
рдореЗрдЯрд╛рдПрдХреНрдЯреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзреЗрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рддрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ?