/*
 * `ԑfCu  V1.0
 *
 * ̓t@C蕶ǂݍ݁A`ԑf͂sB
 *
 */

< #s (#y #t)>
	{#s
		<nop #p>
		(
		 < #p>
		|
		 <̑ #p>
		|
		 <i #k #x>
		 <is #p (#k #x)>
		|
		 < #p>
		)
	}
	(
	  <q #y #t>
	 |
	  <* #y><is #t " ">
	)
	[
	 < #p>
	 {
		<* _>
	 }
	 < #p>
	]
	;


< (#s)>
	(
	  ""
	| ""
	| ""
	| ""
	| ""
	| ""
	| ""
	)
		<GETTOKEN #s>
		[
		    ","
		  | "A"
		  | "C"
		  | <SPACE>
		]
		;

<̑ (#s)>
		(
		   ""	
		 | "ȂƂ"	
		 | ""	
		 | "Ƃ"	
		 | "̂Ȃ"	
		 | "݂"	
		 | "ɂ"	
		 | ""	
		 | "Ƃ"	
		 | ""	
		 | "Ⴆ"	
		 | "lĂ"	
		 | "l"	
		 | "邪"	
		 | "܂"	
		 | ""	
		 | ""	
		 | "悤₭"	
		 | "Ƃ"	
		 | "Ƃ"	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | "܂"	
		 | "܂"	
		 | "܂"	
		 | "܂"	
		 | "܂"	
		 | "Ȃт"	
		 | "ȂȂ"	
		 | "Ȃ"	
		 | "ȂƂ"	
		 | "Ȃ"	
		 | "Ȃ"	
		 | "Ȃ"	
		 | "Ȃ"	
		 | "ǂ"
		 | "Ƃ"	
		 | "Ƃ낪"	
		 | "ǂׂ"	
		 | "ǂ"	
		 | "ǂ"	
		 | "ǂ킯"	
		 | "Ƃ̂"	
		 | "ł"	
		 | "ł"	
		 | "傤"	
		 | "Ȃ݂"	
		 | "Ƃ"	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | "܂ł"	
		 | "܂"	
		 | "ق"	
		 | "͂"	
		 | "͂Ă"	
		 | "ɂ炸"	
		 | "ɂĂ"	
		 | ""	
		 | "Ȃ"	
		 | "Ȃ̂"	
		 | "Ƌ"	
		 | "ƂƂ"	
		 | "Ƃ"	
		 | "ł"	
		 | "ł"	
		 | ""	
		 | "ꂼ"	
		 | "ꂶ"	
		 | "ꂪ"	
		 | "ꂩ"	
		 | "̌"	
		 | "̂܂"	
		 | "̂܂"	
		 | "̂Ƃ"	
		 | "̂߂"	
		 | "̂"	
		 | "̂"	
		 | "̂"	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | "ׂĂ"	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | ""	
		 | "̂܂"	
		 | "̂ق"	
		 | "̂Ƃ"	
		 | ""	
		 | "Ƃ"	
		 | ""	
		 | "ǂ"	
		 | ""	
		 | ""	
		 | ""	
		 | "ĂȂ"	
		 | "ĂȂ"	
		 | ""	
		 | ""	
		 | "т"	
		 | ""	
		 | "炭"	
		 | "邢"	
		 | "̂܂"	
		 | "̂Ƃ"	
		 | ""	
		 | ""	
		 | "ׂĂ"
		 | "SĂ"
		)
				<GETTOKEN #s>
		[
		    ","
		  | "A"
		  | "C"
		  | <SPACE>
		]
		;

<i #x #g>
	<* #x> 

	(
		  ""	
		| ""	
		| "ɂ"	
		| ""		
		| ""	
		| ""		
		| ""		<NOTNEXTSTR "">	
		| ""	
		| ""	
		| "悤ɂ"	
		| "悤"	
		| ""		<NOTNEXTSTR "">	
		| "̂"	
		| ""		
		| "܂ł"	
		| "܂"	
		| "܂"	
		| "܂"	
		| "܂"	
		| "ւ"	
		| "ւ"	
		| "ւ"	
		| ""		
		| ""		
		| ""		
		| "̂̂ł"	
		| "̂"	
		| "݂̂"	
		| "̂̂"	
		| "̂̂"	
		| "̂"	
		| "̂߂"	
		| "̂߂"	
		| "̂"	
		| "̂Ƃ"	
		| "̂Ƃ"	
		| "̂"		
		| ""		<NOTNEXTSTR "">
		| "ɂ"	
		| "ɂ"	
		| "ɂ"	
		| "ɂ"	
		| "ɂ"	
		| "ɂ"	
		| "ɂ"	
		| "ɂȂƂ"	
		| "ɂȂ"	
		| "ɂ"
		| "ɂĂ"	
		| "ɂĂ"	
		| "ɂĂ"	
		| "ɂ"	
		| "ɂ"	
		| "ɂ"	
		| "ɂ"	
		| "ɂ"	
		| ""		<NOTNEXTSTR "">	
		| "Ȃ蓾̂"	
		| "Ȃ肤̂"	
		| "Ȃ蓾"	
		| "Ȃ肤"	
		| "Ȃ"	
		| "Ȃ̂ł"	
		| "Ȃ̂"	
		| "Ȃ̂ǂ"	
		| "Ȃ̂"	
		| "Ȃ̂"	
		| "Ȃǂ"	
		| "Ȃǂ̂߂" 
		| "Ȃǂ"	
		| "Ȃǂɂ"	
		| "ȂǂɂĂ"	
		| "Ȃǂł"	
		| "Ȃǂ"	
		| "Ȃǂ"	
		| "Ȃ"	
		| "Ȃ"	
		| ""		<NOTNEXTSTR ""><NOTNEXTSTR "">
				<NOTNEXTSTR ""><NOTNEXTSTR "">
		| "Ƃ"	
		| "Ƃ"	
		| "Ƃ"	
		| "ƂȂ"	
		| "ƂȂ"	
		| "ƂȂĂƂ̂"
		| "ƂȂĂƂ"
		| "ƂȂĂ"
		| "ƂȂ"	
		| "Ƃ̂"	
		| "Ƃ邪"	
		| "Ƃ"	
		| "ƂĂ"	
		| "Ƃ"	
		| "Ƃ"	
		| "Ƃ"	
		| "Ƃ"	
		| "Ƃ̂"	
		| "ƂƂł̂"	
		| "ƂƂł"	
		| "Ƃ"	
		| "Ƃ"	
		| ""		
		| "ł"	<NOTNEXTSTR "">	
		| "ł͂Ȃ"	
		| "ł"	
		| "ł"	
		| "ł"	
		| "ł"	
		| "ł悤ɂ"
		| "ł悤"
		| "ł悤"	
		| "ł"	
		| "ł̂"	
		| "ł"	
		| "ł"	
		| "ł"	
		| "ł"	<NOTNEXTSTR "">
		| ""		<NOTNEXTSTR "">
		| "Ă"
		| ""
		| "ł͂Ȃ" 
		| "ł" 
		| "łȂ"	
		| ""	
		| ""	
		| "߂"	
		| "߂"	
		| ""	
		| ""		
		| ""	
		| "̂"
		| "ɂ"	
		| ""
		| "邱Ƃ"	
		| "邪"	
		| ""	
		| "悤"	
		| "悤"	
		| "Ȃ̂"	
		| "Ȃ̂"	
		| "Ă炢"	
		| "Ă"	
		| "Ă"	
		| "Ă"	
		| "Ă"	
		| "Ă"	
		| "ĂȂ"	
		| "ĂƂ"@
		| "Ă"	
		| ""	
		| ""	
		| "悤"	
		| "̂"	
		| "̂"	
		| ""	
		| ""	
		| ""	
		| "邱Ƃ"	
		| "Ă"	
		| "Ă̂"	
		| "Ă"	
		| ""	
		| "ꂽ"	
		| "ꂽ"	
		| "Ƃ"	
		| "Ƃ"	
		| "ꂽ"	
		| "邪"	
		| ""		<NOTNEXTSTR "">
		| ""		
		| ""	
		| ""	
		| ""	
		| ""	
		| ""	
		| ""		<NOTNEXTSTR ""><NOTNEXTSTR ""><NOTNEXTSTR ""><NOTNEXTSTR "">
		| ""		<NOTNEXTSTR ""><NOTNEXTSTR "">
				<NOTNEXTSTR ""><NOTNEXTSTR "">
		| ""		
		| ""		<NOTNEXTSTR "">
		| ""		<NOTNEXTSTR ""><NOTNEXTSTR "">
				<NOTNEXTSTR "">	
		| ""		<NOTNEXTSTR ""><NOTNEXTSTR "">
				<NOTNEXTSTR "">
		| "?"		
		| "H"		
		| "!"		
		| "I"		
		| <NEXTSTR ",">	
		| <NEXTSTR "A"> 
		| <NEXTSTR "C"> 
		| <NEXTSTR "("> 
	  	| <NEXTSTR "i"> 
		| <NEXTSTR "u"> 
		| <NEXTSTR "w"> 
		| <NEXTSTR "["> 
		| <NEXTSTR "y"> 
		| <NEXTSTR "{"> 
		| <NEXTSTR ")"> 
		| <NEXTSTR "j">  
		| <NEXTSTR "v"> 
		| <NEXTSTR "x"> 
		| <NEXTSTR "]"> 
		| <NEXTSTR "z"> 
		| <NEXTSTR "}"> 
		| <NEXTSTR '"'> 
		| <NEXTSTR "'"> 
		| <NEXTSTR "h">
		| <NEXTSTR "g">
	)
		
		<NOTNEXTSTR "B">
		<NOTNEXTSTR ".">

 		<GETTOKEN #g>
	(
		  <eq #g ""> [ "," | "A" | "C"]
		| ","
		| "A"
		| "C"
		| <SPACE>
		| (
		    ::sys <rightstr #rc #x 1>
		    <NEXTCHAR #lc>  
		   (
			(  ::sys <syntax #rc <NONRANGE _ "" "">>
		    	 | ::sys <syntax #lc <NONRANGE _ "" "">>
			)
		   )		  
		   <noteq #lc "">
		   <noteq #lc "">
		   <noteq #lc "">
		   <noteq #lc "">
		   <noteq #lc "">
		   //<noteq #lc "">
		   <noteq #lc "">
		   <noteq #lc "">
		   <noteq #lc "">

		   <noteq #rc "">
		   <noteq #rc "">
		 )
	)
	;


	
<q #y #t>
	<* #y>
	(
	   ""
	 | ""
	 | "炵"
	 | "炵"
	 | "悤"
	 | "悤"
	 | ""
	 | ""
	 | ""
	 | "܂"
	 | "̂ł"
	 | "̂"
	 | ""
	 | "܂"
	 | "܂"
	 | "܂"
	 | "܂"
	 | "ق"
	 | "ق"
	 | ""
	 | ""
	 | ""
	 | ""
	 | "Ȃ"
	 | "Ȃ"
	 | "Ȃ낤"
	 | "Ȃ"
	 | "Ȃ"
	 | "Ȃ낤"
	 | "Ȃ"
	 | "Ȃ"
	 | ""
	 | "ł"
	 | "ł"
	 | "ł"
	 | "łȂ"
	 | "ł"
	 | "ł"
	 | "Ă݂"
	 | "Ă݂"
	 | "Ă"
	 | "Ă"
	 | ""
	 | "낤"
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | "ꂽ"
	 | ""
	 | ""
	 | ""
	 | "炾"
	 | ""
	 | ""
	 | ""
	 | "܂"
	 | ""
	 | ""
	 | ""
	 | "?"
	 | "H"
	 | "."
	 | "B"
	 | "..."
	 | "cc"
	 | "c"
	 | <SPACE>
	 | <CR>
	)
		<GETTOKEN #t>
	(
		  "?"
		| "H"
		| "."
		| "B"
		| "..."
		| "cc"
		| "c"
		| <SPACE>
		| <CR>
		| <EOF>
	)
	;

< #g>
	(
	    "("
	  | "i"
	  | "u"
	  | "w"
	  | "y"
	  | "["
	  | "{"
	  | ")" 
	  | "j"  
	  | "v" 
	  | "x" 
	  | "z" 
	  | "]" 
	  | "}" 
	  | "'"
	  | '"'
	  | "h"
	  | "g"
	)
	<GETTOKEN #g>
	;

<ǂݍ>
	{ 
		::sys <getline #x 
			::sys <strdelcntl #y #x> 
			::sys <split #l #y "B">
			<foreach (#i #l)
				(
				   ::sys <syntax #i <NULLLINE>>
				 | 
				   <print ">" #i "B"><print>
				   ::sys <syntax ::sys<concat _ (#i "B")> 
					{< #a #b><print #a #b><print>}>
				)
			>>
	};
	
//? <ǂݍ>;


