map1	state1
	state1
		entry						{map1_state1_entry}
		exit						{map1_state1_exit}
		suspend						{map1_state1_suspend}
		resume						{map1_state1_resume}
		trans1										state2			#//
		trans2						{map1_state1_trans2_act}				#//
		trans3						{map1_state1_trans3_act}	state2			#//
		trans4		[map1_state1_trans4_guard]					state2			#//guard͔Cӂɏȗ¡actstate͏ȂƂw肷KvL
		trans5		[map1_state1_trans5_guard]	{map1_state1_trans5_act}				#//
		trans6		[map1_state1_trans6_guard]	{map1_state1_trans6_act}	state2			#//
		default		[map1_state1_default_guard]	{map1_state1_default_act}	state2			#//"default"͗\ł͂Ȃłł͂Ȃ߰ɂďհް`̑JږƂ̈ႢͤJڔԍ(0)蓖Ă鎖ł
	end
	state2
		entry						{}							#//
		exit						{}							#//
		suspend						{}							#//
		resume						{}							#//
		trans1										state1			#//
		trans2						{}							#//ʂGuard,ActȗƤIɖO쐬顐閼ŐK̗ͤQƂ桖OȗȂꍇͤKɏ]Kv͖
		trans3						{}				state1			#//
		trans4		[]								state1			#//
		trans5		[]				{}							#//
		trans6		[]				{}				state1			#//
		default		[]				{}				state1			#//
	end
end
map2	state1
	state1														#//
		entry						{}							#//entry,exit,suspend,resume,trans,default̑SĂKvȖł͖sł`Ηǂ̏Ԃ͒`oȂ
	end														#//
	state2														#//
		trans1		[]				{}				state1			#//
	end														#//
	entry							{map2_entry}						#//
	exit							{map2_exit}						#//
	suspend							{map2_suspend}						#//݂̏Ԃentry,exit,suspend,resume,trans,defaultꍇ̫ďϯ߂ɓo^鎖o顕K{ł͂Ȃ
	resume							{map2_resume}						#//
	trans1			[map2_trans1_guard]		{map2_trans1_act}		state2			#//
	default			[map2_default_guard]		{map2_default_act}		state1			#//
end
map3	state1
	state1
		trans1		[]				{}				     state1!		#//FsmObj_SetState() ɑ											#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans2		[]				{}				push(state1)		#//FsmObj_PushState()ɑ
		trans3		[]				{}				pop			#//FsmObj_PopState() ɑ
	end
end
map4	state1
	state1
		trans1		[]				{}				state1!			#//															#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans2		state1!				[]				{}			#//															#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans3		{}				state1!				[]			#//[ްޏ]{}ƑJڐԂͤCӂ̏ŋLqo顂ǂ̏ŋLqĂऐްɈႢ͖		#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans4		[]				state1!				{}			#//															#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans5		{}				[]				state1!			#//															#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans6		state1!				{}				[]			#//															#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
	end
end
#// * Mon Jun 29 21:48:11 JST 2015 Naoyuki Sawa
#// - Jڂ̖OŁAK[hقȂAJڃZbg`o悤ɂ܂B
#//   D揇ʂ́AuSMC - The State Machine Compilerv(http://smc.sourceforge.net/)QlɂĒ܂B
#//     1-1-1. ݂̏Ԃ́Aw肳ꂽJڂ́AK[hLJڂŁAK[hJ	Lꍇ͏sB݂̎ł̓K[h̏ƂĂ邪A̋ɈˑĂ͂ȂB	{{2018/04/18RgǋL:LꍇɏsƂLqɊi[鎖o悤ɂȂ܂B'Wed Apr 18 23:59:59 JST 2018 Naoyuki Sawa'̃TvQƂĉB}}
#//     1-1-2. ݂̏Ԃ́Aw肳ꂽJڂ́AK[hJ
#//     1-2-1. ԃ}bv́Aw肳ꂽJڂ́AK[hLJڂŁAK[hJ	Lꍇ͏sB݂̎ł̓K[h̏ƂĂ邪A̋ɈˑĂ͂ȂB	{{2018/04/18RgǋL:LꍇɏsƂLqɊi[鎖o悤ɂȂ܂B'Wed Apr 18 23:59:59 JST 2018 Naoyuki Sawa'̃TvQƂĉB}}
#//     1-2-2. ԃ}bv́Aw肳ꂽJڂ́AK[hJ
#//     2-1-1. ݂̏Ԃ́AftHgJڂ́AK[hLJڂŁAK[hJ	Lꍇ͏sB݂̎ł̓K[h̏ƂĂ邪A̋ɈˑĂ͂ȂB	{{2018/04/18RgǋL:LꍇɏsƂLqɊi[鎖o悤ɂȂ܂B'Wed Apr 18 23:59:59 JST 2018 Naoyuki Sawa'̃TvQƂĉB}}
#//     2-1-2. ݂̏Ԃ́AftHgJڂ́AK[hJ
#//     2-2-1. ԃ}bv́AftHgJڂ́AK[hLJڂŁAK[hJ	Lꍇ͏sB݂̎ł̓K[h̏ƂĂ邪A̋ɈˑĂ͂ȂB	{{2018/04/18RgǋL:LꍇɏsƂLqɊi[鎖o悤ɂȂ܂B'Wed Apr 18 23:59:59 JST 2018 Naoyuki Sawa'̃TvQƂĉB}}
#//     2-2-2. ԃ}bv́AftHgJڂ́AK[hJ
#//   L̏ɌāAsłJڂȂꍇ́AG[~܂B
#//   ڍׂ́A/clip/clipfsm.cFsmObj_ApplyTrans()̎QƂĂB
map5	state1
	default							{}				state1			#//2-2-2.
	default			[guard1]			{}				state1			#//2-2-1.
	default			[guard2]			{}				state1			#//
	trans1							{}				state1			#//1-2-2.
	trans1			[guard1]			{}				state1			#//1-2-1.
	trans1			[guard2]			{}				state1			#//
	state1
		default						{}				state1!			#//2-1-2.														#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		default		[guard1]			{}				state1!			#//2-1-1.														#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		default		[guard2]			{}				state1!			#//															#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans1						{}				state1!			#//1-1-2.														#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans1		[guard1]			{}				state1!			#//1-1-1.														#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans1		[guard2]			{}				state1!			#//															#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
	end
