Advertisement
osipyonok

My pascal grammar

May 14th, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.97 KB | None | 0 0
  1. #PASCAL-программа# program #имя# #ИМЕНА# ; #блок# .
  2.  
  3. #ИМЕНА# ( #список стандартных имен# )
  4. #ИМЕНА#
  5. #имя константы# CONST_NAME
  6. #целое без знака# DIGIT
  7. #имя# IDN
  8. #литерная строка# LITER_STR
  9. #имя процедуры# PROC_NAME
  10. #имя функции# FUNC_NAME
  11. #имя типа# TYPE_NAME
  12. ! #простой тип#
  13.  
  14. #pfname# #имя#
  15. ! #имя процедуры#
  16. ! #имя функции#
  17.  
  18. #semicolon# ; #semicolon#
  19. !
  20.  
  21. #proc# func #pfname# #список формальных параметров# : #имя типа# #semicolon# #блок# ; ; #proc#
  22. ! proc #pfname# #список формальных параметров# #semicolon# #блок# ; ; #proc#
  23. !
  24.  
  25.  
  26. #список стандартных имен# #имя# #продолжение списка стандартных имен#
  27. #продолжение списка стандартных имен# , #список стандартных имен#
  28. !
  29.  
  30. #блок# #сегмент меток# #сегмент констант# #сегмент типов#
  31. #сегмент переменных# #сегмент процедур и функций# #proc#
  32. #составной оператор#
  33. #сегмент меток# label #список меток# ;
  34. !
  35. #список меток# #метка# #продолжение списка меток#
  36. #продолжение списка меток# , #список меток#
  37. !
  38.  
  39. #сегмент констант# const #список определения констант#
  40. !
  41. #список определения констант# #имя# = #константа# ; #продолжение списка определения констант#
  42. #продолжение списка определения констант# #список определения констант#
  43. !
  44.  
  45. #сегмент типов# type #список типов#
  46. !
  47. #список типов# #имя# = #тип# ; #продолжение списка типов#
  48. #продолжение списка типов# #список типов#
  49. !
  50.  
  51. #сегмент переменных# var #список переменных типа#
  52. !
  53. #список переменных типа# #список имен переменных# : #тип# ;
  54. #продолжение списка имен переменных типа#
  55. #продолжение списка имен переменных типа# #список переменных типа#
  56. !
  57. #список имен переменных# #имя# #продолжение списка имен переменных#
  58. #продолжение списка имен переменных# , #список имен переменных#
  59. !
  60.  
  61. #сегмент процедур и функций# procedure #имя# #список формальных параметров# ;
  62. #блок# ; ; #сегмент процедур и функций#
  63. ! function #имя# #список формальных параметров# :
  64. #имя типа# ;
  65. #блок# ; ; #сегмент процедур и функций#
  66. !
  67.  
  68.  
  69. #оператор# #целое без знака# : #оператор без метки#
  70. ! #оператор без метки#
  71.  
  72. #оператор без метки# #оператор присваивания#
  73. ! #вызов процедуры#
  74. ! #составной оператор#
  75. ! #условный оператор#
  76. ! #оператор выбора#
  77. ! #оператор цикла типа while#
  78. ! #оператор цикла типа repeat#
  79. ! #оператор цикла типа for#
  80. ! #конструкция with#
  81. ! #оператор безусловного перехода#
  82. !
  83.  
  84. #оператор присваивания# #переменная# := #выражение#
  85. ! #имя функции# := #выражение#
  86.  
  87. #вызов процедуры# #имя процедуры# #список фактических параметров#
  88. #список фактических параметров# ( #список выражений или функций# )
  89. !
  90. #список выражений или функций# #имя процедуры# #продолжение списка выражений или функций#
  91. ! #выражение# #продолжение списка выражений или функций#
  92. !
  93. #продолжение списка выражений или функций# , #список выражений или функций#
  94. !
  95.  
  96.  
  97. #составной оператор# begin #последовательность операторов# end
  98. #последовательность операторов# #оператор# #продолжение операторов#
  99. #продолжение операторов# ; #последовательность операторов#
  100. !
  101.  
  102. #условный оператор# if #выражение# then #оператор# #Условный_оператор_с_else#
  103. #Условный_оператор_с_else# else #оператор#
  104. ! ;
  105. #оператор выбора# case #выражение# of #список альтернатив выбора# end
  106. #список альтернатив выбора# #альтернатива выбора# #продолжение списка альтернатив выбора#
  107. !
  108. #продолжение списка альтернатив выбора# ; #список альтернатив выбора#
  109. !
  110. #альтернатива выбора# #список констант# : #оператор#
  111. #список констант# #константа# #продолжение списка констант#
  112. #продолжение списка констант# , #список констант#
  113. !
  114.  
  115. #оператор цикла типа while# while #выражение# do #оператор#
  116. #оператор цикла типа repeat# repeat #последовательность операторов# until #выражение#
  117. #оператор цикла типа for# for #переменная# := #выражение# #направление# #выражение# do #оператор#
  118. #направление# to
  119. ! downto
  120. #конструкция with# with #список переменных# do #оператор#
  121. #список переменных# #переменная# #продолжение списка переменных#
  122. #продолжение списка переменных# , #список переменных#
  123. !
  124. #оператор безусловного перехода# goto #целое без знака#
  125.  
  126. #выражение# #простое выражение# #продолжение выражения#
  127. #продолжение выражения# #операция сравнения# #простое выражение#
  128. !
  129. #операция сравнения# =
  130. ! <
  131. ! >
  132. ! <>
  133. ! \!=
  134. ! >=
  135. ! <=
  136. ! in
  137. #простое выражение# #унарная операция# #слагаемое# #продолжение простого выражения#
  138. ! LITER_STR
  139. #продолжение простого выражения# #аддитивная операция# #слагаемое#
  140. #продолжение простого выражения#
  141. !
  142. #аддитивная операция# +
  143. ! -
  144. ! or
  145. #унарная операция# +
  146. ! -
  147. !
  148. #слагаемое# #множитель# #продолжение слагаемого#
  149. #продолжение слагаемого# #мультипликативная операция# #множитель#
  150. #продолжение слагаемого#
  151. !
  152. #мультипликативная операция# *
  153. ! /
  154. ! div
  155. ! mod
  156. ! and
  157. #множитель# #константа без знака#
  158. ! #переменная#
  159. ! #обращение к функции#
  160. ! ( #выражение# )
  161. ! not #множитель#
  162. ! [ #выражение с интервалом# ]
  163. #обращение к функции# #имя функции# #список фактических параметров#
  164.  
  165. #выражение с интервалом# #список выражений с интервалом#
  166. !
  167. #список выражений с интервалом# #элемент выражения с интервалом# #продолжение списка выражений с интервалом#
  168. #продолжение списка выражений с интервалом# , #список выражений с интервалом#
  169. !
  170. #элемент выражения с интервалом# #выражение# #продолжение элемента выражения с интервалом#
  171. #продолжение элемента выражения с интервалом# .. #выражение#
  172. !
  173.  
  174. #переменная# #имя# #уточнение имени переменной#
  175. #уточнение имени переменной# [ #список выражений# ] #уточнение имени переменной#
  176. ! . #имя# #уточнение имени переменной#
  177. ! ^ #уточнение имени переменной#
  178. !
  179. #список выражений# #выражение# #продолжение списка выражений#
  180. #продолжение списка выражений# , #список выражений#
  181. !
  182.  
  183. #метка# #целое без знака#
  184. #константа# #знак константы# #вариант константы#
  185. ! #литерная строка#
  186. ! nil
  187. ! true
  188. ! false
  189. #знак константы# +
  190. ! -
  191. !
  192. #вариант константы# #имя константы#
  193. ! #целое без знака#
  194.  
  195. #константа без знака# #вариант константы#
  196. #тип# #простой тип#
  197. ! #тип указателя#
  198. ! #тип с возможностью упаковки#
  199. #тип с возможностью упаковки# packed #упакованый тип#
  200. ! #упакованый тип#
  201. #упакованый тип# #тип массива#
  202. ! #тип записи#
  203. ! #тип файла#
  204. ! #тип множества#
  205. #простой тип# integer
  206. ! real
  207. ! boolean
  208. ! char
  209. ! string
  210. ! byte
  211. ! ( #список имен# )
  212. ! #константа# .. #константа#
  213. #список имен# #имя# #продолжение списка имен#
  214. #продолжение списка имен# , #список имен#
  215. !
  216.  
  217. #тип указателя# ^ #имя типа#
  218. #тип массива# array [ #список типа компонент индекса# ] of #тип#
  219. #список типа компонент индекса# #простой тип# #продолжение списка типа компонент индекса#
  220. #продолжение списка типа компонент индекса# , #список типа компонент индекса#
  221. !
  222. #тип файла# file of #тип#
  223. #тип множества# set of #простой тип#
  224. #тип записи# record #список полей# end
  225. #список полей# #основная компонента# #продолжение основной компоненты#
  226. ! #вариантная компонента#
  227. #продолжение основной компоненты# ; #основная или вариантная компонента#
  228. !
  229. #основная или вариантная компонента#
  230. #основная компонента# #продолжение основной компоненты#
  231. ! #вариантная компонента#
  232.  
  233. #основная компонента# #список имен переменных# : #тип#
  234. #вариантная компонента# case #имя# : #имя типа# of
  235. #список констант# : ( #список полей# )
  236. #продолжение вариантной компоненты#
  237.  
  238. #продолжение вариантной компоненты# ; #список констант# : ( #список полей# )
  239. #продолжение вариантной компоненты#
  240. !
  241.  
  242. #список формальных параметров# ( #уточнение списка формальных параметров# )
  243. !
  244. #уточнение списка формальных параметров# #список имен# : #имя типа#
  245. #продолжение списка формальных параметров#
  246. ! function #список имен# : #имя типа#
  247. #продолжение списка формальных параметров#
  248. ! var #список имен# : #имя типа#
  249. #продолжение списка формальных параметров#
  250. ! procedure #список имен# #продолжение списка формальных параметров#
  251. #продолжение списка формальных параметров# #semicolon# #уточнение списка формальных параметров#
  252. !
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement