CKeywords.cpp 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985
  1. #include "CKeywords.h"
  2. #include <string.h>
  3. /*! \file Implementation of the state machine 'CKeywords'
  4. */
  5. CKeywords::CKeywords()
  6. {
  7. for (int i = 0; i < maxHistoryStates; ++i)
  8. historyVector[i] = CKeywords_last_state;
  9. stateConfVectorPosition = 0;
  10. }
  11. CKeywords::~CKeywords()
  12. {
  13. }
  14. void CKeywords::init()
  15. {
  16. for (int i = 0; i < maxOrthogonalStates; ++i)
  17. stateConfVector[i] = CKeywords_last_state;
  18. for (int i = 0; i < maxHistoryStates; ++i)
  19. historyVector[i] = CKeywords_last_state;
  20. stateConfVectorPosition = 0;
  21. clearInEvents();
  22. clearOutEvents();
  23. /* Default init sequence for statechart CKeywords */
  24. iface.case_ID = false;
  25. iface.do_ID = 0;
  26. iface.continue_ID = false;
  27. iface.double_ID = false;
  28. iface.enum_ID = false;
  29. iface.extern_ID = false;
  30. iface.float_ID = false;
  31. iface.for_ID = false;
  32. iface.goto_ID = false;
  33. iface.if_ID = false;
  34. iface.int_ID = false;
  35. iface.long_ID = false;
  36. iface.register_ID = false;
  37. iface.return_ID = false;
  38. iface.short_ID = false;
  39. iface.signed_ID = false;
  40. iface.sizeof_ID = false;
  41. iface.static_ID = false;
  42. iface.struct_ID = false;
  43. iface.switch_ID = false;
  44. iface.typedef_ID = false;
  45. iface.union_ID = false;
  46. iface.unsigned_ID = false;
  47. iface.void_ID = false;
  48. iface.volatile_ID = false;
  49. iface.while_ID = false;
  50. }
  51. void CKeywords::enter()
  52. {
  53. /* Default enter sequence for statechart CKeywords */
  54. enseq_auto_default();
  55. }
  56. void CKeywords::exit()
  57. {
  58. /* Default exit sequence for statechart CKeywords */
  59. exseq_auto();
  60. }
  61. sc_boolean CKeywords::isActive() const
  62. {
  63. return stateConfVector[0] != CKeywords_last_state;
  64. }
  65. /*
  66. * Always returns 'false' since this state machine can never become final.
  67. */
  68. sc_boolean CKeywords::isFinal() const
  69. {
  70. return false;}
  71. void CKeywords::runCycle()
  72. {
  73. clearOutEvents();
  74. for (stateConfVectorPosition = 0;
  75. stateConfVectorPosition < maxOrthogonalStates;
  76. stateConfVectorPosition++)
  77. {
  78. switch (stateConfVector[stateConfVectorPosition])
  79. {
  80. case auto_char :
  81. {
  82. react_auto_char();
  83. break;
  84. }
  85. case auto_loop_switch_case_enum_asm :
  86. {
  87. react_auto_loop_switch_case_enum_asm();
  88. break;
  89. }
  90. default:
  91. break;
  92. }
  93. }
  94. clearInEvents();
  95. }
  96. void CKeywords::clearInEvents()
  97. {
  98. iface.auto_raised = false;
  99. iface.break_raised = false;
  100. }
  101. void CKeywords::clearOutEvents()
  102. {
  103. }
  104. sc_boolean CKeywords::isStateActive(CKeywordsStates state) const
  105. {
  106. switch (state)
  107. {
  108. case auto_char :
  109. return (sc_boolean) (stateConfVector[0] == auto_char
  110. );
  111. case auto_loop :
  112. return (sc_boolean) (stateConfVector[0] >= auto_loop
  113. && stateConfVector[0] <= auto_loop_switch_case_enum_asm);
  114. case auto_loop_switch_case :
  115. return (sc_boolean) (stateConfVector[0] >= auto_loop_switch_case
  116. && stateConfVector[0] <= auto_loop_switch_case_enum_asm);
  117. case auto_loop_switch_case_enum_asm :
  118. return (sc_boolean) (stateConfVector[0] == auto_loop_switch_case_enum_asm
  119. );
  120. default: return false;
  121. }
  122. }
  123. CKeywords::DefaultSCI* CKeywords::getDefaultSCI()
  124. {
  125. return &iface;
  126. }
  127. void CKeywords::DefaultSCI::raise_auto()
  128. {
  129. auto_raised = true;
  130. }
  131. void CKeywords::raise_auto()
  132. {
  133. iface.raise_auto();
  134. }
  135. void CKeywords::DefaultSCI::raise_break()
  136. {
  137. break_raised = true;
  138. }
  139. void CKeywords::raise_break()
  140. {
  141. iface.raise_break();
  142. }
  143. sc_boolean CKeywords::DefaultSCI::get_case() const
  144. {
  145. return case_ID;
  146. }
  147. sc_boolean CKeywords::get_case() const
  148. {
  149. return iface.case_ID;
  150. }
  151. void CKeywords::DefaultSCI::set_case(sc_boolean value)
  152. {
  153. case_ID = value;
  154. }
  155. void CKeywords::set_case(sc_boolean value)
  156. {
  157. iface.case_ID = value;
  158. }
  159. sc_integer CKeywords::DefaultSCI::get_do() const
  160. {
  161. return do_ID;
  162. }
  163. sc_integer CKeywords::get_do() const
  164. {
  165. return iface.do_ID;
  166. }
  167. void CKeywords::DefaultSCI::set_do(sc_integer value)
  168. {
  169. do_ID = value;
  170. }
  171. void CKeywords::set_do(sc_integer value)
  172. {
  173. iface.do_ID = value;
  174. }
  175. sc_boolean CKeywords::DefaultSCI::get_continue() const
  176. {
  177. return continue_ID;
  178. }
  179. sc_boolean CKeywords::get_continue() const
  180. {
  181. return iface.continue_ID;
  182. }
  183. void CKeywords::DefaultSCI::set_continue(sc_boolean value)
  184. {
  185. continue_ID = value;
  186. }
  187. void CKeywords::set_continue(sc_boolean value)
  188. {
  189. iface.continue_ID = value;
  190. }
  191. sc_boolean CKeywords::DefaultSCI::get_double() const
  192. {
  193. return double_ID;
  194. }
  195. sc_boolean CKeywords::get_double() const
  196. {
  197. return iface.double_ID;
  198. }
  199. void CKeywords::DefaultSCI::set_double(sc_boolean value)
  200. {
  201. double_ID = value;
  202. }
  203. void CKeywords::set_double(sc_boolean value)
  204. {
  205. iface.double_ID = value;
  206. }
  207. sc_boolean CKeywords::DefaultSCI::get_enum() const
  208. {
  209. return enum_ID;
  210. }
  211. sc_boolean CKeywords::get_enum() const
  212. {
  213. return iface.enum_ID;
  214. }
  215. void CKeywords::DefaultSCI::set_enum(sc_boolean value)
  216. {
  217. enum_ID = value;
  218. }
  219. void CKeywords::set_enum(sc_boolean value)
  220. {
  221. iface.enum_ID = value;
  222. }
  223. sc_boolean CKeywords::DefaultSCI::get_extern() const
  224. {
  225. return extern_ID;
  226. }
  227. sc_boolean CKeywords::get_extern() const
  228. {
  229. return iface.extern_ID;
  230. }
  231. void CKeywords::DefaultSCI::set_extern(sc_boolean value)
  232. {
  233. extern_ID = value;
  234. }
  235. void CKeywords::set_extern(sc_boolean value)
  236. {
  237. iface.extern_ID = value;
  238. }
  239. sc_boolean CKeywords::DefaultSCI::get_float() const
  240. {
  241. return float_ID;
  242. }
  243. sc_boolean CKeywords::get_float() const
  244. {
  245. return iface.float_ID;
  246. }
  247. void CKeywords::DefaultSCI::set_float(sc_boolean value)
  248. {
  249. float_ID = value;
  250. }
  251. void CKeywords::set_float(sc_boolean value)
  252. {
  253. iface.float_ID = value;
  254. }
  255. sc_boolean CKeywords::DefaultSCI::get_for() const
  256. {
  257. return for_ID;
  258. }
  259. sc_boolean CKeywords::get_for() const
  260. {
  261. return iface.for_ID;
  262. }
  263. void CKeywords::DefaultSCI::set_for(sc_boolean value)
  264. {
  265. for_ID = value;
  266. }
  267. void CKeywords::set_for(sc_boolean value)
  268. {
  269. iface.for_ID = value;
  270. }
  271. sc_boolean CKeywords::DefaultSCI::get_goto() const
  272. {
  273. return goto_ID;
  274. }
  275. sc_boolean CKeywords::get_goto() const
  276. {
  277. return iface.goto_ID;
  278. }
  279. void CKeywords::DefaultSCI::set_goto(sc_boolean value)
  280. {
  281. goto_ID = value;
  282. }
  283. void CKeywords::set_goto(sc_boolean value)
  284. {
  285. iface.goto_ID = value;
  286. }
  287. sc_boolean CKeywords::DefaultSCI::get_if() const
  288. {
  289. return if_ID;
  290. }
  291. sc_boolean CKeywords::get_if() const
  292. {
  293. return iface.if_ID;
  294. }
  295. void CKeywords::DefaultSCI::set_if(sc_boolean value)
  296. {
  297. if_ID = value;
  298. }
  299. void CKeywords::set_if(sc_boolean value)
  300. {
  301. iface.if_ID = value;
  302. }
  303. sc_boolean CKeywords::DefaultSCI::get_int() const
  304. {
  305. return int_ID;
  306. }
  307. sc_boolean CKeywords::get_int() const
  308. {
  309. return iface.int_ID;
  310. }
  311. void CKeywords::DefaultSCI::set_int(sc_boolean value)
  312. {
  313. int_ID = value;
  314. }
  315. void CKeywords::set_int(sc_boolean value)
  316. {
  317. iface.int_ID = value;
  318. }
  319. sc_boolean CKeywords::DefaultSCI::get_long() const
  320. {
  321. return long_ID;
  322. }
  323. sc_boolean CKeywords::get_long() const
  324. {
  325. return iface.long_ID;
  326. }
  327. void CKeywords::DefaultSCI::set_long(sc_boolean value)
  328. {
  329. long_ID = value;
  330. }
  331. void CKeywords::set_long(sc_boolean value)
  332. {
  333. iface.long_ID = value;
  334. }
  335. sc_boolean CKeywords::DefaultSCI::get_register() const
  336. {
  337. return register_ID;
  338. }
  339. sc_boolean CKeywords::get_register() const
  340. {
  341. return iface.register_ID;
  342. }
  343. void CKeywords::DefaultSCI::set_register(sc_boolean value)
  344. {
  345. register_ID = value;
  346. }
  347. void CKeywords::set_register(sc_boolean value)
  348. {
  349. iface.register_ID = value;
  350. }
  351. sc_boolean CKeywords::DefaultSCI::get_return() const
  352. {
  353. return return_ID;
  354. }
  355. sc_boolean CKeywords::get_return() const
  356. {
  357. return iface.return_ID;
  358. }
  359. void CKeywords::DefaultSCI::set_return(sc_boolean value)
  360. {
  361. return_ID = value;
  362. }
  363. void CKeywords::set_return(sc_boolean value)
  364. {
  365. iface.return_ID = value;
  366. }
  367. sc_boolean CKeywords::DefaultSCI::get_short() const
  368. {
  369. return short_ID;
  370. }
  371. sc_boolean CKeywords::get_short() const
  372. {
  373. return iface.short_ID;
  374. }
  375. void CKeywords::DefaultSCI::set_short(sc_boolean value)
  376. {
  377. short_ID = value;
  378. }
  379. void CKeywords::set_short(sc_boolean value)
  380. {
  381. iface.short_ID = value;
  382. }
  383. sc_boolean CKeywords::DefaultSCI::get_signed() const
  384. {
  385. return signed_ID;
  386. }
  387. sc_boolean CKeywords::get_signed() const
  388. {
  389. return iface.signed_ID;
  390. }
  391. void CKeywords::DefaultSCI::set_signed(sc_boolean value)
  392. {
  393. signed_ID = value;
  394. }
  395. void CKeywords::set_signed(sc_boolean value)
  396. {
  397. iface.signed_ID = value;
  398. }
  399. sc_boolean CKeywords::DefaultSCI::get_sizeof() const
  400. {
  401. return sizeof_ID;
  402. }
  403. sc_boolean CKeywords::get_sizeof() const
  404. {
  405. return iface.sizeof_ID;
  406. }
  407. void CKeywords::DefaultSCI::set_sizeof(sc_boolean value)
  408. {
  409. sizeof_ID = value;
  410. }
  411. void CKeywords::set_sizeof(sc_boolean value)
  412. {
  413. iface.sizeof_ID = value;
  414. }
  415. sc_boolean CKeywords::DefaultSCI::get_static() const
  416. {
  417. return static_ID;
  418. }
  419. sc_boolean CKeywords::get_static() const
  420. {
  421. return iface.static_ID;
  422. }
  423. void CKeywords::DefaultSCI::set_static(sc_boolean value)
  424. {
  425. static_ID = value;
  426. }
  427. void CKeywords::set_static(sc_boolean value)
  428. {
  429. iface.static_ID = value;
  430. }
  431. sc_boolean CKeywords::DefaultSCI::get_struct() const
  432. {
  433. return struct_ID;
  434. }
  435. sc_boolean CKeywords::get_struct() const
  436. {
  437. return iface.struct_ID;
  438. }
  439. void CKeywords::DefaultSCI::set_struct(sc_boolean value)
  440. {
  441. struct_ID = value;
  442. }
  443. void CKeywords::set_struct(sc_boolean value)
  444. {
  445. iface.struct_ID = value;
  446. }
  447. sc_boolean CKeywords::DefaultSCI::get_switch() const
  448. {
  449. return switch_ID;
  450. }
  451. sc_boolean CKeywords::get_switch() const
  452. {
  453. return iface.switch_ID;
  454. }
  455. void CKeywords::DefaultSCI::set_switch(sc_boolean value)
  456. {
  457. switch_ID = value;
  458. }
  459. void CKeywords::set_switch(sc_boolean value)
  460. {
  461. iface.switch_ID = value;
  462. }
  463. sc_boolean CKeywords::DefaultSCI::get_typedef() const
  464. {
  465. return typedef_ID;
  466. }
  467. sc_boolean CKeywords::get_typedef() const
  468. {
  469. return iface.typedef_ID;
  470. }
  471. void CKeywords::DefaultSCI::set_typedef(sc_boolean value)
  472. {
  473. typedef_ID = value;
  474. }
  475. void CKeywords::set_typedef(sc_boolean value)
  476. {
  477. iface.typedef_ID = value;
  478. }
  479. sc_boolean CKeywords::DefaultSCI::get_union() const
  480. {
  481. return union_ID;
  482. }
  483. sc_boolean CKeywords::get_union() const
  484. {
  485. return iface.union_ID;
  486. }
  487. void CKeywords::DefaultSCI::set_union(sc_boolean value)
  488. {
  489. union_ID = value;
  490. }
  491. void CKeywords::set_union(sc_boolean value)
  492. {
  493. iface.union_ID = value;
  494. }
  495. sc_boolean CKeywords::DefaultSCI::get_unsigned() const
  496. {
  497. return unsigned_ID;
  498. }
  499. sc_boolean CKeywords::get_unsigned() const
  500. {
  501. return iface.unsigned_ID;
  502. }
  503. void CKeywords::DefaultSCI::set_unsigned(sc_boolean value)
  504. {
  505. unsigned_ID = value;
  506. }
  507. void CKeywords::set_unsigned(sc_boolean value)
  508. {
  509. iface.unsigned_ID = value;
  510. }
  511. sc_boolean CKeywords::DefaultSCI::get_void() const
  512. {
  513. return void_ID;
  514. }
  515. sc_boolean CKeywords::get_void() const
  516. {
  517. return iface.void_ID;
  518. }
  519. void CKeywords::DefaultSCI::set_void(sc_boolean value)
  520. {
  521. void_ID = value;
  522. }
  523. void CKeywords::set_void(sc_boolean value)
  524. {
  525. iface.void_ID = value;
  526. }
  527. sc_boolean CKeywords::DefaultSCI::get_volatile() const
  528. {
  529. return volatile_ID;
  530. }
  531. sc_boolean CKeywords::get_volatile() const
  532. {
  533. return iface.volatile_ID;
  534. }
  535. void CKeywords::DefaultSCI::set_volatile(sc_boolean value)
  536. {
  537. volatile_ID = value;
  538. }
  539. void CKeywords::set_volatile(sc_boolean value)
  540. {
  541. iface.volatile_ID = value;
  542. }
  543. sc_boolean CKeywords::DefaultSCI::get_while() const
  544. {
  545. return while_ID;
  546. }
  547. sc_boolean CKeywords::get_while() const
  548. {
  549. return iface.while_ID;
  550. }
  551. void CKeywords::DefaultSCI::set_while(sc_boolean value)
  552. {
  553. while_ID = value;
  554. }
  555. void CKeywords::set_while(sc_boolean value)
  556. {
  557. iface.while_ID = value;
  558. }
  559. // implementations of all internal functions
  560. sc_boolean CKeywords::check_auto_char_tr0_tr0()
  561. {
  562. return (iface.auto_raised) && (iface.case_ID);
  563. }
  564. void CKeywords::effect_auto_char_tr0()
  565. {
  566. exseq_auto_char();
  567. iface.do_ID += 1;
  568. enseq_auto_loop_default();
  569. }
  570. /* Entry action for state 'char'. */
  571. void CKeywords::enact_auto_char()
  572. {
  573. /* Entry action for state 'char'. */
  574. iface.case_ID = true;
  575. iface.do_ID = 0;
  576. iface.continue_ID = true;
  577. iface.double_ID = true;
  578. iface.enum_ID = true;
  579. iface.extern_ID = true;
  580. iface.float_ID = true;
  581. iface.for_ID = true;
  582. iface.goto_ID = true;
  583. iface.if_ID = true;
  584. iface.int_ID = true;
  585. iface.long_ID = true;
  586. iface.register_ID = true;
  587. iface.return_ID = true;
  588. iface.short_ID = true;
  589. iface.signed_ID = true;
  590. iface.sizeof_ID = true;
  591. iface.static_ID = true;
  592. iface.struct_ID = true;
  593. iface.switch_ID = true;
  594. iface.typedef_ID = true;
  595. iface.union_ID = true;
  596. iface.unsigned_ID = true;
  597. iface.void_ID = true;
  598. iface.volatile_ID = true;
  599. iface.while_ID = true;
  600. }
  601. /* Entry action for state 'asm'. */
  602. void CKeywords::enact_auto_loop_switch_case_enum_asm()
  603. {
  604. /* Entry action for state 'asm'. */
  605. iface.case_ID = false;
  606. iface.do_ID = 0;
  607. iface.continue_ID = false;
  608. iface.double_ID = false;
  609. iface.enum_ID = false;
  610. iface.extern_ID = false;
  611. iface.float_ID = false;
  612. iface.for_ID = false;
  613. iface.goto_ID = false;
  614. iface.if_ID = false;
  615. iface.int_ID = false;
  616. iface.long_ID = false;
  617. iface.register_ID = false;
  618. iface.return_ID = false;
  619. iface.short_ID = false;
  620. iface.signed_ID = false;
  621. iface.sizeof_ID = false;
  622. iface.static_ID = false;
  623. iface.struct_ID = false;
  624. iface.switch_ID = false;
  625. iface.typedef_ID = false;
  626. iface.union_ID = false;
  627. iface.unsigned_ID = false;
  628. iface.void_ID = false;
  629. iface.volatile_ID = false;
  630. iface.while_ID = false;
  631. }
  632. /* 'default' enter sequence for state char */
  633. void CKeywords::enseq_auto_char_default()
  634. {
  635. /* 'default' enter sequence for state char */
  636. enact_auto_char();
  637. stateConfVector[0] = auto_char;
  638. stateConfVectorPosition = 0;
  639. }
  640. /* 'default' enter sequence for state loop */
  641. void CKeywords::enseq_auto_loop_default()
  642. {
  643. /* 'default' enter sequence for state loop */
  644. enseq_auto_loop_switch_default();
  645. }
  646. /* 'default' enter sequence for state case */
  647. void CKeywords::enseq_auto_loop_switch_case_default()
  648. {
  649. /* 'default' enter sequence for state case */
  650. enseq_auto_loop_switch_case_enum_default();
  651. historyVector[0] = stateConfVector[0];
  652. }
  653. /* 'default' enter sequence for state asm */
  654. void CKeywords::enseq_auto_loop_switch_case_enum_asm_default()
  655. {
  656. /* 'default' enter sequence for state asm */
  657. enact_auto_loop_switch_case_enum_asm();
  658. stateConfVector[0] = auto_loop_switch_case_enum_asm;
  659. stateConfVectorPosition = 0;
  660. historyVector[1] = stateConfVector[0];
  661. }
  662. /* 'default' enter sequence for region auto */
  663. void CKeywords::enseq_auto_default()
  664. {
  665. /* 'default' enter sequence for region auto */
  666. react_auto__entry_Default();
  667. }
  668. /* 'default' enter sequence for region switch */
  669. void CKeywords::enseq_auto_loop_switch_default()
  670. {
  671. /* 'default' enter sequence for region switch */
  672. react_auto_loop_switch__entry_Default();
  673. }
  674. /* shallow enterSequence with history in child switch */
  675. void CKeywords::shenseq_auto_loop_switch()
  676. {
  677. /* shallow enterSequence with history in child switch */
  678. /* Handle shallow history entry of switch */
  679. switch(historyVector[ 0 ])
  680. {
  681. case auto_loop_switch_case_enum_asm :
  682. {
  683. enseq_auto_loop_switch_case_default();
  684. break;
  685. }
  686. default: break;
  687. }
  688. }
  689. /* 'default' enter sequence for region enum */
  690. void CKeywords::enseq_auto_loop_switch_case_enum_default()
  691. {
  692. /* 'default' enter sequence for region enum */
  693. react_auto_loop_switch_case_enum__entry_Default();
  694. }
  695. /* deep enterSequence with history in child enum */
  696. void CKeywords::dhenseq_auto_loop_switch_case_enum()
  697. {
  698. /* deep enterSequence with history in child enum */
  699. /* Handle deep history entry of enum */
  700. switch(historyVector[ 1 ])
  701. {
  702. case auto_loop_switch_case_enum_asm :
  703. {
  704. /* enterSequence with history in child asm for leaf asm */
  705. enseq_auto_loop_switch_case_enum_asm_default();
  706. break;
  707. }
  708. default: break;
  709. }
  710. }
  711. /* Default exit sequence for state char */
  712. void CKeywords::exseq_auto_char()
  713. {
  714. /* Default exit sequence for state char */
  715. stateConfVector[0] = CKeywords_last_state;
  716. stateConfVectorPosition = 0;
  717. }
  718. /* Default exit sequence for state asm */
  719. void CKeywords::exseq_auto_loop_switch_case_enum_asm()
  720. {
  721. /* Default exit sequence for state asm */
  722. stateConfVector[0] = CKeywords_last_state;
  723. stateConfVectorPosition = 0;
  724. }
  725. /* Default exit sequence for region auto */
  726. void CKeywords::exseq_auto()
  727. {
  728. /* Default exit sequence for region auto */
  729. /* Handle exit of all possible states (of CKeywords.auto) at position 0... */
  730. switch(stateConfVector[ 0 ])
  731. {
  732. case auto_char :
  733. {
  734. exseq_auto_char();
  735. break;
  736. }
  737. case auto_loop_switch_case_enum_asm :
  738. {
  739. exseq_auto_loop_switch_case_enum_asm();
  740. break;
  741. }
  742. default: break;
  743. }
  744. }
  745. /* Default exit sequence for region switch */
  746. void CKeywords::exseq_auto_loop_switch()
  747. {
  748. /* Default exit sequence for region switch */
  749. /* Handle exit of all possible states (of CKeywords.auto.loop.switch) at position 0... */
  750. switch(stateConfVector[ 0 ])
  751. {
  752. case auto_loop_switch_case_enum_asm :
  753. {
  754. exseq_auto_loop_switch_case_enum_asm();
  755. break;
  756. }
  757. default: break;
  758. }
  759. }
  760. /* Default exit sequence for region enum */
  761. void CKeywords::exseq_auto_loop_switch_case_enum()
  762. {
  763. /* Default exit sequence for region enum */
  764. /* Handle exit of all possible states (of CKeywords.auto.loop.switch.case.enum) at position 0... */
  765. switch(stateConfVector[ 0 ])
  766. {
  767. case auto_loop_switch_case_enum_asm :
  768. {
  769. exseq_auto_loop_switch_case_enum_asm();
  770. break;
  771. }
  772. default: break;
  773. }
  774. }
  775. /* The reactions of state char. */
  776. void CKeywords::react_auto_char()
  777. {
  778. /* The reactions of state char. */
  779. if (check_auto_char_tr0_tr0())
  780. {
  781. effect_auto_char_tr0();
  782. }
  783. }
  784. /* The reactions of state asm. */
  785. void CKeywords::react_auto_loop_switch_case_enum_asm()
  786. {
  787. /* The reactions of state asm. */
  788. }
  789. /* Default react sequence for initial entry */
  790. void CKeywords::react_auto__entry_Default()
  791. {
  792. /* Default react sequence for initial entry */
  793. enseq_auto_char_default();
  794. }
  795. /* Default react sequence for shallow history entry */
  796. void CKeywords::react_auto_loop_switch__entry_Default()
  797. {
  798. /* Default react sequence for shallow history entry */
  799. /* Enter the region with shallow history */
  800. if (historyVector[0] != CKeywords_last_state)
  801. {
  802. shenseq_auto_loop_switch();
  803. } else
  804. {
  805. enseq_auto_loop_switch_case_default();
  806. }
  807. }
  808. /* Default react sequence for deep history entry */
  809. void CKeywords::react_auto_loop_switch_case_enum__entry_Default()
  810. {
  811. /* Default react sequence for deep history entry */
  812. /* Enter the region with deep history */
  813. if (historyVector[1] != CKeywords_last_state)
  814. {
  815. dhenseq_auto_loop_switch_case_enum();
  816. } else
  817. {
  818. enseq_auto_loop_switch_case_enum_asm_default();
  819. }
  820. }