StringExpressions.c 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include "sc_types.h"
  4. #include "StringExpressions.h"
  5. /*! \file Implementation of the state machine 'StringExpressions'
  6. */
  7. /* prototypes of all internal functions */
  8. static sc_boolean stringExpressions_check_AssignmentCheckedtr0_tr0(const StringExpressions* handle);
  9. static sc_boolean stringExpressions_check_VarToVarCompareSucceededtr0_tr0(const StringExpressions* handle);
  10. static sc_boolean stringExpressions_check_VarToConstCompareSucceededtr0_tr0(const StringExpressions* handle);
  11. static sc_boolean stringExpressions_check_ConstToVarCompareSucceededtr0_tr0(const StringExpressions* handle);
  12. static sc_boolean stringExpressions_check__choice0_tr1_tr1(const StringExpressions* handle);
  13. static sc_boolean stringExpressions_check__choice0_tr0(const StringExpressions* handle);
  14. static sc_boolean stringExpressions_check__choice1_tr1_tr1(const StringExpressions* handle);
  15. static sc_boolean stringExpressions_check__choice1_tr0(const StringExpressions* handle);
  16. static sc_boolean stringExpressions_check__choice2_tr1_tr1(const StringExpressions* handle);
  17. static sc_boolean stringExpressions_check__choice2_tr0(const StringExpressions* handle);
  18. static sc_boolean stringExpressions_check__choice3_tr0_tr0(const StringExpressions* handle);
  19. static sc_boolean stringExpressions_check__choice3_tr1(const StringExpressions* handle);
  20. static sc_boolean stringExpressions_check__choice4_tr1_tr1(const StringExpressions* handle);
  21. static sc_boolean stringExpressions_check__choice4_tr0(const StringExpressions* handle);
  22. static sc_boolean stringExpressions_check__choice5_tr1_tr1(const StringExpressions* handle);
  23. static sc_boolean stringExpressions_check__choice5_tr0(const StringExpressions* handle);
  24. static sc_boolean stringExpressions_check__choice6_tr0(const StringExpressions* handle);
  25. static sc_boolean stringExpressions_check__choice7_tr0_tr0(const StringExpressions* handle);
  26. static sc_boolean stringExpressions_check__choice7_tr1(const StringExpressions* handle);
  27. static sc_boolean stringExpressions_check__choice8_tr1_tr1(const StringExpressions* handle);
  28. static sc_boolean stringExpressions_check__choice8_tr0(const StringExpressions* handle);
  29. static sc_boolean stringExpressions_check__choice9_tr1_tr1(const StringExpressions* handle);
  30. static sc_boolean stringExpressions_check__choice9_tr0(const StringExpressions* handle);
  31. static sc_boolean stringExpressions_check__choice10_tr0(const StringExpressions* handle);
  32. static sc_boolean stringExpressions_check__choice11_tr0_tr0(const StringExpressions* handle);
  33. static sc_boolean stringExpressions_check__choice11_tr1(const StringExpressions* handle);
  34. static sc_boolean stringExpressions_check__choice12_tr1_tr1(const StringExpressions* handle);
  35. static sc_boolean stringExpressions_check__choice12_tr0(const StringExpressions* handle);
  36. static sc_boolean stringExpressions_check__choice13_tr1_tr1(const StringExpressions* handle);
  37. static sc_boolean stringExpressions_check__choice13_tr0(const StringExpressions* handle);
  38. static sc_boolean stringExpressions_check__choice14_tr0(const StringExpressions* handle);
  39. static void stringExpressions_effect_AssignmentCheckedtr0(StringExpressions* handle);
  40. static void stringExpressions_effect_VarToVarCompareSucceededtr0(StringExpressions* handle);
  41. static void stringExpressions_effect_VarToConstCompareSucceededtr0(StringExpressions* handle);
  42. static void stringExpressions_effect_ConstToVarCompareSucceededtr0(StringExpressions* handle);
  43. static void stringExpressions_effect__choice0_tr1(StringExpressions* handle);
  44. static void stringExpressions_effect__choice0_tr0(StringExpressions* handle);
  45. static void stringExpressions_effect__choice1_tr1(StringExpressions* handle);
  46. static void stringExpressions_effect__choice1_tr0(StringExpressions* handle);
  47. static void stringExpressions_effect__choice2_tr1(StringExpressions* handle);
  48. static void stringExpressions_effect__choice2_tr0(StringExpressions* handle);
  49. static void stringExpressions_effect__choice3_tr0(StringExpressions* handle);
  50. static void stringExpressions_effect__choice3_tr1(StringExpressions* handle);
  51. static void stringExpressions_effect__choice4_tr1(StringExpressions* handle);
  52. static void stringExpressions_effect__choice4_tr0(StringExpressions* handle);
  53. static void stringExpressions_effect__choice5_tr1(StringExpressions* handle);
  54. static void stringExpressions_effect__choice5_tr0(StringExpressions* handle);
  55. static void stringExpressions_effect__choice6_tr0(StringExpressions* handle);
  56. static void stringExpressions_effect__choice7_tr0(StringExpressions* handle);
  57. static void stringExpressions_effect__choice7_tr1(StringExpressions* handle);
  58. static void stringExpressions_effect__choice8_tr1(StringExpressions* handle);
  59. static void stringExpressions_effect__choice8_tr0(StringExpressions* handle);
  60. static void stringExpressions_effect__choice9_tr1(StringExpressions* handle);
  61. static void stringExpressions_effect__choice9_tr0(StringExpressions* handle);
  62. static void stringExpressions_effect__choice10_tr0(StringExpressions* handle);
  63. static void stringExpressions_effect__choice11_tr0(StringExpressions* handle);
  64. static void stringExpressions_effect__choice11_tr1(StringExpressions* handle);
  65. static void stringExpressions_effect__choice12_tr1(StringExpressions* handle);
  66. static void stringExpressions_effect__choice12_tr0(StringExpressions* handle);
  67. static void stringExpressions_effect__choice13_tr1(StringExpressions* handle);
  68. static void stringExpressions_effect__choice13_tr0(StringExpressions* handle);
  69. static void stringExpressions_effect__choice14_tr0(StringExpressions* handle);
  70. static void stringExpressions_enact_AssignmentChecked(StringExpressions* handle);
  71. static void stringExpressions_enseq_AssignmentChecked_default(StringExpressions* handle);
  72. static void stringExpressions_enseq_Failed_default(StringExpressions* handle);
  73. static void stringExpressions_enseq_VarToVarCompareSucceeded_default(StringExpressions* handle);
  74. static void stringExpressions_enseq_VarToConstCompareSucceeded_default(StringExpressions* handle);
  75. static void stringExpressions_enseq_ConstToVarCompareSucceeded_default(StringExpressions* handle);
  76. static void stringExpressions_enseq_ConstToConstCompareSucceeded_default(StringExpressions* handle);
  77. static void stringExpressions_enseq_main_region_default(StringExpressions* handle);
  78. static void stringExpressions_exseq_AssignmentChecked(StringExpressions* handle);
  79. static void stringExpressions_exseq_Failed(StringExpressions* handle);
  80. static void stringExpressions_exseq_VarToVarCompareSucceeded(StringExpressions* handle);
  81. static void stringExpressions_exseq_VarToConstCompareSucceeded(StringExpressions* handle);
  82. static void stringExpressions_exseq_ConstToVarCompareSucceeded(StringExpressions* handle);
  83. static void stringExpressions_exseq_ConstToConstCompareSucceeded(StringExpressions* handle);
  84. static void stringExpressions_exseq_main_region(StringExpressions* handle);
  85. static void stringExpressions_react_AssignmentChecked(StringExpressions* handle);
  86. static void stringExpressions_react_Failed(StringExpressions* handle);
  87. static void stringExpressions_react_VarToVarCompareSucceeded(StringExpressions* handle);
  88. static void stringExpressions_react_VarToConstCompareSucceeded(StringExpressions* handle);
  89. static void stringExpressions_react_ConstToVarCompareSucceeded(StringExpressions* handle);
  90. static void stringExpressions_react_ConstToConstCompareSucceeded(StringExpressions* handle);
  91. static void stringExpressions_react__choice0_(StringExpressions* handle);
  92. static void stringExpressions_react__choice1_(StringExpressions* handle);
  93. static void stringExpressions_react__choice2_(StringExpressions* handle);
  94. static void stringExpressions_react__choice3_(StringExpressions* handle);
  95. static void stringExpressions_react__choice4_(StringExpressions* handle);
  96. static void stringExpressions_react__choice5_(StringExpressions* handle);
  97. static void stringExpressions_react__choice6_(StringExpressions* handle);
  98. static void stringExpressions_react__choice7_(StringExpressions* handle);
  99. static void stringExpressions_react__choice8_(StringExpressions* handle);
  100. static void stringExpressions_react__choice9_(StringExpressions* handle);
  101. static void stringExpressions_react__choice10_(StringExpressions* handle);
  102. static void stringExpressions_react__choice11_(StringExpressions* handle);
  103. static void stringExpressions_react__choice12_(StringExpressions* handle);
  104. static void stringExpressions_react__choice13_(StringExpressions* handle);
  105. static void stringExpressions_react__choice14_(StringExpressions* handle);
  106. static void stringExpressions_react_Main_region___entry_Default(StringExpressions* handle);
  107. static void stringExpressions_clearInEvents(StringExpressions* handle);
  108. static void stringExpressions_clearOutEvents(StringExpressions* handle);
  109. void stringExpressions_init(StringExpressions* handle)
  110. {
  111. sc_integer i;
  112. for (i = 0; i < STRINGEXPRESSIONS_MAX_ORTHOGONAL_STATES; ++i)
  113. {
  114. handle->stateConfVector[i] = StringExpressions_last_state;
  115. }
  116. handle->stateConfVectorPosition = 0;
  117. stringExpressions_clearInEvents(handle);
  118. stringExpressions_clearOutEvents(handle);
  119. /* Default init sequence for statechart StringExpressions */
  120. handle->iface.stringA = "A";
  121. handle->iface.stringA2 = "A";
  122. handle->iface.stringB = "B";
  123. handle->iface.quotedStringX = "\"X\"";
  124. handle->iface.quotedStringY = "\"Y\"";
  125. handle->iface.stringVarEqual = bool_false;
  126. handle->iface.stringVarNotEqual = bool_false;
  127. handle->iface.guardStringNotEqual = bool_false;
  128. handle->iface.guardStringEqual = bool_false;
  129. }
  130. void stringExpressions_enter(StringExpressions* handle)
  131. {
  132. /* Default enter sequence for statechart StringExpressions */
  133. stringExpressions_enseq_main_region_default(handle);
  134. }
  135. void stringExpressions_exit(StringExpressions* handle)
  136. {
  137. /* Default exit sequence for statechart StringExpressions */
  138. stringExpressions_exseq_main_region(handle);
  139. }
  140. sc_boolean stringExpressions_isActive(const StringExpressions* handle)
  141. {
  142. sc_boolean result = bool_false;
  143. int i;
  144. for(i = 0; i < STRINGEXPRESSIONS_MAX_ORTHOGONAL_STATES; i++)
  145. {
  146. result = result || handle->stateConfVector[i] != StringExpressions_last_state;
  147. }
  148. return result;
  149. }
  150. /*
  151. * Always returns 'false' since this state machine can never become final.
  152. */
  153. sc_boolean stringExpressions_isFinal(const StringExpressions* handle)
  154. {
  155. return bool_false;
  156. }
  157. static void stringExpressions_clearInEvents(StringExpressions* handle)
  158. {
  159. handle->iface.e_raised = bool_false;
  160. }
  161. static void stringExpressions_clearOutEvents(StringExpressions* handle)
  162. {
  163. }
  164. void stringExpressions_runCycle(StringExpressions* handle)
  165. {
  166. stringExpressions_clearOutEvents(handle);
  167. for (handle->stateConfVectorPosition = 0;
  168. handle->stateConfVectorPosition < STRINGEXPRESSIONS_MAX_ORTHOGONAL_STATES;
  169. handle->stateConfVectorPosition++)
  170. {
  171. switch (handle->stateConfVector[handle->stateConfVectorPosition])
  172. {
  173. case StringExpressions_AssignmentChecked :
  174. {
  175. stringExpressions_react_AssignmentChecked(handle);
  176. break;
  177. }
  178. case StringExpressions_Failed :
  179. {
  180. stringExpressions_react_Failed(handle);
  181. break;
  182. }
  183. case StringExpressions_VarToVarCompareSucceeded :
  184. {
  185. stringExpressions_react_VarToVarCompareSucceeded(handle);
  186. break;
  187. }
  188. case StringExpressions_VarToConstCompareSucceeded :
  189. {
  190. stringExpressions_react_VarToConstCompareSucceeded(handle);
  191. break;
  192. }
  193. case StringExpressions_ConstToVarCompareSucceeded :
  194. {
  195. stringExpressions_react_ConstToVarCompareSucceeded(handle);
  196. break;
  197. }
  198. case StringExpressions_ConstToConstCompareSucceeded :
  199. {
  200. stringExpressions_react_ConstToConstCompareSucceeded(handle);
  201. break;
  202. }
  203. default:
  204. break;
  205. }
  206. }
  207. stringExpressions_clearInEvents(handle);
  208. }
  209. sc_boolean stringExpressions_isStateActive(const StringExpressions* handle, StringExpressionsStates state)
  210. {
  211. sc_boolean result = bool_false;
  212. switch (state)
  213. {
  214. case StringExpressions_AssignmentChecked :
  215. result = (sc_boolean) (handle->stateConfVector[SCVI_STRINGEXPRESSIONS_ASSIGNMENTCHECKED] == StringExpressions_AssignmentChecked
  216. );
  217. break;
  218. case StringExpressions_Failed :
  219. result = (sc_boolean) (handle->stateConfVector[SCVI_STRINGEXPRESSIONS_FAILED] == StringExpressions_Failed
  220. );
  221. break;
  222. case StringExpressions_VarToVarCompareSucceeded :
  223. result = (sc_boolean) (handle->stateConfVector[SCVI_STRINGEXPRESSIONS_VARTOVARCOMPARESUCCEEDED] == StringExpressions_VarToVarCompareSucceeded
  224. );
  225. break;
  226. case StringExpressions_VarToConstCompareSucceeded :
  227. result = (sc_boolean) (handle->stateConfVector[SCVI_STRINGEXPRESSIONS_VARTOCONSTCOMPARESUCCEEDED] == StringExpressions_VarToConstCompareSucceeded
  228. );
  229. break;
  230. case StringExpressions_ConstToVarCompareSucceeded :
  231. result = (sc_boolean) (handle->stateConfVector[SCVI_STRINGEXPRESSIONS_CONSTTOVARCOMPARESUCCEEDED] == StringExpressions_ConstToVarCompareSucceeded
  232. );
  233. break;
  234. case StringExpressions_ConstToConstCompareSucceeded :
  235. result = (sc_boolean) (handle->stateConfVector[SCVI_STRINGEXPRESSIONS_CONSTTOCONSTCOMPARESUCCEEDED] == StringExpressions_ConstToConstCompareSucceeded
  236. );
  237. break;
  238. default:
  239. result = bool_false;
  240. break;
  241. }
  242. return result;
  243. }
  244. void stringExpressionsIface_raise_e(StringExpressions* handle)
  245. {
  246. handle->iface.e_raised = bool_true;
  247. }
  248. sc_string stringExpressionsIface_get_stringA(const StringExpressions* handle)
  249. {
  250. return handle->iface.stringA;
  251. }
  252. void stringExpressionsIface_set_stringA(StringExpressions* handle, sc_string value)
  253. {
  254. handle->iface.stringA = value;
  255. }
  256. sc_string stringExpressionsIface_get_stringA2(const StringExpressions* handle)
  257. {
  258. return handle->iface.stringA2;
  259. }
  260. void stringExpressionsIface_set_stringA2(StringExpressions* handle, sc_string value)
  261. {
  262. handle->iface.stringA2 = value;
  263. }
  264. sc_string stringExpressionsIface_get_stringB(const StringExpressions* handle)
  265. {
  266. return handle->iface.stringB;
  267. }
  268. void stringExpressionsIface_set_stringB(StringExpressions* handle, sc_string value)
  269. {
  270. handle->iface.stringB = value;
  271. }
  272. sc_string stringExpressionsIface_get_quotedStringX(const StringExpressions* handle)
  273. {
  274. return handle->iface.quotedStringX;
  275. }
  276. void stringExpressionsIface_set_quotedStringX(StringExpressions* handle, sc_string value)
  277. {
  278. handle->iface.quotedStringX = value;
  279. }
  280. sc_string stringExpressionsIface_get_quotedStringY(const StringExpressions* handle)
  281. {
  282. return handle->iface.quotedStringY;
  283. }
  284. void stringExpressionsIface_set_quotedStringY(StringExpressions* handle, sc_string value)
  285. {
  286. handle->iface.quotedStringY = value;
  287. }
  288. sc_boolean stringExpressionsIface_get_stringVarEqual(const StringExpressions* handle)
  289. {
  290. return handle->iface.stringVarEqual;
  291. }
  292. void stringExpressionsIface_set_stringVarEqual(StringExpressions* handle, sc_boolean value)
  293. {
  294. handle->iface.stringVarEqual = value;
  295. }
  296. sc_boolean stringExpressionsIface_get_stringVarNotEqual(const StringExpressions* handle)
  297. {
  298. return handle->iface.stringVarNotEqual;
  299. }
  300. void stringExpressionsIface_set_stringVarNotEqual(StringExpressions* handle, sc_boolean value)
  301. {
  302. handle->iface.stringVarNotEqual = value;
  303. }
  304. sc_boolean stringExpressionsIface_get_guardStringNotEqual(const StringExpressions* handle)
  305. {
  306. return handle->iface.guardStringNotEqual;
  307. }
  308. void stringExpressionsIface_set_guardStringNotEqual(StringExpressions* handle, sc_boolean value)
  309. {
  310. handle->iface.guardStringNotEqual = value;
  311. }
  312. sc_boolean stringExpressionsIface_get_guardStringEqual(const StringExpressions* handle)
  313. {
  314. return handle->iface.guardStringEqual;
  315. }
  316. void stringExpressionsIface_set_guardStringEqual(StringExpressions* handle, sc_boolean value)
  317. {
  318. handle->iface.guardStringEqual = value;
  319. }
  320. /* implementations of all internal functions */
  321. static sc_boolean stringExpressions_check_AssignmentCheckedtr0_tr0(const StringExpressions* handle)
  322. {
  323. return handle->iface.e_raised;
  324. }
  325. static sc_boolean stringExpressions_check_VarToVarCompareSucceededtr0_tr0(const StringExpressions* handle)
  326. {
  327. return handle->iface.e_raised;
  328. }
  329. static sc_boolean stringExpressions_check_VarToConstCompareSucceededtr0_tr0(const StringExpressions* handle)
  330. {
  331. return handle->iface.e_raised;
  332. }
  333. static sc_boolean stringExpressions_check_ConstToVarCompareSucceededtr0_tr0(const StringExpressions* handle)
  334. {
  335. return handle->iface.e_raised;
  336. }
  337. static sc_boolean stringExpressions_check__choice0_tr1_tr1(const StringExpressions* handle)
  338. {
  339. return handle->iface.e_raised;
  340. }
  341. static sc_boolean stringExpressions_check__choice0_tr0(const StringExpressions* handle)
  342. {
  343. return bool_true;
  344. }
  345. static sc_boolean stringExpressions_check__choice1_tr1_tr1(const StringExpressions* handle)
  346. {
  347. return ((handle->iface.e_raised) && ((strcmp(handle->iface.stringA, handle->iface.stringA2) == 0)
  348. )) ? bool_true : bool_false;
  349. }
  350. static sc_boolean stringExpressions_check__choice1_tr0(const StringExpressions* handle)
  351. {
  352. return bool_true;
  353. }
  354. static sc_boolean stringExpressions_check__choice2_tr1_tr1(const StringExpressions* handle)
  355. {
  356. return ((handle->iface.e_raised) && ((strcmp(handle->iface.stringA, handle->iface.stringB) != 0)
  357. )) ? bool_true : bool_false;
  358. }
  359. static sc_boolean stringExpressions_check__choice2_tr0(const StringExpressions* handle)
  360. {
  361. return bool_true;
  362. }
  363. static sc_boolean stringExpressions_check__choice3_tr0_tr0(const StringExpressions* handle)
  364. {
  365. return handle->iface.e_raised;
  366. }
  367. static sc_boolean stringExpressions_check__choice3_tr1(const StringExpressions* handle)
  368. {
  369. return bool_true;
  370. }
  371. static sc_boolean stringExpressions_check__choice4_tr1_tr1(const StringExpressions* handle)
  372. {
  373. return ((handle->iface.e_raised) && ((strcmp(handle->iface.stringA, "A") == 0)
  374. )) ? bool_true : bool_false;
  375. }
  376. static sc_boolean stringExpressions_check__choice4_tr0(const StringExpressions* handle)
  377. {
  378. return bool_true;
  379. }
  380. static sc_boolean stringExpressions_check__choice5_tr1_tr1(const StringExpressions* handle)
  381. {
  382. return ((handle->iface.e_raised) && ((strcmp(handle->iface.stringA, "B") != 0)
  383. )) ? bool_true : bool_false;
  384. }
  385. static sc_boolean stringExpressions_check__choice5_tr0(const StringExpressions* handle)
  386. {
  387. return bool_true;
  388. }
  389. static sc_boolean stringExpressions_check__choice6_tr0(const StringExpressions* handle)
  390. {
  391. return bool_true;
  392. }
  393. static sc_boolean stringExpressions_check__choice7_tr0_tr0(const StringExpressions* handle)
  394. {
  395. return handle->iface.e_raised;
  396. }
  397. static sc_boolean stringExpressions_check__choice7_tr1(const StringExpressions* handle)
  398. {
  399. return bool_true;
  400. }
  401. static sc_boolean stringExpressions_check__choice8_tr1_tr1(const StringExpressions* handle)
  402. {
  403. return ((handle->iface.e_raised) && ((strcmp("A", handle->iface.stringA) == 0)
  404. )) ? bool_true : bool_false;
  405. }
  406. static sc_boolean stringExpressions_check__choice8_tr0(const StringExpressions* handle)
  407. {
  408. return bool_true;
  409. }
  410. static sc_boolean stringExpressions_check__choice9_tr1_tr1(const StringExpressions* handle)
  411. {
  412. return ((handle->iface.e_raised) && ((strcmp("A", handle->iface.stringB) != 0)
  413. )) ? bool_true : bool_false;
  414. }
  415. static sc_boolean stringExpressions_check__choice9_tr0(const StringExpressions* handle)
  416. {
  417. return bool_true;
  418. }
  419. static sc_boolean stringExpressions_check__choice10_tr0(const StringExpressions* handle)
  420. {
  421. return bool_true;
  422. }
  423. static sc_boolean stringExpressions_check__choice11_tr0_tr0(const StringExpressions* handle)
  424. {
  425. return handle->iface.e_raised;
  426. }
  427. static sc_boolean stringExpressions_check__choice11_tr1(const StringExpressions* handle)
  428. {
  429. return bool_true;
  430. }
  431. static sc_boolean stringExpressions_check__choice12_tr1_tr1(const StringExpressions* handle)
  432. {
  433. return ((handle->iface.e_raised) && ((strcmp("A", "A") == 0)
  434. )) ? bool_true : bool_false;
  435. }
  436. static sc_boolean stringExpressions_check__choice12_tr0(const StringExpressions* handle)
  437. {
  438. return bool_true;
  439. }
  440. static sc_boolean stringExpressions_check__choice13_tr1_tr1(const StringExpressions* handle)
  441. {
  442. return ((handle->iface.e_raised) && ((strcmp("A", "B") != 0)
  443. )) ? bool_true : bool_false;
  444. }
  445. static sc_boolean stringExpressions_check__choice13_tr0(const StringExpressions* handle)
  446. {
  447. return bool_true;
  448. }
  449. static sc_boolean stringExpressions_check__choice14_tr0(const StringExpressions* handle)
  450. {
  451. return bool_true;
  452. }
  453. static void stringExpressions_effect_AssignmentCheckedtr0(StringExpressions* handle)
  454. {
  455. stringExpressions_exseq_AssignmentChecked(handle);
  456. handle->iface.stringVarEqual = (strcmp(handle->iface.stringA, handle->iface.stringA2) == 0)
  457. ;
  458. stringExpressions_react__choice0_(handle);
  459. }
  460. static void stringExpressions_effect_VarToVarCompareSucceededtr0(StringExpressions* handle)
  461. {
  462. stringExpressions_exseq_VarToVarCompareSucceeded(handle);
  463. handle->iface.stringVarEqual = (strcmp(handle->iface.stringA, "A") == 0)
  464. ;
  465. stringExpressions_react__choice3_(handle);
  466. }
  467. static void stringExpressions_effect_VarToConstCompareSucceededtr0(StringExpressions* handle)
  468. {
  469. stringExpressions_exseq_VarToConstCompareSucceeded(handle);
  470. handle->iface.stringVarEqual = (strcmp("A", handle->iface.stringA) == 0)
  471. ;
  472. stringExpressions_react__choice7_(handle);
  473. }
  474. static void stringExpressions_effect_ConstToVarCompareSucceededtr0(StringExpressions* handle)
  475. {
  476. stringExpressions_exseq_ConstToVarCompareSucceeded(handle);
  477. handle->iface.stringVarEqual = (strcmp("A", "A") == 0)
  478. ;
  479. stringExpressions_react__choice11_(handle);
  480. }
  481. static void stringExpressions_effect__choice0_tr1(StringExpressions* handle)
  482. {
  483. handle->iface.stringVarNotEqual = (strcmp(handle->iface.stringA, handle->iface.stringB) != 0)
  484. ;
  485. stringExpressions_react__choice1_(handle);
  486. }
  487. static void stringExpressions_effect__choice0_tr0(StringExpressions* handle)
  488. {
  489. stringExpressions_enseq_Failed_default(handle);
  490. }
  491. static void stringExpressions_effect__choice1_tr1(StringExpressions* handle)
  492. {
  493. handle->iface.guardStringEqual = (strcmp(handle->iface.stringA, handle->iface.stringA2) == 0)
  494. ;
  495. stringExpressions_react__choice2_(handle);
  496. }
  497. static void stringExpressions_effect__choice1_tr0(StringExpressions* handle)
  498. {
  499. stringExpressions_enseq_Failed_default(handle);
  500. }
  501. static void stringExpressions_effect__choice2_tr1(StringExpressions* handle)
  502. {
  503. handle->iface.guardStringNotEqual = (strcmp(handle->iface.stringA, handle->iface.stringB) != 0)
  504. ;
  505. stringExpressions_enseq_VarToVarCompareSucceeded_default(handle);
  506. }
  507. static void stringExpressions_effect__choice2_tr0(StringExpressions* handle)
  508. {
  509. stringExpressions_enseq_Failed_default(handle);
  510. }
  511. static void stringExpressions_effect__choice3_tr0(StringExpressions* handle)
  512. {
  513. handle->iface.stringVarNotEqual = (strcmp(handle->iface.stringA, "B") != 0)
  514. ;
  515. stringExpressions_react__choice4_(handle);
  516. }
  517. static void stringExpressions_effect__choice3_tr1(StringExpressions* handle)
  518. {
  519. stringExpressions_react__choice6_(handle);
  520. }
  521. static void stringExpressions_effect__choice4_tr1(StringExpressions* handle)
  522. {
  523. handle->iface.guardStringEqual = (strcmp(handle->iface.stringA, "A") == 0)
  524. ;
  525. stringExpressions_react__choice5_(handle);
  526. }
  527. static void stringExpressions_effect__choice4_tr0(StringExpressions* handle)
  528. {
  529. stringExpressions_react__choice6_(handle);
  530. }
  531. static void stringExpressions_effect__choice5_tr1(StringExpressions* handle)
  532. {
  533. handle->iface.guardStringNotEqual = (strcmp(handle->iface.stringA, "B") != 0)
  534. ;
  535. stringExpressions_enseq_VarToConstCompareSucceeded_default(handle);
  536. }
  537. static void stringExpressions_effect__choice5_tr0(StringExpressions* handle)
  538. {
  539. stringExpressions_react__choice6_(handle);
  540. }
  541. static void stringExpressions_effect__choice6_tr0(StringExpressions* handle)
  542. {
  543. stringExpressions_enseq_Failed_default(handle);
  544. }
  545. static void stringExpressions_effect__choice7_tr0(StringExpressions* handle)
  546. {
  547. handle->iface.stringVarNotEqual = (strcmp("A", handle->iface.stringB) != 0)
  548. ;
  549. stringExpressions_react__choice8_(handle);
  550. }
  551. static void stringExpressions_effect__choice7_tr1(StringExpressions* handle)
  552. {
  553. stringExpressions_react__choice10_(handle);
  554. }
  555. static void stringExpressions_effect__choice8_tr1(StringExpressions* handle)
  556. {
  557. handle->iface.guardStringEqual = (strcmp("A", handle->iface.stringA) == 0)
  558. ;
  559. stringExpressions_react__choice9_(handle);
  560. }
  561. static void stringExpressions_effect__choice8_tr0(StringExpressions* handle)
  562. {
  563. stringExpressions_react__choice10_(handle);
  564. }
  565. static void stringExpressions_effect__choice9_tr1(StringExpressions* handle)
  566. {
  567. handle->iface.guardStringNotEqual = (strcmp("A", handle->iface.stringB) != 0)
  568. ;
  569. stringExpressions_enseq_ConstToVarCompareSucceeded_default(handle);
  570. }
  571. static void stringExpressions_effect__choice9_tr0(StringExpressions* handle)
  572. {
  573. stringExpressions_react__choice10_(handle);
  574. }
  575. static void stringExpressions_effect__choice10_tr0(StringExpressions* handle)
  576. {
  577. stringExpressions_react__choice6_(handle);
  578. }
  579. static void stringExpressions_effect__choice11_tr0(StringExpressions* handle)
  580. {
  581. handle->iface.stringVarNotEqual = (strcmp("A", "B") != 0)
  582. ;
  583. stringExpressions_react__choice12_(handle);
  584. }
  585. static void stringExpressions_effect__choice11_tr1(StringExpressions* handle)
  586. {
  587. stringExpressions_react__choice14_(handle);
  588. }
  589. static void stringExpressions_effect__choice12_tr1(StringExpressions* handle)
  590. {
  591. handle->iface.guardStringEqual = (strcmp("A", "A") == 0)
  592. ;
  593. stringExpressions_react__choice13_(handle);
  594. }
  595. static void stringExpressions_effect__choice12_tr0(StringExpressions* handle)
  596. {
  597. stringExpressions_react__choice14_(handle);
  598. }
  599. static void stringExpressions_effect__choice13_tr1(StringExpressions* handle)
  600. {
  601. handle->iface.guardStringNotEqual = (strcmp("A", "B") != 0)
  602. ;
  603. stringExpressions_enseq_ConstToConstCompareSucceeded_default(handle);
  604. }
  605. static void stringExpressions_effect__choice13_tr0(StringExpressions* handle)
  606. {
  607. stringExpressions_react__choice14_(handle);
  608. }
  609. static void stringExpressions_effect__choice14_tr0(StringExpressions* handle)
  610. {
  611. stringExpressions_react__choice10_(handle);
  612. }
  613. /* Entry action for state 'AssignmentChecked'. */
  614. static void stringExpressions_enact_AssignmentChecked(StringExpressions* handle)
  615. {
  616. /* Entry action for state 'AssignmentChecked'. */
  617. handle->iface.stringVarNotEqual = !(strcmp(handle->iface.stringA, handle->iface.stringB) == 0)
  618. ;
  619. handle->iface.stringVarEqual = !(strcmp(handle->iface.stringA, handle->iface.stringA2) != 0)
  620. ;
  621. }
  622. /* 'default' enter sequence for state AssignmentChecked */
  623. static void stringExpressions_enseq_AssignmentChecked_default(StringExpressions* handle)
  624. {
  625. /* 'default' enter sequence for state AssignmentChecked */
  626. stringExpressions_enact_AssignmentChecked(handle);
  627. handle->stateConfVector[0] = StringExpressions_AssignmentChecked;
  628. handle->stateConfVectorPosition = 0;
  629. }
  630. /* 'default' enter sequence for state Failed */
  631. static void stringExpressions_enseq_Failed_default(StringExpressions* handle)
  632. {
  633. /* 'default' enter sequence for state Failed */
  634. handle->stateConfVector[0] = StringExpressions_Failed;
  635. handle->stateConfVectorPosition = 0;
  636. }
  637. /* 'default' enter sequence for state VarToVarCompareSucceeded */
  638. static void stringExpressions_enseq_VarToVarCompareSucceeded_default(StringExpressions* handle)
  639. {
  640. /* 'default' enter sequence for state VarToVarCompareSucceeded */
  641. handle->stateConfVector[0] = StringExpressions_VarToVarCompareSucceeded;
  642. handle->stateConfVectorPosition = 0;
  643. }
  644. /* 'default' enter sequence for state VarToConstCompareSucceeded */
  645. static void stringExpressions_enseq_VarToConstCompareSucceeded_default(StringExpressions* handle)
  646. {
  647. /* 'default' enter sequence for state VarToConstCompareSucceeded */
  648. handle->stateConfVector[0] = StringExpressions_VarToConstCompareSucceeded;
  649. handle->stateConfVectorPosition = 0;
  650. }
  651. /* 'default' enter sequence for state ConstToVarCompareSucceeded */
  652. static void stringExpressions_enseq_ConstToVarCompareSucceeded_default(StringExpressions* handle)
  653. {
  654. /* 'default' enter sequence for state ConstToVarCompareSucceeded */
  655. handle->stateConfVector[0] = StringExpressions_ConstToVarCompareSucceeded;
  656. handle->stateConfVectorPosition = 0;
  657. }
  658. /* 'default' enter sequence for state ConstToConstCompareSucceeded */
  659. static void stringExpressions_enseq_ConstToConstCompareSucceeded_default(StringExpressions* handle)
  660. {
  661. /* 'default' enter sequence for state ConstToConstCompareSucceeded */
  662. handle->stateConfVector[0] = StringExpressions_ConstToConstCompareSucceeded;
  663. handle->stateConfVectorPosition = 0;
  664. }
  665. /* 'default' enter sequence for region main region */
  666. static void stringExpressions_enseq_main_region_default(StringExpressions* handle)
  667. {
  668. /* 'default' enter sequence for region main region */
  669. stringExpressions_react_Main_region___entry_Default(handle);
  670. }
  671. /* Default exit sequence for state AssignmentChecked */
  672. static void stringExpressions_exseq_AssignmentChecked(StringExpressions* handle)
  673. {
  674. /* Default exit sequence for state AssignmentChecked */
  675. handle->stateConfVector[0] = StringExpressions_last_state;
  676. handle->stateConfVectorPosition = 0;
  677. }
  678. /* Default exit sequence for state Failed */
  679. static void stringExpressions_exseq_Failed(StringExpressions* handle)
  680. {
  681. /* Default exit sequence for state Failed */
  682. handle->stateConfVector[0] = StringExpressions_last_state;
  683. handle->stateConfVectorPosition = 0;
  684. }
  685. /* Default exit sequence for state VarToVarCompareSucceeded */
  686. static void stringExpressions_exseq_VarToVarCompareSucceeded(StringExpressions* handle)
  687. {
  688. /* Default exit sequence for state VarToVarCompareSucceeded */
  689. handle->stateConfVector[0] = StringExpressions_last_state;
  690. handle->stateConfVectorPosition = 0;
  691. }
  692. /* Default exit sequence for state VarToConstCompareSucceeded */
  693. static void stringExpressions_exseq_VarToConstCompareSucceeded(StringExpressions* handle)
  694. {
  695. /* Default exit sequence for state VarToConstCompareSucceeded */
  696. handle->stateConfVector[0] = StringExpressions_last_state;
  697. handle->stateConfVectorPosition = 0;
  698. }
  699. /* Default exit sequence for state ConstToVarCompareSucceeded */
  700. static void stringExpressions_exseq_ConstToVarCompareSucceeded(StringExpressions* handle)
  701. {
  702. /* Default exit sequence for state ConstToVarCompareSucceeded */
  703. handle->stateConfVector[0] = StringExpressions_last_state;
  704. handle->stateConfVectorPosition = 0;
  705. }
  706. /* Default exit sequence for state ConstToConstCompareSucceeded */
  707. static void stringExpressions_exseq_ConstToConstCompareSucceeded(StringExpressions* handle)
  708. {
  709. /* Default exit sequence for state ConstToConstCompareSucceeded */
  710. handle->stateConfVector[0] = StringExpressions_last_state;
  711. handle->stateConfVectorPosition = 0;
  712. }
  713. /* Default exit sequence for region main region */
  714. static void stringExpressions_exseq_main_region(StringExpressions* handle)
  715. {
  716. /* Default exit sequence for region main region */
  717. /* Handle exit of all possible states (of StringExpressions.main_region) at position 0... */
  718. switch(handle->stateConfVector[ 0 ])
  719. {
  720. case StringExpressions_AssignmentChecked :
  721. {
  722. stringExpressions_exseq_AssignmentChecked(handle);
  723. break;
  724. }
  725. case StringExpressions_Failed :
  726. {
  727. stringExpressions_exseq_Failed(handle);
  728. break;
  729. }
  730. case StringExpressions_VarToVarCompareSucceeded :
  731. {
  732. stringExpressions_exseq_VarToVarCompareSucceeded(handle);
  733. break;
  734. }
  735. case StringExpressions_VarToConstCompareSucceeded :
  736. {
  737. stringExpressions_exseq_VarToConstCompareSucceeded(handle);
  738. break;
  739. }
  740. case StringExpressions_ConstToVarCompareSucceeded :
  741. {
  742. stringExpressions_exseq_ConstToVarCompareSucceeded(handle);
  743. break;
  744. }
  745. case StringExpressions_ConstToConstCompareSucceeded :
  746. {
  747. stringExpressions_exseq_ConstToConstCompareSucceeded(handle);
  748. break;
  749. }
  750. default: break;
  751. }
  752. }
  753. /* The reactions of state AssignmentChecked. */
  754. static void stringExpressions_react_AssignmentChecked(StringExpressions* handle)
  755. {
  756. /* The reactions of state AssignmentChecked. */
  757. if (stringExpressions_check_AssignmentCheckedtr0_tr0(handle) == bool_true)
  758. {
  759. stringExpressions_effect_AssignmentCheckedtr0(handle);
  760. }
  761. }
  762. /* The reactions of state Failed. */
  763. static void stringExpressions_react_Failed(StringExpressions* handle)
  764. {
  765. /* The reactions of state Failed. */
  766. }
  767. /* The reactions of state VarToVarCompareSucceeded. */
  768. static void stringExpressions_react_VarToVarCompareSucceeded(StringExpressions* handle)
  769. {
  770. /* The reactions of state VarToVarCompareSucceeded. */
  771. if (stringExpressions_check_VarToVarCompareSucceededtr0_tr0(handle) == bool_true)
  772. {
  773. stringExpressions_effect_VarToVarCompareSucceededtr0(handle);
  774. }
  775. }
  776. /* The reactions of state VarToConstCompareSucceeded. */
  777. static void stringExpressions_react_VarToConstCompareSucceeded(StringExpressions* handle)
  778. {
  779. /* The reactions of state VarToConstCompareSucceeded. */
  780. if (stringExpressions_check_VarToConstCompareSucceededtr0_tr0(handle) == bool_true)
  781. {
  782. stringExpressions_effect_VarToConstCompareSucceededtr0(handle);
  783. }
  784. }
  785. /* The reactions of state ConstToVarCompareSucceeded. */
  786. static void stringExpressions_react_ConstToVarCompareSucceeded(StringExpressions* handle)
  787. {
  788. /* The reactions of state ConstToVarCompareSucceeded. */
  789. if (stringExpressions_check_ConstToVarCompareSucceededtr0_tr0(handle) == bool_true)
  790. {
  791. stringExpressions_effect_ConstToVarCompareSucceededtr0(handle);
  792. }
  793. }
  794. /* The reactions of state ConstToConstCompareSucceeded. */
  795. static void stringExpressions_react_ConstToConstCompareSucceeded(StringExpressions* handle)
  796. {
  797. /* The reactions of state ConstToConstCompareSucceeded. */
  798. }
  799. /* The reactions of state null. */
  800. static void stringExpressions_react__choice0_(StringExpressions* handle)
  801. {
  802. /* The reactions of state null. */
  803. if (stringExpressions_check__choice0_tr1_tr1(handle) == bool_true)
  804. {
  805. stringExpressions_effect__choice0_tr1(handle);
  806. } else
  807. {
  808. stringExpressions_effect__choice0_tr0(handle);
  809. }
  810. }
  811. /* The reactions of state null. */
  812. static void stringExpressions_react__choice1_(StringExpressions* handle)
  813. {
  814. /* The reactions of state null. */
  815. if (stringExpressions_check__choice1_tr1_tr1(handle) == bool_true)
  816. {
  817. stringExpressions_effect__choice1_tr1(handle);
  818. } else
  819. {
  820. stringExpressions_effect__choice1_tr0(handle);
  821. }
  822. }
  823. /* The reactions of state null. */
  824. static void stringExpressions_react__choice2_(StringExpressions* handle)
  825. {
  826. /* The reactions of state null. */
  827. if (stringExpressions_check__choice2_tr1_tr1(handle) == bool_true)
  828. {
  829. stringExpressions_effect__choice2_tr1(handle);
  830. } else
  831. {
  832. stringExpressions_effect__choice2_tr0(handle);
  833. }
  834. }
  835. /* The reactions of state null. */
  836. static void stringExpressions_react__choice3_(StringExpressions* handle)
  837. {
  838. /* The reactions of state null. */
  839. if (stringExpressions_check__choice3_tr0_tr0(handle) == bool_true)
  840. {
  841. stringExpressions_effect__choice3_tr0(handle);
  842. } else
  843. {
  844. stringExpressions_effect__choice3_tr1(handle);
  845. }
  846. }
  847. /* The reactions of state null. */
  848. static void stringExpressions_react__choice4_(StringExpressions* handle)
  849. {
  850. /* The reactions of state null. */
  851. if (stringExpressions_check__choice4_tr1_tr1(handle) == bool_true)
  852. {
  853. stringExpressions_effect__choice4_tr1(handle);
  854. } else
  855. {
  856. stringExpressions_effect__choice4_tr0(handle);
  857. }
  858. }
  859. /* The reactions of state null. */
  860. static void stringExpressions_react__choice5_(StringExpressions* handle)
  861. {
  862. /* The reactions of state null. */
  863. if (stringExpressions_check__choice5_tr1_tr1(handle) == bool_true)
  864. {
  865. stringExpressions_effect__choice5_tr1(handle);
  866. } else
  867. {
  868. stringExpressions_effect__choice5_tr0(handle);
  869. }
  870. }
  871. /* The reactions of state null. */
  872. static void stringExpressions_react__choice6_(StringExpressions* handle)
  873. {
  874. /* The reactions of state null. */
  875. stringExpressions_effect__choice6_tr0(handle);
  876. }
  877. /* The reactions of state null. */
  878. static void stringExpressions_react__choice7_(StringExpressions* handle)
  879. {
  880. /* The reactions of state null. */
  881. if (stringExpressions_check__choice7_tr0_tr0(handle) == bool_true)
  882. {
  883. stringExpressions_effect__choice7_tr0(handle);
  884. } else
  885. {
  886. stringExpressions_effect__choice7_tr1(handle);
  887. }
  888. }
  889. /* The reactions of state null. */
  890. static void stringExpressions_react__choice8_(StringExpressions* handle)
  891. {
  892. /* The reactions of state null. */
  893. if (stringExpressions_check__choice8_tr1_tr1(handle) == bool_true)
  894. {
  895. stringExpressions_effect__choice8_tr1(handle);
  896. } else
  897. {
  898. stringExpressions_effect__choice8_tr0(handle);
  899. }
  900. }
  901. /* The reactions of state null. */
  902. static void stringExpressions_react__choice9_(StringExpressions* handle)
  903. {
  904. /* The reactions of state null. */
  905. if (stringExpressions_check__choice9_tr1_tr1(handle) == bool_true)
  906. {
  907. stringExpressions_effect__choice9_tr1(handle);
  908. } else
  909. {
  910. stringExpressions_effect__choice9_tr0(handle);
  911. }
  912. }
  913. /* The reactions of state null. */
  914. static void stringExpressions_react__choice10_(StringExpressions* handle)
  915. {
  916. /* The reactions of state null. */
  917. stringExpressions_effect__choice10_tr0(handle);
  918. }
  919. /* The reactions of state null. */
  920. static void stringExpressions_react__choice11_(StringExpressions* handle)
  921. {
  922. /* The reactions of state null. */
  923. if (stringExpressions_check__choice11_tr0_tr0(handle) == bool_true)
  924. {
  925. stringExpressions_effect__choice11_tr0(handle);
  926. } else
  927. {
  928. stringExpressions_effect__choice11_tr1(handle);
  929. }
  930. }
  931. /* The reactions of state null. */
  932. static void stringExpressions_react__choice12_(StringExpressions* handle)
  933. {
  934. /* The reactions of state null. */
  935. if (stringExpressions_check__choice12_tr1_tr1(handle) == bool_true)
  936. {
  937. stringExpressions_effect__choice12_tr1(handle);
  938. } else
  939. {
  940. stringExpressions_effect__choice12_tr0(handle);
  941. }
  942. }
  943. /* The reactions of state null. */
  944. static void stringExpressions_react__choice13_(StringExpressions* handle)
  945. {
  946. /* The reactions of state null. */
  947. if (stringExpressions_check__choice13_tr1_tr1(handle) == bool_true)
  948. {
  949. stringExpressions_effect__choice13_tr1(handle);
  950. } else
  951. {
  952. stringExpressions_effect__choice13_tr0(handle);
  953. }
  954. }
  955. /* The reactions of state null. */
  956. static void stringExpressions_react__choice14_(StringExpressions* handle)
  957. {
  958. /* The reactions of state null. */
  959. stringExpressions_effect__choice14_tr0(handle);
  960. }
  961. /* Default react sequence for initial entry */
  962. static void stringExpressions_react_Main_region___entry_Default(StringExpressions* handle)
  963. {
  964. /* Default react sequence for initial entry */
  965. stringExpressions_enseq_AssignmentChecked_default(handle);
  966. }