end
#// * Wed Jul 01 21:26:23 JST 2015 Naoyuki Sawa
#// - XNvgŁA֐̃R[hwo悤ɂ܂B
#//   eZꍇ́AL̗̂悤ɁA֐̃R[hwŏȌłB
#//   eGȏꍇ́A܂łǂ薼OwɂāA֐`̓AvP[VōsAێ̊ϓ_]܂łB
#// - ֐̃R[hwł̉śAc[̂͑ΉĂ܂B
#//   CvvZbTʂ΁As̃obNXbVɂsp͉\łB
map6	state1
	state1
		entry						{`myEntry()`}
		exit						{`myExit()`}
		suspend						{`mySuspend()`}
		resume						{`myResume()`}
		trans1		[`mode == 1`]			{`mode = 2`}			state2
	end
	state2
		entry						{`myEntry()`}
		exit						{`myExit()`}
		suspend						{`mySuspend()`}
		resume						{`myResume()`}
		trans1		[`mode == 2`]			{`mode = 3`}			state1
	end
end
#// * Wed Jul 01 21:52:52 JST 2015 Naoyuki Sawa
#// - s̃obNXbVōsp@\ǉ܂B
#//   Lԋ@B}bvXNvgCvvZbTƑAc[ɂOCvvZbTʂCvvZbTɂspKp鎖łB
#//   Lԋ@B}bvXNvg'%{`%}'̒CvvZbT^߂gpĂƁAC\[Xt@Cɏo͂OɓWJĂ܂A\ȂʂɂȂ邩łB
#//   L̖邽߁Ac[̂ɁAs̃obNXbVōsp@\ǉ鎖ɂ܂B
#// - '%{`%}','[```]','{```}'̒́A͂ɂčsp܂̂ŁAs̃obNXbVw͕svłB
map7	state1
	state1
		trans1				\
			[`(mode == 1)`]		\
			{`
				myProc1();
				myProc2();
			`}			\
			state1!																											#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
	end
end
#// * Wed Jul 29 09:09:12 JST 2015 Naoyuki Sawa
#// - ܂ŁA[`c`],{`c`}̒ɁÃVtgJIS܂܂ĂƁARpCG[ɂȂs܂B
#//   ̓Iɂ́A2oCgڂobNNH[g̕R[h(\x60)̕('`','`','`','`'Ȃ)܂܂ĂꍇłB
#// - {A`c`̒ł̓VtgJISӎXLs悤ɏĈŁAL̕s͖Ȃ܂B
#//   ́A[`c`],{`c`}̒ɁA2oCgڂobNNH[g̕R[h(\x60)̕܂łA薳삵܂B
#// - A[`c`],{`c`}̒ɁAu`v̂̂܂ނƁA܂łƓlɃRpCG[ɂȂ̂ŒӂĉB
map8	state1
	state1
		trans1				\
			[`strcmp("`","`")`]	\
			{`puts("`E`")`}
	 #//װ	trans2				\
	 #//װ		[`strcmp("`","`")`]	\
	 #//װ		{`puts("`")`}
	end
end
#// * Wed Jul 01 21:26:23 JST 2015 Naoyuki Sawa
#// - %{`%}ŁAC\[X̏o͂̐擪ɏo͂A\[Xwo悤ɂ܂B
#//   XNvĝǂɋLqĂAC\[X̏o͂̐擪ɏo͂܂B
#//   XNvgɕLqꍇASĘAāAC\[X̏o͂̐擪ɏo͂܂B
%{
#include <stdio.h>
int mode, page;
%}
#// * Fri Mar 04 21:22:19 JST 2016 Naoyuki Sawa
#// - '-p'IvVǉ܂B
#// - Lԋ@BXNvg̒ɁAvpeBe[uXNvgAǉ܂B
#//   AN^[IuWFNg`鎞ɁAԃ}bvƓ̃vpeBe[u`鎖̂ŁALԋ@BXNvg̒ŗ܂Ƃ߂ċLqłƕ֗łB
#//   C++JavãIuWFNgwƎAo悤ɂȂ܂B
#//   ALԋ@BXNvgRpĆAvpeBe[uXNvg̓eӎ܂B
#//   @{`@}ň͂܂ꂽ͈͂AvpeBe[uXNvgƔFāAʂ̃t@C(,Wo͂̍Ō)ɂ܂Ƃ߂ďo͂邾łA
#//   vpeBe[uXNvĝ̃RpCG[óAʓrAvpeB[e[uXNvgRpCsĂȂĉB
#// - ԃ}bv̊O@{`@}ň͂܂ꂽ͈͂́Â܂܁ACӂ̃vpeB[e[uXNvgƂďo͂܂B
#//   Cӂtype`ACӂtable`\łB
#// - ԃ}bv̒@{`@}ň͂܂ꂽ͈͂́Aԃ}bvƓÕvpeB[e[uƂďo͂܂B
#//   vpeBe[u(=ԃ}bv)ƁAŌend́AIɏo͂܂B
#//   @{`@}̒ɂ́AvpeBe[ũtB[h`ĉB
#// - ԃ}bv̊O@{`@}Aԃ}bv̒@{`@}AꂩɓZ߂ďĂ\܂񂵁AɕďĂ\܂B
#//   ɏĂAɏeAďo͂AǂłʂɂȂ܂B
@{
Byte
	range	-128,127
end
@}
mapA	Init
	@{
		var1	:Byte	<"%8d">
		var2	:UByte	<"%8u">
	@}
	Init
		entry	{``}
	end
end
@{
UByte
	range	0,255
end
@}
mapB	Init
	@{
		var1	:Byte	"1"
	@}
	Init
		entry	{``}
	end
	@{
		var2	:UByte	"2"
	@}
end
#// * Fri Jan 06 23:24:43 JST 2017 Naoyuki Sawa
#// - clipfsm.cɂďԃ}bvɏAct֐`o悤ɂɔAdFsmMapC.exeύX̃WXg\o͂悤ɕύX܂B
#//   ԃ}bvɏAct֐`ꍇ́AL̗̂悤ɏԂ̑OɎw肵ĉB֐`̏́A܂łAct֐ƓłB
#//   ԃ}bvɏAct֐`Ȃ\ł̂ŁA̗Lԋ@BXNvg͂̂܂܂ō\܂B
map9a	{`ST_ActObj* const pActObj = ActObj_FromFsmObj(pFsmObj); \
	  ST_PrpHdr* const pPrpHdr = ActObj_GetPrpHdr( pActObj); \
	  PrpHdr_set_f(pPrpHdr, (intptr_t)pParam, "cnt");`} state1		#//Act֐w肷ꍇAԂ̑OɏĂɏĂǂBǂłf[^ɈႢ͖B
	@{
		cnt	"JE^"
	@}
	state1
		trans1	{`printf("%d\n", cnt++)`}
	end
end
map9b	state1 {`ST_ActObj* const pActObj = ActObj_FromFsmObj(pFsmObj); \
	         ST_PrpHdr* const pPrpHdr = ActObj_GetPrpHdr( pActObj); \
	         PrpHdr_set_f(pPrpHdr, (intptr_t)pParam, "cnt");`}		#//Act֐w肷ꍇAԂ̑OɏĂɏĂǂBǂłf[^ɈႢ͖B
	@{
		cnt	"JE^"
	@}
	state1
		trans1	{`printf("%d\n", cnt++)`}
	end
