Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. bool syntaxBlock(string ** list, int & n)//синтаксический блок
  2. {
  3. string status = "нач";
  4. int i = 0;
  5. while (true)
  6. {
  7. if (list[i][1] == "пробел") {
  8. i++;
  9. continue;
  10. }
  11. if (status == "нач")
  12. {
  13. if (list[i][1] == "кл_слово")
  14. {
  15. status = "клслово";
  16. i++;
  17. continue;
  18. }
  19. else
  20. {
  21. return false;
  22. break;
  23. }
  24. }
  25. if (status == "клслово")
  26. {
  27. if (list[i][1] == "пробел")
  28. i++;
  29. if (list[i][1] == "идент")
  30. {
  31. status = "идент";
  32. i++;
  33. continue;
  34. }
  35. else
  36. {
  37. return false;
  38. break;
  39. }
  40. }
  41. if (status == "идент")
  42. {
  43. if (list[i][1] == "пробел")
  44. i++;
  45. if (list[i][1] == "равно")
  46. {
  47. status = "равно";
  48. i++;
  49. continue;
  50. }
  51. else
  52. {
  53. return false;
  54. break;
  55. }
  56. }
  57. if (status == "равно")
  58. {
  59. if (list[i][1] == "знак")
  60. i++;
  61. if (list[i][1] == "пробел")
  62. i++;
  63. if (list[i][1] == "число")
  64. {
  65. status = "число";
  66. i++;
  67. continue;
  68. }
  69. else
  70. {
  71. return false;
  72. break;
  73. }
  74. }
  75. if (status == "число")
  76. {
  77. if (list[i][1] == "пробел")
  78. i++;
  79. if (list[i][1] == "доллар")
  80. i++;
  81. if (list[i][1] == "тчкзпт")
  82. {
  83. status = "вых";
  84. i++;
  85. continue;
  86. }
  87. else
  88. {
  89. return false;
  90. break;
  91. }
  92. }
  93. if (status == "вых")
  94. return true;
  95. }
  96. return false;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement