DEMO.BAT 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. echo off
  2. xtra
  3. clear +cyan,black,blue
  4. big 3,,7,University
  5. big 12,,7,of
  6. big 19,,7,Latvia
  7. call ~~wait 60 %1
  8. clear
  9. big 9,,8, PRESENTS
  10. call ~~wait 35 %1
  11. clear
  12. big 1,,7,new programming
  13. big 6,,7,language
  14. call ~~wait 5 %1
  15. color 12
  16. big 16,,8,R{{{I{{{G{{{A{{{L
  17. call ~~wait 60 %1
  18. rem ---------------------------------------------- 1
  19. clear
  20. color 14
  21. box 2,,50,16,2
  22. put 3,,This is DEMO film about RIGAL.
  23. put 4,,Contains 20 pages.
  24. put 5,,You can SUSPEND it by pressing any key
  25. put 6,,and CONTINUE by pressing "ENTER" key
  26. put 8,,To change speed - run
  27. put 9,, DEMO 10 (fast) or
  28. put 10,, DEMO 300 (low speed)
  29. put 12,,DEMO is arranged for IBM/PC/XT/AT or compatible,
  30. put 13,,with any graphic card;
  31. put 14,,DEMO requires 400 KBytes free RAM.
  32. put 16,,DEMO is not copy protected.
  33. put 18,,Written by Vadim Engelson Univ. of Latvia RIGA
  34. call ~~wait 170 %1
  35. rem ---------------------------------------------- 2
  36. clear 14,0,1
  37. color 14
  38. big 1,,7,Rigal assigned for
  39. color 14,1
  40. box 9,,40,13,2
  41. call ~~wait 10 %1
  42. color 15,1
  43. put 10,,PARSING
  44. put 12,,PROGRAM OPTIMIZATION
  45. put 14,,CODE GENERATION
  46. put 16,,STATIC ANALYSIS OF PROGRAMS
  47. put 18,,PREPROCESSOR AND CONVERTOR WRITING
  48. put 20,,PROGRAM TRANSFORMATION
  49. call ~~wait 150 %1
  50. rem --------------------------------------------- 3
  51. clear 14,0,1
  52. color 14
  53. big 1,,7,Rigal data types are
  54. color 14,0
  55. box 7,5,20,2,2
  56. color 15,1
  57. put 8,9,ATOMS :
  58. color 14,0
  59. put 9,8,ABC 37 ':='
  60. box 7,45,20,2,2
  61. color 15,1
  62. put 8,55,LISTS :
  63. color 14,0
  64. put 9,50, (. AA BB CC .)
  65. box 12,27,25,8,2
  66. color 15,1
  67. put 13,,TREES :
  68. color 14,0
  69. put 14,29,. S1 : AB , S2 : CD .
  70. put 14,28,12
  71. put 14,50,14
  72. color 15,0
  73. put 16,, represents tree
  74. put 17,, / \
  75. put 18,, S1/ \S2
  76. put 19,34,/
  77. put 19,45,\
  78. color 0,7
  79. put 20,32,AB
  80. put 20,46,CD
  81. call ~~wait 200 %1
  82. rem ------------------------------------------ 4
  83. clear 14,0,1
  84. color 14
  85. big 1,,7,can manipulate with
  86. color 14,1
  87. box 7,,40,14,2
  88. call ~~wait 10 %1
  89. color 15,1
  90. put 8,,VARIABLES
  91. put 10,,are
  92. color 14,0
  93. put 12,,$AA $SUMMA
  94. color 15,1
  95. put 14,,We assign them ANY value
  96. color 14,0
  97. put 16,, $SUMMA := 77+2 ;
  98. put 18,, $NAME_OF_BOY := JOHN;
  99. put 20,, $FR := (. AA BB CC .);
  100. call ~~wait 130 %1
  101. rem ------------------------------------------- 5
  102. clear 14,0,1
  103. color 14
  104. big 1,,7,can operate with
  105. color 14,1
  106. box 7,,40,15,2
  107. call ~~wait 10 %1
  108. color 15,1
  109. put 8,,L I S T S
  110. put 10,,Adds element to list
  111. color 14,0
  112. put 11,,$FR := (. AA BB CC .) !. DD;
  113. color 15,1
  114. put 12,,After the execution value of $FR is
  115. color 14,0
  116. put 13,, (. AA BB CC DD .);
  117. color 15,1
  118. put 15,,Takes element of list :
  119. put 16,, $FR [2] is
  120. color 14,0
  121. put 17,, BB
  122. color 15,1
  123. put 19,, Concatenates :
  124. put 20,, $FR !! (. KKK AA .) is
  125. color 14,0
  126. put 21,, (. AA BB CC DD KKK AA .);
  127. call ~~wait 200 %1
  128. rem ------------------------------------------ 6
  129. clear 14,0,1
  130. color 14
  131. big 1,,7,can operate with
  132. color 14,1
  133. box 7,,40,15,2
  134. call ~~wait 10 %1
  135. color 15,1
  136. put 8,,T R E E S
  137. color 14,0
  138. put 10,,$M:= . S1 : AAA , S2 : BBB . ;
  139. put 10,29,12
  140. put 10,54,14
  141. color 15,1
  142. put 11,,Takes component of tree :
  143. put 12,,Value of $M.S1 is
  144. color 14,0
  145. put 13,, AAA
  146. color 15,1
  147. put 15,,Adds new branch to tree:
  148. color 14,0
  149. put 16,,$NEW := $M ++ . R2 : 33 .
  150. put 16,41,12
  151. put 16,53,14
  152. color 15,1
  153. put 17,, in result value of $NEW is
  154. color 14,0
  155. put 18,, . S1 : AAA , S2 : BBB , R2 : 33 . ;
  156. put 18,21,12
  157. put 18,55,14
  158. call ~~wait 220 %1
  159. rem ---------------------------------------------- 7
  160. clear 14,0,1
  161. color 14
  162. big 1,,7,P{{A{{R{{S{{I{{N{{G
  163. color 14,1
  164. box 7,,55,15,2
  165. call ~~wait 10 %1
  166. color 15,1
  167. put 8,,For P A R S I N G we use
  168. put 9,,PATTERNS.
  169. put 11,,They may be written like
  170. put 12,,BACKUS - NAUR FORMULAE (BNF).
  171. put 14,,If SS is any pattern then
  172. color 14,0
  173. put 16,14,(* SS *)
  174. put 18,14,(+ SS +)
  175. put 20,14,[ SS ]
  176. put 22,14,(SS1 ! SS2)
  177. color 15,1
  178. put 16,33,0
  179. put 16,35,or some times SS
  180. put 18,33,1
  181. put 18,35,or some times SS
  182. put 20,33,SS or nothing
  183. put 22,33,SS1 or SS2
  184. color 15,0
  185. put 15,63,*
  186. put 16,57,( SS )
  187. put 17,65,+
  188. put 18,59,( SS )
  189. call ~~wait 180 %1
  190. CALL ~~contin.BAT %1
  191. rem ----------------------------------------- 8
  192. clear 14,0,1
  193. color 14
  194. big 1,,7,R{{U{{L{{E
  195. color 14,1
  196. box 7,,53,15,2
  197. call ~~wait 10 %1
  198. color 15,1
  199. put 8,,R U L E is the main control tool in Rigal.
  200. put 10,22, IN RIGAL :
  201. put 10,43, IN PASCAL :
  202. color 14,0
  203. put 11,19,#SUMMA
  204. put 12,23, $A $B
  205. put 13,23, / $C := $A+$B ;
  206. put 14,23, RETURN $C /
  207. put 15,19,##
  208. put 17,19, -- call of #SUMMA:
  209. put 18,19, $E:=#SUMMA(5 6)
  210. color 15,0
  211. put 11,40, Function Summa
  212. put 12,43, (a:int;b:int):int;begin
  213. put 13,43, c:=a+b;
  214. put 14,43, Summa:=c;
  215. put 15,40, end;
  216. put 17,43, { call of Summa }
  217. put 18,40, e:=Summa(5,6);
  218. color 15,1
  219. put 20,,Rule in RIGAL - like Function in PASCAL
  220. call ~~wait 190 %1
  221. rem ------------------------------------------- 9
  222. clear 14,0,1
  223. color 14
  224. big 1,,2,list and tree
  225. big 5,,2,patterns
  226. color 14,1
  227. box 10,,55,12,2
  228. call ~~wait 10 %1
  229. color 15,1
  230. put 11,,WE CAN TRAVERSE LISTS :
  231. color 14,0
  232. put 13,20,#STATEMENT_LIST
  233. put 14,25,(. (* #STATEMENT *) .)
  234. put 15,20,##
  235. color 15,1
  236. put 16,,... AND TREES:
  237. color 14,0
  238. put 17,20,#EXPRESSION
  239. put 18,25,[. OPERATION : ( '+' ! '-' ),
  240. put 18,25,12
  241. put 19,28, ARGUMENT_1 : #FACTOR ,
  242. put 20,28, ARGUMENT_2 : #FACTOR .]
  243. put 20,51,14
  244. put 21,20,##
  245. call ~~wait 220 %1
  246. rem --------------------------------------------- 10
  247. clear 14,0,1
  248. color 14
  249. big 1,,7,T{{W{{O{{{{{R{{U{{L{{E{{S
  250. color 14,1
  251. box 7,,50,15,2
  252. call ~~wait 10 %1
  253. color 15,1
  254. put 8,,R U L E IS like BACKUS-NAUR FORMULA:
  255. put 10,22,IN RIGAL
  256. put 10,43,IN B N F
  257. color 14,0
  258. put 11,17,#PROGRAM
  259. put 12,20, 'BEGIN'
  260. put 13,20, (* #STATEMENT *)
  261. put 14,20, 'END'
  262. put 15,17,##
  263. put 16,17,#STATEMENT
  264. put 17,20, #VARIABLE
  265. put 18,20, ':='
  266. put 19,20, #EXPRESSION
  267. put 20,17,##
  268. color 15,0
  269. put 11,40,program ::=
  270. put 12,44, 'BEGIN'
  271. put 12,56,*
  272. put 13,47, statement
  273. put 14,44, 'END'
  274. put 16,40,statement ::=
  275. put 17,44, variable
  276. put 18,44, ':='
  277. put 19,44, expression
  278. color 15,1
  279. put 21,,This is the way to
  280. put 22,,describe and parse program structure
  281. call ~~wait 150 %1
  282. clear 14,0,1
  283. big 1,,7,new programming
  284. big 6,,7,language
  285. call ~~wait 5 %1
  286. color 12
  287. big 16,,8,R{{{I{{{G{{{A{{{L
  288. call ~~wait 60 %1
  289. clear
  290. color 14
  291. big 1,,7,powerful
  292. big 6,,7,and simple
  293. big 12,,7,tool for writing
  294. big 18,,7,compilers
  295. call ~~wait 100 %1
  296. call ~~demo %1