home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / memacs32.zip / ppage.cmd < prev    next >
OS/2 REXX Batch file  |  1993-08-07  |  8KB  |  304 lines

  1. ;    PPAGE.CMD:    Pascal MENU Page
  2. ;            for MicroEMACS 3.9e and above
  3. ;            (C)opyright 1988 by Ian Ornstein
  4. ;            2-May-1988
  5. ;
  6. ;    This page was inspired by functionally similar code written
  7. ;    for the ASE editor for the p-System by:
  8. ;    Dick Karpinski  Manager of Unix Services, UCSF Computer Center
  9. ;    UUCP:  ...!ucbvax!ucsfcgl!cca.ucsf!dick        (415) 476-4529 (11-7)
  10. ;    BITNET:  dick@ucsfcca or dick@ucsfvm           Compuserve: 70215,1277  
  11. ;    USPS:  U-76 UCSF, San Francisco, CA 94143-0704   Telemail: RKarpinski   
  12. ;    I think it is only fair to give him the credit for the inspiration.
  13. ;    - Ian -                                  
  14. ;
  15. ;    [I cleaned this up PC and added DOS shelling, CMODE for
  16. ;     fence matching and indentation and put it in the distribution
  17. ;            - dan]
  18.  
  19. ; set up the "clean" procedure
  20. store-procedure clean
  21.     delete-buffer "[Macro 10]"
  22.     delete-buffer "[Macro 11]"
  23.     delete-buffer "[Macro 12]"
  24.     delete-buffer "[Macro 13]"
  25.     delete-buffer "[Macro 14]"
  26.     delete-buffer "[Macro 15]"
  27.     delete-buffer "[Macro 16]"
  28.     delete-buffer "[Macro 17]"
  29.     delete-buffer "[Macro 18]"
  30.     delete-buffer "[Macro 19]"
  31.     set $cmode %oldmode
  32.     set $gmode %oldgmode
  33. !endm
  34.  
  35. ; make sure the function key window is up
  36.     set %rcfkeys FALSE
  37.     toggle-fkeys
  38.     write-message "Loading..."
  39.  
  40. ; Write out the page instructions
  41.     save-window
  42.     1 next-window
  43.     beginning-of-file
  44.     set $curcol 25
  45.     overwrite-string " F1 PROCEDURE             F2 FUNCTION           "
  46.     next-line
  47.     set $curcol 25
  48.     overwrite-string " F3 IF Then ELSE          F4 WHILE              "
  49.     next-line
  50.     set $curcol 25
  51.     overwrite-string " F5 REPEAT                F6 CASE               "
  52.     next-line
  53.     set $curcol 18
  54.     overwrite-string "PASC"
  55.     set $curcol 25
  56.     overwrite-string " F7 VALUE                 F8 Reserved words UP  "
  57.     next-line
  58.     set $curcol 25
  59.     overwrite-string " F9 Reserve words CAPS   F10 Shell to DOS       "
  60.     unmark-buffer
  61.     beginning-of-file
  62.     !force restore-window
  63.     update-screen
  64.  
  65. ;
  66.  
  67. 10    store-macro
  68. ;    set $debug TRUE
  69.         set %proc @"Procedure Name: "
  70.         insert-string &cat &cat "Procedure " %proc "~n"
  71.         insert-string "   ( VAR ~n"
  72.         insert-string "   );~n"
  73.         insert-string "~n"
  74. ;       insert-string "CONST~n"
  75. ;       insert-string "~n"
  76. ;       insert-string "TYPE~n"
  77. ;       insert-string "~n"
  78. ;       insert-string "VAR~n"
  79. ;       insert-string "~n"
  80.         insert-string &cat &cat "BEGIN (* " %proc " *)~n"
  81.         insert-string &cat &cat "END;  (* " %proc " *)~n"
  82.     previous-line
  83.         open-line
  84.         insert-string "   "
  85.     !force set $debug FALSE
  86. !endm
  87. bind-to-key execute-macro-10 FNC
  88.  
  89. ;    Function
  90. 11    store-macro
  91.         set %func @"Function Name: "
  92.         insert-string &cat &cat "Function " %func "~n"
  93.         insert-string "   ( VAR ~n"
  94.         insert-string "   )        : BOOLEAN;~n
  95.         insert-string "~n"
  96.         insert-string &cat &cat "BEGIN (* " %func " *)~n"
  97.         insert-string &cat &cat "END;  (* " %func " *)~n"
  98.     previous-line
  99.         open-line
  100.         insert-string "   "
  101.     !force set $debug FALSE
  102. !endm
  103. bind-to-key execute-macro-11 FND
  104.  
  105. ;
  106.  
  107. 12    store-macro
  108.         set %curcol $curcol
  109.         set %cond @"Condition Expr: "
  110. ;    set $debug TRUE
  111.         insert-string &cat &cat "IF  " %cond "~n"
  112.         %curcol insert-string " "
  113.         set $curcol %curcol
  114.         insert-string "THEN~n"
  115.         %curcol insert-string " "
  116.         set $curcol %curcol
  117.         insert-string "    BEGIN~n"
  118.         %curcol insert-string " "
  119.         set $curcol %curcol
  120.         insert-string &cat &cat "    END  (* TRUE " %cond " *)~n"
  121.         %curcol insert-string " "
  122.         set $curcol %curcol
  123.         insert-string "ELSE~n"
  124.         %curcol insert-string " "
  125.         set $curcol %curcol
  126.         insert-string "    BEGIN~n"
  127.         %curcol insert-string " "
  128.         set $curcol %curcol
  129.         !if &EQUal  %curcol 3
  130.             insert-string &cat &cat "    END; (* FALSE " %cond " *)"
  131.     !else
  132.             insert-string &cat &cat "    END  (* FALSE " %cond " *)"
  133.     !endif
  134.     3 previous-line
  135.         beginning-of-line
  136.         open-line
  137.         %curcol insert-string " "
  138.         insert-string "       "
  139.     !force set $debug FALSE
  140. !endm
  141. bind-to-key execute-macro-12 FNy
  142.  
  143. ;
  144.  
  145. 13    store-macro
  146.         set %cond @"Condition Expr: "
  147.     ;set $debug TRUE
  148.         set %curcol $curcol
  149.         insert-string &cat &cat "WHILE " %cond " DO~n"
  150.         %curcol insert-string " "
  151.         set $curcol %curcol
  152.         insert-string "   BEGIN~n"
  153.         %curcol insert-string " "
  154.         set $curcol %curcol
  155.         !if &EQUal  %curcol 3
  156.             insert-string &cat &cat "   END; (* WHILE " %cond " *)"
  157.     !else
  158.             insert-string &cat &cat "   END  (* WHILE " %cond " *)"
  159.     !endif
  160.         beginning-of-line
  161.         open-line
  162.         %curcol insert-string " "
  163.         insert-string "      "
  164.     !force set $debug FALSE
  165. !endm
  166. bind-to-key execute-macro-13 A-FN6
  167.  
  168. 14    store-macro
  169.         set %cond @"Condition Expr: "
  170.     ;set $debug TRUE
  171.         set %curcol $curcol
  172.         insert-string &cat &cat "REPEAT~n"
  173.         %curcol insert-string " "
  174.         set $curcol %curcol
  175.         !if &EQUal  %curcol 3
  176.             insert-string &cat &cat "UNTIL " %cond ";"
  177.     !else
  178.             insert-string &cat      "UNTIL " %cond 
  179.     !endif
  180.         beginning-of-line
  181.         open-line
  182.         %curcol insert-string " "
  183.         insert-string "   "
  184.     !force set $debug FALSE
  185. !endm
  186. bind-to-key execute-macro-14 FN^V
  187.  
  188. 15    store-macro
  189.         set %expr @"Case Expr: "
  190.     ;set $debug TRUE
  191.         set %curcol $curcol
  192.         insert-string &cat &cat "CASE " %expr " OF~n"
  193.         %curcol insert-string " "
  194.         set $curcol %curcol
  195.         !if &EQUal  %curcol 3
  196.             insert-string &cat &cat "END; (* Case " %expr " *)"
  197.         !else
  198.             insert-string &cat &cat "END  (* Case " %expr " *)"
  199.         !endif
  200.         beginning-of-line
  201.         open-line
  202.         %curcol insert-string " "
  203.         insert-string "   "
  204.     !force set $debug FALSE
  205. !endm
  206. bind-to-key execute-macro-15 A-FN5
  207.  
  208. 16    store-macro
  209. ;    set $debug TRUE
  210.         set %curcol $curcol
  211.         set %value @"Value: "
  212.         insert-string &cat %value " : BEGIN~n"
  213.         %curcol insert-string " "
  214.         insert-string "    END;~n"
  215.         %curcol insert-string " "
  216.     previous-line
  217.         beginning-of-line
  218.         open-line
  219.         %curcol insert-string " "
  220.         insert-string "       "
  221.     !force set $debug FALSE
  222. !endm
  223. bind-to-key execute-macro-16 FN^B
  224.  
  225. 17    store-macro
  226. ;    set $debug TRUE
  227.         set %curcol $curcol
  228.     ;save-file
  229.         set-mark
  230.     beginning-of-file
  231.         write-message "[Replacing 'begin']
  232.     replace-string "begin" "BEGIN"
  233.  
  234.     beginning-of-file
  235.         write-message "[Replacing 'end']
  236.     replace-string "end" "END"
  237.  
  238.     beginning-of-file
  239.         write-message "[Replacing ' if']
  240.     replace-string " if" " IF"
  241.  
  242.     beginning-of-file
  243.         write-message "[Replacing ' else']
  244.     replace-string " else" " ELSE"
  245.  
  246.     beginning-of-file
  247.         write-message "[Replacing ' repeat']
  248.     replace-string " repeat" " REPEAT"
  249.  
  250.     beginning-of-file
  251.         write-message "[Replacing ' while']
  252.     replace-string " while" " WHILE"
  253.  
  254.         exchange-point-and-mark
  255.     !force set $debug FALSE
  256. !endm
  257. bind-to-key execute-macro-17 ^X8
  258.  
  259. 18    store-macro
  260. ;    set $debug TRUE
  261.         set %curcol $curcol
  262.     ;save-file
  263.         set-mark
  264.     beginning-of-file
  265.         write-message "[Replacing 'begin']
  266.     replace-string "begin" "Begin"
  267.  
  268.     beginning-of-file
  269.         write-message "[Replacing 'end']
  270.     replace-string "end" "End"
  271.  
  272.     beginning-of-file
  273.         write-message "[Replacing ' if']
  274.     replace-string " if" " IF"
  275.  
  276.     beginning-of-file
  277.         write-message "[Replacing ' else']
  278.     replace-string " else" " Else"
  279.  
  280.     beginning-of-file
  281.         write-message "[Replacing ' repeat']
  282.     replace-string " repeat" " Repeat"
  283.  
  284.     beginning-of-file
  285.         write-message "[Replacing ' while']
  286.     replace-string " while" " While"
  287.  
  288.         exchange-point-and-mark
  289.     !force set $debug FALSE
  290. !endm
  291. bind-to-key execute-macro-18 ^X9
  292.  
  293. 19    store-macro
  294.     i-shell
  295. !endm
  296.  
  297. ; Set up CMODE
  298.     set %oldmode $cmode
  299.     set %oldgmode $gmode
  300.     add-mode CMODE
  301.     add-global-mode CMODE
  302.  
  303. write-message "[PASCAL MENU page loaded]"
  304.