end
#//{{2018/04/20폜:ȑJڂ}~@ύX܂B
#//#// * Sun Jan 15 09:21:07 JST 2017 Naoyuki Sawa
#//#// - ȑJڂ}~Guard֐̏ȗL@ǉ܂B
#//#//   ڍׂ́Awinapp.cTrans_new()́A2017/01/15ǉ̃RgQƂĉB
#//mapC	state1
#//	trans1a	[no-self-transition]	{}	state3		#//ok	utrans1a [`FsmObj_GetState(pFsmObj) != FsmState_state3`] {} state3vƏ̂ƓłB	݂̏Ԃstate1,,state2ł鎞͎sȀ݂Ԃstate3ł鎞͗}~܂B
#//	trans1b	[no-self-transition]	{}	push(state3)	#//ok	utrans1b [`FsmObj_GetState(pFsmObj) != FsmState_state3`] {} push(state3)vƏ̂ƓłB	ʂ̕@Ƃstate1state2ɑJڂ`Guard֐gpȂĂl͎̏ôłȀԂɑ΂ċʂ̑Jڂ`ꍇ͂̂悤Ƀ}bvɑJڂ`ĎȑJڂ}~ȌɂȂ܂B
#//    #//	trans1c	[no-self-transition]	{}	pop		#//NG
#//    #//	trans1d	[no-self-transition]	{}			#//NG
#//	state1
#//		entry	{`puts("state1")`}
#//	end
#//	state2
#//		entry	{`puts("state2")`}
#//	end
#//	state3
#//		entry	{`puts("state3")`}
#//	end
#//end
#//}}2018/04/20폜:ȑJڂ}~@ύX܂B
#// * Thu Apr 12 23:59:59 JST 2018 Naoyuki Sawa
#// - ̏Ԃ쐬o悤ɂ܂B
mapD	state1
	state1
		trans1	state1!																											#//{{2018/04/20ύX:ȑJڂ}~@ύX܂B}}
		trans2	state2
	end
	state2	#//̏
	end
	state3	#//̏
	end
end

#// * Wed Apr 18 23:59:59 JST 2018 Naoyuki Sawa
#// - ukeep-trans-ordervusort-trans-ordervǉ܂B
keep-trans-order				#//keep-trans-orderw肵Ă΁c
mapE	Init
	Init
		Tick	[`speed>=9`]	Run	#//KXNvgɋLq̒ʂɊi[B
		Tick	[`speed>=1`]	Walk	#//
		Tick			Stop	#//keep-trans-orderw肵ꍇAK[hJ(L)́AK[hLJ(L)ɏȂ΂ȂB
	end
	Stop; end  #//
	Walk; end  #//̏ԁB͑Oǉ@\łB
	Run;  end  #//
end
sort-trans-order				#//sort-trans-orderw肷Ƃ܂ł̓ɖ߂B
mapF	Init
	Init
		Tick	[`speed>=1`]	Walk	#//
		Tick			Stop	#//IɃ\[ĝŋLq͊֌WB('Mon Jun 29 21:48:11 JST 2015 Naoyuki Sawa'̃TvQƂĉB)
		Tick	[`speed>=9`]	Run	#//
	end
	Stop; end  #//
	Walk; end  #//̏ԁB͑Oǉ@\łB
	Run;  end  #//
end

#// * Fri Apr 20 23:59:59 JST 2018 Naoyuki Sawa
#// - ȑJڂ}~@ύX܂B
#//   ڍׂ́Awinapp.h̓̃RgQƂĉB
mapG	State1
	State1
		entry			{`puts("entry")`}
		exit			{`puts("exit")`}
		Trans1	[`Bullet>=1`]	{`puts("FIRE!")`}	State1!		#//ȑJڂłs܂B
	    #//	Trans2	[`Bullet>=1`]	{`puts("FIRE!")`}	State1		#//̋Lq̓G[łB炩ɎȑJڂł薳̂ŖӖłB
	end
	State2
		entry			{`puts("entry")`}
		exit			{`puts("exit")`}
	    #//	Trans1	[`Bullet>=1`]	{`puts("FIRE!")`}	State1!		#//̋Lq̓G[łB炩ɎȑJڂłȂ'!'t鎖ӖłB
	end
	Trans1		[`Bullet>=1`]	{`puts("FIRE!")`}	State1!		#//ȑJڂłĂs܂B
	Trans2		[`Bullet>=1`]	{`puts("FIRE!")`}	State1		#//ȑJڂȂΎs܂BȑJڂłȂΎs܂B
end

// * Sun Apr 22 23:59:59 JST 2018 Naoyuki Sawa
// - ֐ɃTtBbNX܂߂@ǉ܂B
#//   ڍׂ́Awinapp.h̓̃RgQƂĉB
mapH	State1
	State1
		Trans1	[_1]	{_1}	#//FsmFunc_mapH_State1_Trans1_guard_1 FsmFunc_mapH_State1_Trans1_act_1
		Trans1	[_2]	{_2}	#//FsmFunc_mapH_State1_Trans1_guard_2 FsmFunc_mapH_State1_Trans1_act_2
		Trans1	[_3]	{_3}	#//FsmFunc_mapH_State1_Trans1_guard_3 FsmFunc_mapH_State1_Trans1_act_3
		Trans1		{}	#//                                   FsmFunc_mapH_State1_Trans1_act
	end
end
