conjure_static_switch_lexer.hpp 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873
  1. // Copyright (c) 2008-2009 Ben Hanson
  2. // Copyright (c) 2008-2011 Hartmut Kaiser
  3. //
  4. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. // Auto-generated by boost::lexer, do not edit
  7. #if !defined(BOOST_SPIRIT_LEXER_NEXT_TOKEN_CONJURE_STATIC_SWITCH_JUL_25_2011_07_25_53)
  8. #define BOOST_SPIRIT_LEXER_NEXT_TOKEN_CONJURE_STATIC_SWITCH_JUL_25_2011_07_25_53
  9. #include <boost/spirit/home/support/detail/lexer/char_traits.hpp>
  10. ////////////////////////////////////////////////////////////////////////////////
  11. // the generated table of state names and the tokenizer have to be
  12. // defined in the boost::spirit::lex::lexertl::static_ namespace
  13. namespace boost { namespace spirit { namespace lex { namespace lexertl { namespace static_ {
  14. ////////////////////////////////////////////////////////////////////////////////
  15. // this table defines the names of the lexer states
  16. char const* const lexer_state_names_conjure_static_switch[1] =
  17. {
  18. "INITIAL"
  19. };
  20. ////////////////////////////////////////////////////////////////////////////////
  21. // this variable defines the number of lexer states
  22. std::size_t const lexer_state_count_conjure_static_switch = 1;
  23. ////////////////////////////////////////////////////////////////////////////////
  24. // this function returns the next matched token
  25. template<typename Iterator>
  26. std::size_t next_token_conjure_static_switch (std::size_t& /*start_state_*/, bool& /*bol_*/,
  27. Iterator &start_token_, Iterator const& end_, std::size_t& unique_id_)
  28. {
  29. static std::size_t const npos = static_cast<std::size_t>(~0);
  30. if (start_token_ == end_)
  31. {
  32. unique_id_ = npos;
  33. return 0;
  34. }
  35. Iterator curr_ = start_token_;
  36. bool end_state_ = false;
  37. std::size_t id_ = npos;
  38. std::size_t uid_ = npos;
  39. Iterator end_token_ = start_token_;
  40. char ch_ = 0;
  41. if (curr_ == end_) goto end;
  42. ch_ = *curr_;
  43. ++curr_;
  44. if ((ch_ >= '0' && ch_ <= '9')) goto state0_1;
  45. if (ch_ == 't') goto state0_2;
  46. if (ch_ == 'f') goto state0_3;
  47. if (ch_ == 'v') goto state0_4;
  48. if (ch_ == 'i') goto state0_5;
  49. if (ch_ == 'e') goto state0_6;
  50. if (ch_ == 'w') goto state0_7;
  51. if (ch_ == 'r') goto state0_8;
  52. if (ch_ == '|') goto state0_9;
  53. if (ch_ == '&') goto state0_10;
  54. if (ch_ == '=') goto state0_11;
  55. if (ch_ == '!') goto state0_12;
  56. if (ch_ == '<') goto state0_13;
  57. if (ch_ == '>') goto state0_14;
  58. if (ch_ == '+') goto state0_15;
  59. if (ch_ == '-') goto state0_16;
  60. if (ch_ == '*') goto state0_17;
  61. if (ch_ == '/') goto state0_18;
  62. if (ch_ == '(') goto state0_19;
  63. if (ch_ == ')') goto state0_20;
  64. if (ch_ == '{') goto state0_21;
  65. if (ch_ == '}') goto state0_22;
  66. if (ch_ == ',') goto state0_23;
  67. if (ch_ == ';') goto state0_24;
  68. if ((ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'd') || (ch_ >= 'g' && ch_ <= 'h') || (ch_ >= 'j' && ch_ <= 'q') || ch_ == 's' || ch_ == 'u' || (ch_ >= 'x' && ch_ <= 'z')) goto state0_25;
  69. if ((ch_ >= '\t' && ch_ <= '\n') || ch_ == '\r' || ch_ == ' ') goto state0_26;
  70. goto end;
  71. state0_1:
  72. end_state_ = true;
  73. id_ = 35;
  74. uid_ = 0;
  75. end_token_ = curr_;
  76. if (curr_ == end_) goto end;
  77. ch_ = *curr_;
  78. ++curr_;
  79. if ((ch_ >= '0' && ch_ <= '9')) goto state0_1;
  80. goto end;
  81. state0_2:
  82. end_state_ = true;
  83. id_ = 32;
  84. uid_ = 28;
  85. end_token_ = curr_;
  86. if (curr_ == end_) goto end;
  87. ch_ = *curr_;
  88. ++curr_;
  89. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'q') || (ch_ >= 's' && ch_ <= 'z')) goto state0_25;
  90. if (ch_ == 'r') goto state0_27;
  91. goto end;
  92. state0_3:
  93. end_state_ = true;
  94. id_ = 32;
  95. uid_ = 28;
  96. end_token_ = curr_;
  97. if (curr_ == end_) goto end;
  98. ch_ = *curr_;
  99. ++curr_;
  100. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'b' && ch_ <= 'z')) goto state0_25;
  101. if (ch_ == 'a') goto state0_28;
  102. goto end;
  103. state0_4:
  104. end_state_ = true;
  105. id_ = 32;
  106. uid_ = 28;
  107. end_token_ = curr_;
  108. if (curr_ == end_) goto end;
  109. ch_ = *curr_;
  110. ++curr_;
  111. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'n') || (ch_ >= 'p' && ch_ <= 'z')) goto state0_25;
  112. if (ch_ == 'o') goto state0_29;
  113. goto end;
  114. state0_5:
  115. end_state_ = true;
  116. id_ = 32;
  117. uid_ = 28;
  118. end_token_ = curr_;
  119. if (curr_ == end_) goto end;
  120. ch_ = *curr_;
  121. ++curr_;
  122. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'e') || (ch_ >= 'g' && ch_ <= 'm') || (ch_ >= 'o' && ch_ <= 'z')) goto state0_25;
  123. if (ch_ == 'n') goto state0_30;
  124. if (ch_ == 'f') goto state0_31;
  125. goto end;
  126. state0_6:
  127. end_state_ = true;
  128. id_ = 32;
  129. uid_ = 28;
  130. end_token_ = curr_;
  131. if (curr_ == end_) goto end;
  132. ch_ = *curr_;
  133. ++curr_;
  134. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'k') || (ch_ >= 'm' && ch_ <= 'z')) goto state0_25;
  135. if (ch_ == 'l') goto state0_32;
  136. goto end;
  137. state0_7:
  138. end_state_ = true;
  139. id_ = 32;
  140. uid_ = 28;
  141. end_token_ = curr_;
  142. if (curr_ == end_) goto end;
  143. ch_ = *curr_;
  144. ++curr_;
  145. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'g') || (ch_ >= 'i' && ch_ <= 'z')) goto state0_25;
  146. if (ch_ == 'h') goto state0_33;
  147. goto end;
  148. state0_8:
  149. end_state_ = true;
  150. id_ = 32;
  151. uid_ = 28;
  152. end_token_ = curr_;
  153. if (curr_ == end_) goto end;
  154. ch_ = *curr_;
  155. ++curr_;
  156. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'd') || (ch_ >= 'f' && ch_ <= 'z')) goto state0_25;
  157. if (ch_ == 'e') goto state0_34;
  158. goto end;
  159. state0_9:
  160. if (curr_ == end_) goto end;
  161. ch_ = *curr_;
  162. ++curr_;
  163. if (ch_ == '|') goto state0_35;
  164. goto end;
  165. state0_10:
  166. if (curr_ == end_) goto end;
  167. ch_ = *curr_;
  168. ++curr_;
  169. if (ch_ == '&') goto state0_36;
  170. goto end;
  171. state0_11:
  172. end_state_ = true;
  173. id_ = 61;
  174. uid_ = 26;
  175. end_token_ = curr_;
  176. if (curr_ == end_) goto end;
  177. ch_ = *curr_;
  178. ++curr_;
  179. if (ch_ == '=') goto state0_37;
  180. goto end;
  181. state0_12:
  182. end_state_ = true;
  183. id_ = 262177;
  184. uid_ = 20;
  185. end_token_ = curr_;
  186. if (curr_ == end_) goto end;
  187. ch_ = *curr_;
  188. ++curr_;
  189. if (ch_ == '=') goto state0_38;
  190. goto end;
  191. state0_13:
  192. end_state_ = true;
  193. id_ = 131091;
  194. uid_ = 12;
  195. end_token_ = curr_;
  196. if (curr_ == end_) goto end;
  197. ch_ = *curr_;
  198. ++curr_;
  199. if (ch_ == '=') goto state0_39;
  200. goto end;
  201. state0_14:
  202. end_state_ = true;
  203. id_ = 131093;
  204. uid_ = 14;
  205. end_token_ = curr_;
  206. if (curr_ == end_) goto end;
  207. ch_ = *curr_;
  208. ++curr_;
  209. if (ch_ == '=') goto state0_40;
  210. goto end;
  211. state0_15:
  212. end_state_ = true;
  213. id_ = 393241;
  214. uid_ = 16;
  215. end_token_ = curr_;
  216. goto end;
  217. state0_16:
  218. end_state_ = true;
  219. id_ = 393242;
  220. uid_ = 17;
  221. end_token_ = curr_;
  222. goto end;
  223. state0_17:
  224. end_state_ = true;
  225. id_ = 131099;
  226. uid_ = 18;
  227. end_token_ = curr_;
  228. goto end;
  229. state0_18:
  230. end_state_ = true;
  231. id_ = 131100;
  232. uid_ = 19;
  233. end_token_ = curr_;
  234. if (curr_ == end_) goto end;
  235. ch_ = *curr_;
  236. ++curr_;
  237. if (ch_ == '*') goto state0_41;
  238. goto end;
  239. state0_19:
  240. end_state_ = true;
  241. id_ = 40;
  242. uid_ = 21;
  243. end_token_ = curr_;
  244. goto end;
  245. state0_20:
  246. end_state_ = true;
  247. id_ = 41;
  248. uid_ = 22;
  249. end_token_ = curr_;
  250. goto end;
  251. state0_21:
  252. end_state_ = true;
  253. id_ = 123;
  254. uid_ = 23;
  255. end_token_ = curr_;
  256. goto end;
  257. state0_22:
  258. end_state_ = true;
  259. id_ = 125;
  260. uid_ = 24;
  261. end_token_ = curr_;
  262. goto end;
  263. state0_23:
  264. end_state_ = true;
  265. id_ = 44;
  266. uid_ = 25;
  267. end_token_ = curr_;
  268. goto end;
  269. state0_24:
  270. end_state_ = true;
  271. id_ = 59;
  272. uid_ = 27;
  273. end_token_ = curr_;
  274. goto end;
  275. state0_25:
  276. end_state_ = true;
  277. id_ = 32;
  278. uid_ = 28;
  279. end_token_ = curr_;
  280. if (curr_ == end_) goto end;
  281. ch_ = *curr_;
  282. ++curr_;
  283. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'z')) goto state0_25;
  284. goto end;
  285. state0_26:
  286. end_state_ = true;
  287. id_ = 34;
  288. uid_ = 30;
  289. end_token_ = curr_;
  290. if (curr_ == end_) goto end;
  291. ch_ = *curr_;
  292. ++curr_;
  293. if ((ch_ >= '\t' && ch_ <= '\n') || ch_ == '\r' || ch_ == ' ') goto state0_26;
  294. goto end;
  295. state0_27:
  296. end_state_ = true;
  297. id_ = 32;
  298. uid_ = 28;
  299. end_token_ = curr_;
  300. if (curr_ == end_) goto end;
  301. ch_ = *curr_;
  302. ++curr_;
  303. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 't') || (ch_ >= 'v' && ch_ <= 'z')) goto state0_25;
  304. if (ch_ == 'u') goto state0_42;
  305. goto end;
  306. state0_28:
  307. end_state_ = true;
  308. id_ = 32;
  309. uid_ = 28;
  310. end_token_ = curr_;
  311. if (curr_ == end_) goto end;
  312. ch_ = *curr_;
  313. ++curr_;
  314. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'k') || (ch_ >= 'm' && ch_ <= 'z')) goto state0_25;
  315. if (ch_ == 'l') goto state0_43;
  316. goto end;
  317. state0_29:
  318. end_state_ = true;
  319. id_ = 32;
  320. uid_ = 28;
  321. end_token_ = curr_;
  322. if (curr_ == end_) goto end;
  323. ch_ = *curr_;
  324. ++curr_;
  325. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'h') || (ch_ >= 'j' && ch_ <= 'z')) goto state0_25;
  326. if (ch_ == 'i') goto state0_44;
  327. goto end;
  328. state0_30:
  329. end_state_ = true;
  330. id_ = 32;
  331. uid_ = 28;
  332. end_token_ = curr_;
  333. if (curr_ == end_) goto end;
  334. ch_ = *curr_;
  335. ++curr_;
  336. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 's') || (ch_ >= 'u' && ch_ <= 'z')) goto state0_25;
  337. if (ch_ == 't') goto state0_45;
  338. goto end;
  339. state0_31:
  340. end_state_ = true;
  341. id_ = 65538;
  342. uid_ = 4;
  343. end_token_ = curr_;
  344. if (curr_ == end_) goto end;
  345. ch_ = *curr_;
  346. ++curr_;
  347. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'z')) goto state0_25;
  348. goto end;
  349. state0_32:
  350. end_state_ = true;
  351. id_ = 32;
  352. uid_ = 28;
  353. end_token_ = curr_;
  354. if (curr_ == end_) goto end;
  355. ch_ = *curr_;
  356. ++curr_;
  357. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'r') || (ch_ >= 't' && ch_ <= 'z')) goto state0_25;
  358. if (ch_ == 's') goto state0_46;
  359. goto end;
  360. state0_33:
  361. end_state_ = true;
  362. id_ = 32;
  363. uid_ = 28;
  364. end_token_ = curr_;
  365. if (curr_ == end_) goto end;
  366. ch_ = *curr_;
  367. ++curr_;
  368. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'h') || (ch_ >= 'j' && ch_ <= 'z')) goto state0_25;
  369. if (ch_ == 'i') goto state0_47;
  370. goto end;
  371. state0_34:
  372. end_state_ = true;
  373. id_ = 32;
  374. uid_ = 28;
  375. end_token_ = curr_;
  376. if (curr_ == end_) goto end;
  377. ch_ = *curr_;
  378. ++curr_;
  379. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 's') || (ch_ >= 'u' && ch_ <= 'z')) goto state0_25;
  380. if (ch_ == 't') goto state0_48;
  381. goto end;
  382. state0_35:
  383. end_state_ = true;
  384. id_ = 131084;
  385. uid_ = 8;
  386. end_token_ = curr_;
  387. goto end;
  388. state0_36:
  389. end_state_ = true;
  390. id_ = 131085;
  391. uid_ = 9;
  392. end_token_ = curr_;
  393. goto end;
  394. state0_37:
  395. end_state_ = true;
  396. id_ = 131089;
  397. uid_ = 10;
  398. end_token_ = curr_;
  399. goto end;
  400. state0_38:
  401. end_state_ = true;
  402. id_ = 131090;
  403. uid_ = 11;
  404. end_token_ = curr_;
  405. goto end;
  406. state0_39:
  407. end_state_ = true;
  408. id_ = 131092;
  409. uid_ = 13;
  410. end_token_ = curr_;
  411. goto end;
  412. state0_40:
  413. end_state_ = true;
  414. id_ = 131094;
  415. uid_ = 15;
  416. end_token_ = curr_;
  417. goto end;
  418. state0_41:
  419. if (curr_ == end_) goto end;
  420. ch_ = *curr_;
  421. ++curr_;
  422. if (ch_ != '*') goto state0_41;
  423. if (ch_ == '*') goto state0_49;
  424. goto end;
  425. state0_42:
  426. end_state_ = true;
  427. id_ = 32;
  428. uid_ = 28;
  429. end_token_ = curr_;
  430. if (curr_ == end_) goto end;
  431. ch_ = *curr_;
  432. ++curr_;
  433. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'd') || (ch_ >= 'f' && ch_ <= 'z')) goto state0_25;
  434. if (ch_ == 'e') goto state0_50;
  435. goto end;
  436. state0_43:
  437. end_state_ = true;
  438. id_ = 32;
  439. uid_ = 28;
  440. end_token_ = curr_;
  441. if (curr_ == end_) goto end;
  442. ch_ = *curr_;
  443. ++curr_;
  444. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'r') || (ch_ >= 't' && ch_ <= 'z')) goto state0_25;
  445. if (ch_ == 's') goto state0_42;
  446. goto end;
  447. state0_44:
  448. end_state_ = true;
  449. id_ = 32;
  450. uid_ = 28;
  451. end_token_ = curr_;
  452. if (curr_ == end_) goto end;
  453. ch_ = *curr_;
  454. ++curr_;
  455. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'c') || (ch_ >= 'e' && ch_ <= 'z')) goto state0_25;
  456. if (ch_ == 'd') goto state0_51;
  457. goto end;
  458. state0_45:
  459. end_state_ = true;
  460. id_ = 65537;
  461. uid_ = 3;
  462. end_token_ = curr_;
  463. if (curr_ == end_) goto end;
  464. ch_ = *curr_;
  465. ++curr_;
  466. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'z')) goto state0_25;
  467. goto end;
  468. state0_46:
  469. end_state_ = true;
  470. id_ = 32;
  471. uid_ = 28;
  472. end_token_ = curr_;
  473. if (curr_ == end_) goto end;
  474. ch_ = *curr_;
  475. ++curr_;
  476. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'd') || (ch_ >= 'f' && ch_ <= 'z')) goto state0_25;
  477. if (ch_ == 'e') goto state0_52;
  478. goto end;
  479. state0_47:
  480. end_state_ = true;
  481. id_ = 32;
  482. uid_ = 28;
  483. end_token_ = curr_;
  484. if (curr_ == end_) goto end;
  485. ch_ = *curr_;
  486. ++curr_;
  487. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'k') || (ch_ >= 'm' && ch_ <= 'z')) goto state0_25;
  488. if (ch_ == 'l') goto state0_53;
  489. goto end;
  490. state0_48:
  491. end_state_ = true;
  492. id_ = 32;
  493. uid_ = 28;
  494. end_token_ = curr_;
  495. if (curr_ == end_) goto end;
  496. ch_ = *curr_;
  497. ++curr_;
  498. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 't') || (ch_ >= 'v' && ch_ <= 'z')) goto state0_25;
  499. if (ch_ == 'u') goto state0_54;
  500. goto end;
  501. state0_49:
  502. if (curr_ == end_) goto end;
  503. ch_ = *curr_;
  504. ++curr_;
  505. if (ch_ == '*') goto state0_49;
  506. if (ch_ != '*' && ch_ != '/') goto state0_55;
  507. if (ch_ == '/') goto state0_56;
  508. goto end;
  509. state0_50:
  510. end_state_ = true;
  511. id_ = 36;
  512. uid_ = 1;
  513. end_token_ = curr_;
  514. if (curr_ == end_) goto end;
  515. ch_ = *curr_;
  516. ++curr_;
  517. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'z')) goto state0_25;
  518. goto end;
  519. state0_51:
  520. end_state_ = true;
  521. id_ = 65536;
  522. uid_ = 2;
  523. end_token_ = curr_;
  524. if (curr_ == end_) goto end;
  525. ch_ = *curr_;
  526. ++curr_;
  527. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'z')) goto state0_25;
  528. goto end;
  529. state0_52:
  530. end_state_ = true;
  531. id_ = 65539;
  532. uid_ = 5;
  533. end_token_ = curr_;
  534. if (curr_ == end_) goto end;
  535. ch_ = *curr_;
  536. ++curr_;
  537. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'z')) goto state0_25;
  538. goto end;
  539. state0_53:
  540. end_state_ = true;
  541. id_ = 32;
  542. uid_ = 28;
  543. end_token_ = curr_;
  544. if (curr_ == end_) goto end;
  545. ch_ = *curr_;
  546. ++curr_;
  547. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'd') || (ch_ >= 'f' && ch_ <= 'z')) goto state0_25;
  548. if (ch_ == 'e') goto state0_57;
  549. goto end;
  550. state0_54:
  551. end_state_ = true;
  552. id_ = 32;
  553. uid_ = 28;
  554. end_token_ = curr_;
  555. if (curr_ == end_) goto end;
  556. ch_ = *curr_;
  557. ++curr_;
  558. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'q') || (ch_ >= 's' && ch_ <= 'z')) goto state0_25;
  559. if (ch_ == 'r') goto state0_58;
  560. goto end;
  561. state0_55:
  562. if (curr_ == end_) goto end;
  563. ch_ = *curr_;
  564. ++curr_;
  565. if (ch_ != '*') goto state0_55;
  566. if (ch_ == '*') goto state0_59;
  567. goto end;
  568. state0_56:
  569. end_state_ = true;
  570. id_ = 33;
  571. uid_ = 29;
  572. end_token_ = curr_;
  573. goto end;
  574. state0_57:
  575. end_state_ = true;
  576. id_ = 65540;
  577. uid_ = 6;
  578. end_token_ = curr_;
  579. if (curr_ == end_) goto end;
  580. ch_ = *curr_;
  581. ++curr_;
  582. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'z')) goto state0_25;
  583. goto end;
  584. state0_58:
  585. end_state_ = true;
  586. id_ = 32;
  587. uid_ = 28;
  588. end_token_ = curr_;
  589. if (curr_ == end_) goto end;
  590. ch_ = *curr_;
  591. ++curr_;
  592. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'm') || (ch_ >= 'o' && ch_ <= 'z')) goto state0_25;
  593. if (ch_ == 'n') goto state0_60;
  594. goto end;
  595. state0_59:
  596. if (curr_ == end_) goto end;
  597. ch_ = *curr_;
  598. ++curr_;
  599. if (ch_ != '*' && ch_ != '/') goto state0_55;
  600. if (ch_ == '/') goto state0_56;
  601. if (ch_ == '*') goto state0_59;
  602. goto end;
  603. state0_60:
  604. end_state_ = true;
  605. id_ = 65541;
  606. uid_ = 7;
  607. end_token_ = curr_;
  608. if (curr_ == end_) goto end;
  609. ch_ = *curr_;
  610. ++curr_;
  611. if ((ch_ >= '0' && ch_ <= '9') || (ch_ >= 'A' && ch_ <= 'Z') || ch_ == '_' || (ch_ >= 'a' && ch_ <= 'z')) goto state0_25;
  612. end:
  613. if (end_state_)
  614. {
  615. // return longest match
  616. start_token_ = end_token_;
  617. }
  618. else
  619. {
  620. id_ = npos;
  621. uid_ = npos;
  622. }
  623. unique_id_ = uid_;
  624. return id_;
  625. }
  626. ////////////////////////////////////////////////////////////////////////////////
  627. // this defines a generic accessors for the information above
  628. struct lexer_conjure_static_switch
  629. {
  630. // version number and feature-set of compatible static lexer engine
  631. enum
  632. {
  633. static_version = 65536,
  634. supports_bol = false,
  635. supports_eol = false
  636. };
  637. // return the number of lexer states
  638. static std::size_t state_count()
  639. {
  640. return lexer_state_count_conjure_static_switch;
  641. }
  642. // return the name of the lexer state as given by 'idx'
  643. static char const* state_name(std::size_t idx)
  644. {
  645. return lexer_state_names_conjure_static_switch[idx];
  646. }
  647. // return the next matched token
  648. template<typename Iterator>
  649. static std::size_t next(std::size_t &start_state_, bool& bol_
  650. , Iterator &start_token_, Iterator const& end_, std::size_t& unique_id_)
  651. {
  652. return next_token_conjure_static_switch(start_state_, bol_, start_token_, end_, unique_id_);
  653. }
  654. };
  655. }}}}} // namespace boost::spirit::lex::lexertl::static_
  656. #endif