/*
 * `ԑfCu  V1.0
 *
 * ̓t@C蕶ǂݍ݁A`ԑf͂sB
 *
 */
? <include list>;


<`ԑf #o>
	<Prc>
	< #a #b>
	::list <append #c #a (#b)>
	<`ԑf #c>
	<del_last_nil>
	<plist #o>
	;

<`ԑf ()>;
<`ԑf ((B :_))>;
<`ԑf ((#s1 #s2) :#l2)>
	<laststr #ls #s2>
	(
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	)
	<Prn (#s1 #s2)>
	<`ԑf #l2>
	;
<`ԑf ((#s2) :#l2)>
	<laststr #ls #s2>
	<`FbN #ls>
	<Prn (#s2)>
	<`ԑf #l2>
	;
<`ԑf ((#s1 #s2) :#l2)>
	<laststr #ls #s2>
	<`FbN #ls>
	<Prn (#s1 #s2)>
	<`ԑf #l2>
	;
<`FbN #ls>
	(
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
//	 <is #ls >
//	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	 |
	 <is #ls >
	)
	;
<`ԑf ((#l1) :#l2)>
	(
	 <is #l1 >
	 |
	 <is #l1 >
	 |
	 <is #l1 >
	 |
	 <is #l1 >
	 |
	 <is #l1 >
	)
	<Prn (#l1) >
	<`ԑf #l2>
	;
/*
<`ԑf ((#l1) :#l2)>
	<Prn (#l1) >
	<`ԑf #l2>
	;
*/
<`ԑf (#l1 :#l2)>
	<Pr #l1>
	<`ԑf #l2>
	;

< #s #prd>
	{#s
		<nop #p>
		(
		 <ʊJ #p>
		|
		 <ʕ #p>
			["A" | "C" | "," ]
		|
		 <̑ #p>
		|
		 <i #x1 #g>
			(
			  <is #g "">
			  <is #p (#x1)>
			 |
			  <is #p (#x1 #g)>
			)
		)
	}
	(
	  <q #y #t>
		(
		  <is #t "">
		  <is #prd (#y)>
		 |
		  <is #prd (#y #t)>
		)
	 |
	  <* #y><is #prd (#y)>
	)
	;

<laststr #l #s>
	::sys <char #list #s>
	::list <last #l #list>
	;

<̑ (#s)>
		(
		   ""
		 | "ȂƂ"
		 | ""
		 | "Ƃ"
		 | "҂ɑ҂"
		 | "̂Ȃ"
		 | "݂"
		 | "ɂ"
		 | ""
		 | "Ƃ"
		 | ""
		 | "Ⴆ"
		 | "lĂ"
		 | "v"
		 | ""
		 | "킽"
		 | "邪"
		 | "܂"
		 | ""
		 | ""
		 | "悤₭"
		 | "Ƃ"
		 | "Ƃ"
		 | "Ƃ"
		 | ""
		 | ""
		 | ""
		 | ""
		 | "܂"
		 | "܂"
		 | "܂"
		 | "܂"
		 | "܂܂"
		 | "܂"
		 | "܂"
		 | "ق"
		 | ""		<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 "">
		 | ""
		 | "ɂ"
		 | ""
		 | ""
		 | ""
		 | "΂"
		 | "΂"
		 | "ɂ"
		 | "ɂ"
		 | ""
		 | "ł"
		 | "ł"
		 | ""
		 | "̂悤"
		 | "̂悤"
		 | "̂܂"
		 | "̂ق"
		 | "̂Ƃ"
		 | "̂Ƃ"
		 | "̂"
		 | "̂"
		 | ""
		 | "Ƃ"
		 | ""
		 | ""
		 | ""
		 | "ǂ"
		 | ""
		 | ""
		 | ""
		 | "ĂȂ"
		 | "ĂȂ"
		 | ""
		 | ""
		 | ""
		 | "т"
		 | ""
		 | "炭"
		 | ""
		 | ""
		 | ""
		 | ""
		 | ""
		 | ""
		 | ""
		 | ""
		 | "邢"
		 | ""
		 | "܂"
		 | "̂܂"
		 | "̂Ƃ"
		 | ""
		 | ""
		 | "ׂĂ"
		 | "SĂ"
		)
				<GETTOKEN #s>
		[
		    ","
		  | "A"
		  | "C"
		  | <SPACE>
		]
		;
/*
<i #x1 #x2 #x3 #g>
	<ʊJ #x1>
	<* #x2> 
	<ʕ #x3>
	<i2 #x3 #g>
	;
*/
<i #x #g>
	<* #x> 
	<i2 #x #g>
	;
<i2 #x #g>
	(
		  ""
		| ""
		| "ɂ"
		| ""		
/*		| ""
				<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 "">
				<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 "">
		| ""		<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 ""><NOTNEXTSTR "">
					<NOTNEXTSTR ""><NOTNEXTSTR "">
					<NOTNEXTSTR ""><NOTNEXTSTR "">
					<NOTNEXTSTR ""><NOTNEXTSTR "">
		| ""
		| ""
		| ""
		| ""		<NOTNEXTSTR "">
		| "邪"
/*
		| ""		<NOTNEXTSTR ""><NOTNEXTSTR "">
				<NOTNEXTSTR ""><NOTNEXTSTR "">
				<NOTNEXTSTR ""><NOTNEXTSTR "">
				<NOTNEXTSTR ""><NOTNEXTSTR "">
				<NOTNEXTSTR ""><NOTNEXTSTR "">
				<NOTNEXTSTR ""><NOTNEXTSTR "">
*/
		| "?"		
		| "H"		
		| "!"		
		| "I"		
		| <NEXTSTR "A"> 
		| <NEXTSTR "C"> 
		| <NEXTSTR ","> 
		| <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>
	((
	   "܂"
	 | "܂"
	 | "܂"
	 | "ł"
	 | "ł܂"
	 | "܂"
	 | "Ȃ"
	 | "炵"
	 | "炵"
	 | "悤"
	 | "悤"
	 | "̂ł"
	 | "̂"
	 | ""
	 | "݂Ăق"
	 | "܂"
	 | "܂"
	 | "܂"
	 | "܂"
	 | "ق"
	 | "ق"
	 | "Ȃ"
	 | "Ȃ܂"
	 | "Ȃ̂"
	 | "Ȃ"
	 | "Ȃ낤"
	 | "Ȃ낤"
	 | "Ȃ"
	 | "Ȃ"
	 | "Ȃ낤"
	 | "Ȃ낤"
	 | "Ȃ"
	 | "Ȃ"
	 | "ł"
	 | "ł"
	 | "ł"
	 | "łȂ"
	 | "ł"
	 | "ł"
	 | "Ă݂"
	 | "Ă݂"
	 | "Ă݂"
	 | "Ă݂"
	 | "Ă܂"
	 | "Ă܂"
	 | "Ă"
	 | "Ă"
	 | "Ă"
	 | "Ă"
	 | "낤"
	 | "낤"
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | ""
	 | "Ă܂"
	 | ""
	 | ""
	 | ""
	 | "Ă"
	 | "ꂽ"
	 | ""
	 | ""
	 | ""
	 | ""
	 | "炾"
	 | ""
	 | "܂"
	 | ""
	 | ""
	 | ""
	 ) <GETTOKEN #t>
	|(
	 | "?"
	 | "H"
	 | "."
	 | "B"
	 | "..."
	 | "cc"
	 | "c"
	 | <SPACE>
	 | <CR>
	 )<is #t "">
	)
	
	(
		  "?"
		| "H"
		| "."
		| "B"
		| "..."
		| "cc"
		| "c"
		| <SPACE>
		| <CR>
		| <EOF>
	)
	;

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

<ʊJ #g>
	(
	    "("
	  | "i"
	  | "u"
	  | "w"
	  | "y"
	  | "["
	  | "{"
	  | "'"
	  | '"'
	  | "h"
	)
	<GETTOKEN #g>
	;

<ʕ #g>
	(
	    ")" 
	  | "j"  
	  | "v" 
	  | "x" 
	  | "z" 
	  | "]" 
	  | "}" 
	  | "'"
	  | '"'
	  | "g"
	)
	<GETTOKEN #g>
	;



// ͍\Xgɕϊ鏈Bprint, printf̑
<lastelement () #e (#e)>
	;
<lastelement () () ()>
	;
<lastelement (#l) #e (#l #e)>
	;
<lastelement (#l1:#l3) #e (#l1:#l2)>
	<lastelement #l3 #e #l2>
	;
	
<pr_el (#lout) () #l2 #new>
	::list <append #lout #l2 (#new)>
	;
<pr_el #lout #l1 #l2 #new>
	::list <append #l3 #l2 (#new)>
	::list <append #lout #l1 (#l3)>
	;


<pr #lout #lin #new>
	<lastelement #l1 #l2 #lin>
	<pr_el #lout #l1 #l2 #new>
	;

<prn #lout #lin #new>
	<pr #lout2 #lin #new>
	::list <append #lout #lout2 (())>
	;
<prn #lout #lin>
	::list <append #lout #lin (())>
	;
	
<plist ()>;

<Prc>
	<setVar plist ()>
	;

<Pr #l>
	<plist #list1>
	<pr #list2 #list1 #l>
	<setVar plist #list2>
	;
<Prn #l>
	<plist #list1>
	<prn #list2 #list1 #l>
	<setVar plist #list2>
	;
<Prn>
	<plist #list1>
	<prn #list2 #list1>
	<setVar plist #list2>
	;

<del_last_nil>
	<plist #list>
	<del_last_nil #l #list>
	<setVar plist #l>
	;

<del_last_nil #l2 #l1>
	<lastelement #l2 () #l1>
	;
<del_last_nil #l1 #l1>
	;

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



