home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / VSCPPv7.zip / VACPP / IBMCPP / macros / PLI.LXL < prev    next >
Text File  |  1995-05-11  |  9KB  |  184 lines

  1. /********************************************************
  2. * PLI.LXL - load macro for PL/I files                   *
  3. *                                                       *
  4. * This macro is invoked by LPEX when a file with an     *
  5. * extension of .PLI is edited                           *
  6. *                                                       *
  7. ********************************************************/
  8. /* Space is deliberately first. Thus it takes over the default class of DATA. */
  9. 'SET CLASSES SPACE COMMENT CODE ERROR FLOW COMMENTONLY PROC PERCENT INCLUDE EXTENSION EXEC'
  10.  
  11. /* Set up new items in the ActionBar. */
  12. 'SET ACTIONBAR.~Options.Automatic_~indenting... 2 EVFPPRS AIDLG'
  13. 'SET HELP. 16093'
  14. 'SET ACTIONBAR.~Options.~Language_editing. 5'
  15. 'SET HELP. 16099'
  16. 'SET ACTIONBAR.~Options.~Language_editing.~Token_highlighting  EVFPPRS TOKOPT'
  17. 'SET HELP. 16100'
  18. 'SET ACTIONBAR.~Options.~Language_editing.Automatic_~indenting EVFPPRS AIOPT'
  19. 'SET HELP. 16101'
  20. 'SET ACTIONBAR.~Options.~Language_editing.~Syntax_assist   EVFPPRS  SYNAOPT'
  21. 'SET HELP. 16088'
  22. /* Now extract the menu id's for these two items. Later in this macro */
  23. /* they are sent into the parser so that it can check and uncheck them. */
  24. 'EXTRACT ACTIONBARID.~Options.~Language_editing.~Token_highlighting  INTO ID_TOKEN_HIGHLIGHTING'
  25. 'EXTRACT ACTIONBARID.~Options.~Language_editing.Automatic_~indenting INTO ID_AUTOMATIC_INDENTING'
  26. 'EXTRACT ACTIONBARID.~Options.~Language_editing.~Syntax_assist       INTO ID_SYNTAX_ASSIST'
  27.  
  28. /* Set up the subsetting views on the View pull down. */
  29.  
  30. /* This is a bit contrived. Uncheck will uncheck all of the menu items whose id's are mentioned in the global variable constructed from set global.doc' || docnum || '.menu_ids' */
  31. /* Mnucheck will check the named item. The name MUST EXACTLY match the set actionbar value. OR IT WON'T WORK. */
  32. 'SET ACTIONBAR.~View.SEPARATOR 2'
  33. 'SET ACTIONBAR.~View.~All 3 ;UNCHECK DOC ;MNUCHECK ~View.~All ;SET INCLUDE ;SET EXCLUDE ;VIEWNAME  '
  34. 'SET HELP. 16059'
  35. 'SET ACTIONBAR.~View.~Errors 4 ;UNCHECK DOC ;MNUCHECK ~View.~Errors ;SET INCLUDE ERROR ;SET EXCLUDE ;VIEWNAME Errors'
  36. 'SET HELP. 16059'
  37. 'SET GROUP. ERROR'
  38. 'SET ACTIONBAR.~View.~Procedures 5 ;UNCHECK DOC ;MNUCHECK ~View.~Procedures ;INCLUDE PROC ;SET EXCLUDE ;VIEWNAME Procedures'
  39. 'SET HELP. 16059'
  40. 'SET GROUP. PROC'
  41. 'SET ACTIONBAR.~View.~Outline_Logic_(Flow) 6 ;UNCHECK DOC ;MNUCHECK ~View.~Outline_Logic_(Flow) ;INCLUDE FLOW ;SET EXCLUDE ;VIEWNAME Outline'
  42. 'SET HELP. 16059'
  43. 'SET GROUP. FLOW'
  44. 'SET ACTIONBAR.~View.~Compress_Spaces 7 ;UNCHECK DOC ;MNUCHECK ~View.~Compress_Spaces ;SET INCLUDE ;SET EXCLUDE SPACE ;VIEWNAME Compress'
  45. 'SET HELP. 16059'
  46. 'SET ACTIONBAR.~View.C~omments 8 ;UNCHECK DOC ;MNUCHECK ~View.C~omments ;SET INCLUDE COMMENTONLY COMMENT ;SET EXCLUDE ;VIEWNAME Comments'
  47. 'SET HELP. 16059'
  48. 'SET GROUP. COMMENTONLY COMMENT'
  49. 'SET ACTIONBAR.~View.~Block_Comments_only 9 ;UNCHECK DOC ;MNUCHECK ~View.~Block_Comments_only ;SET INCLUDE COMMENTONLY ;SET EXCLUDE ;VIEWNAME Block_Comments'
  50. 'SET HELP. 16059'
  51. 'SET GROUP. COMMENTONLY'
  52. 'SET ACTIONBAR.~View.Preprocessor_only 10 ;UNCHECK DOC ;MNUCHECK ~View.Preprocessor_only ;SET INCLUDE PERCENT ;SET EXCLUDE ;VIEWNAME Preprocessor'
  53. 'SET HELP. 16059'
  54. 'SET GROUP. PERCENT'
  55. 'SET ACTIONBAR.~View.~Includes 11 ;UNCHECK DOC ;MNUCHECK ~View.~Includes ;SET INCLUDE INCLUDE ;SET EXCLUDE ;VIEWNAME Includes'
  56. 'SET HELP. 16059'
  57. 'SET GROUP. INCLUDE'
  58. 'SET ACTIONBAR.~View.E~xtensions 12 ;UNCHECK DOC ;MNUCHECK ~View.E~xtensions ;SET INCLUDE EXTENSION ;SET EXCLUDE ;VIEWNAME Extensions'
  59. 'SET HELP. 16059'
  60. 'SET GROUP. EXTENSION'
  61. 'SET ACTIONBAR.~View.~SQL/CICS 13 ;UNCHECK DOC ;MNUCHECK ~View.~SQL/CICS ;SET INCLUDE EXEC ;SET EXCLUDE ;VIEWNAME EXEC'
  62. 'SET HELP. 16059'
  63. 'SET GROUP. EXEC'
  64.  
  65. /* Initially we see the Document view, check the View/All menu item. */
  66. 'MNUCHECK ~View.~All'
  67.  
  68. /* Now extract the menu-id's for all those things and save them in a global
  69. related to the docnum. */
  70. /* The UNCHECK macro will use them to uncheck all of the view menu items. */
  71. /* Again the names MUST EXACTLY match the set actionbar value. OR IT WON'T WORK.
  72. */
  73.  
  74. MENU_IDS = '' ;
  75. 'EXTRACT ACTIONBARID.~View.~All                    INTO ID'
  76. MENU_IDS = MENU_IDS || ' ' || ID ;
  77. 'EXTRACT ACTIONBARID.~View.~Errors                 INTO ID'
  78. MENU_IDS = MENU_IDS || ' ' || ID ;
  79. 'EXTRACT ACTIONBARID.~View.~Procedures             INTO ID'
  80. MENU_IDS = MENU_IDS || ' ' || ID ;
  81. 'EXTRACT ACTIONBARID.~View.~Outline_Logic_(Flow)   INTO ID'
  82. MENU_IDS = MENU_IDS || ' ' || ID ;
  83. 'EXTRACT ACTIONBARID.~View.~Compress_Spaces        INTO ID'
  84. MENU_IDS = MENU_IDS || ' ' || ID ;
  85. 'EXTRACT ACTIONBARID.~View.C~omments               INTO ID'
  86. MENU_IDS = MENU_IDS || ' ' || ID ;
  87. 'EXTRACT ACTIONBARID.~View.~Block_Comments_only    INTO ID'
  88. MENU_IDS = MENU_IDS || ' ' || ID ;
  89. 'EXTRACT ACTIONBARID.~View.Preprocessor_only       INTO ID'
  90. MENU_IDS = MENU_IDS || ' ' || ID ;
  91. 'EXTRACT ACTIONBARID.~View.~Includes               INTO ID'
  92. MENU_IDS = MENU_IDS || ' ' || ID ;
  93. 'EXTRACT ACTIONBARID.~View.E~xtensions             INTO ID'
  94. MENU_IDS = MENU_IDS || ' ' || ID ;
  95. 'EXTRACT ACTIONBARID.~View.~SQL/CICS               INTO ID'
  96. MENU_IDS = MENU_IDS || ' ' || ID ;
  97.  
  98. 'EXTRACT DOCNUM INTO DOCNUM'
  99. 'SET GLOBAL.DOC' || DOCNUM || '.MENU_IDS' MENU_IDS ;
  100. DROP MENU_IDS DOCNUM ;
  101.  
  102. /* set fonts for PL/I parser */
  103. /*'LOADFONTS LPEXFNTS'             * load the Italic, Bold and Smallcaps fonts */
  104.                                   /* a no-op if already loaded this session */
  105.                                   /*
  106. 'SET FACE.ITALIC LPEXFONTS ITALIC'       /* create the italic logical font */
  107. 'SET FACE.BOLD   LPEXFONTS BOLD'         /* and the bold one */
  108. 'SET FACE.SMALLCAPS LPEXFONTS SMALLCAPS' /* and the smallcaps one */
  109.                                   */
  110.  
  111. /* Set Symbolic Fonts */
  112. 'SET FONT.A BLACK/WHITE                  "Variable and Procedure names"'
  113. 'SET FONT.B BRIGHT PINK/WHITE            "Built in functions"'
  114. 'SET FONT.C CYAN/WHITE                   "Comments"'
  115. 'SET FONT.E WHITE/BRIGHT RED             "Errors"'
  116. 'SET FONT.F BRIGHT BLUE/WHITE            "Flow of control keywords"'
  117. 'SET FONT.G GREY/WHITE                   "Words not available at this language level"'
  118. 'SET FONT.I UNDERLINE BRIGHT BLUE/WHITE  "Include keyword"'
  119. 'SET FONT.K BRIGHT BLUE/WHITE            "Key words"'
  120. 'SET FONT.L GREEN/WHITE                  "Literals"'
  121. 'SET FONT.N RED/WHITE                    "Numbers"'
  122. 'SET FONT.P BRIGHT BLUE/WHITE            "Proc and Entry keywords"'
  123. 'SET FONT.S BLUE/WHITE                   "Language symbols"'
  124. 'SET FONT._ BLACK/WHITE                  "Layout spaces"'
  125. 'SET FONT.?  BRIGHT GREEN/GREEN          "Outside margins"'
  126. 'SET FONT.Q UNDERLINE BRIGHT BLUE/WHITE  "Preprocessor keywords"'
  127. 'SET FONT.R UNDERLINE        BLUE/WHITE  "Preprocessor semicolons and '?'"'
  128. 'SET FONT.T BRIGHT BLUE/WHITE            "exec, cics and sql keywords"'
  129. 'SET FONT.U black/white                  "Proc, and Entry labels"'
  130. 'SET FONT.X CYAN/WHITE                   "SQL reserved words"'
  131. 'SET FONT.! black/white                  "Default for unscanned text"'
  132.  
  133.  /* Assume mainframe margins of 2 and 72. */
  134.  
  135. 'SET GLOBAL.OPTIONS.PLI MAXTOKENS(600),MARGINS(2,72,1),OR(''|''),NOT(''~^''),NAMES(''L#@$''),LANGLVL(SAA2),INCLUDE ( EXT ( ''  '' INC , PLI COP ) )'
  136. /*t = time('R') ; */
  137. 'EVFPPRS ALL'                               /* do an initial parse */
  138. /*t = time('E') ;*/
  139. /*say 'Initial parse took' t 'seconds'*/
  140. 'SET PARSER EVFPPRS CURRENT'                /* set up the parser for future changes */
  141.  
  142. /* Send the tokeniser the menu id's it needs for checking and unchecking items. */
  143. 'EVFPPRS INIT' ID_TOKEN_HIGHLIGHTING  ID_AUTOMATIC_INDENTING ID_SYNTAX_ASSIST
  144.  
  145. /* Conserve memory - these are no longer needed. */
  146. DROP ID_TOKEN_HIGHLIGHTING  ID_AUTOMATIC_INDENTING ID_SYNTAX_ASSIST
  147.  
  148.  
  149.                      /* set up rest of syntax assist */
  150.  
  151. 'GLOBAL.PIF /If ? /Then/   Do ;//   End ;/Else/   Do ;//   End ;'
  152. 'GLOBAL.PDO /Do ? ;/   /End;'
  153. 'GLOBAL.PSELECT /Select ( ? ) ;//When ( ? )/   Do ;/   /   End ;//Otherwise/   Do ;/   /   End ;//End ;'
  154.  
  155. /* Assistance for some specific routines. */
  156. 'GLOBAL.PXN11 \XN11SDTE = Start_Date ;\XN11EDTE = End_Date ;\XN11SPAN = The_period ;\XN11UNIT = ''Y'' ;\CALL XN11 ( XN11PARAM ) ;\IF XN11UNIT = '' ''\THEN CALL XN202 ( ''FAILURE IN DATE ARITHMETIC'' ) ;\'
  157. 'GLOBAL.PXN151 \CALL XN151 ( ''Valid_Status'' , GU   , PcbPtr , ADDR( Ioarea )\           , ADDR ( Ssa1 )\           , ADDR ( Ssa2 )\           ) ;\'
  158.                   /*  End of code extracted from assistpl.lx  */
  159.  
  160. 'SET ACTION.C-M EVFPMAT' ;
  161.  
  162. 'SET ACTION.C-X PROTO P' ;
  163. 'SET ACTION.C-S-N NEXT CLASS PROC' ;
  164. 'SET ACTION.C-S-P PREV CLASS PROC' ;
  165.  
  166. 'SET ACTION.C-UP SCROLL UP 5' ;
  167. 'SET ACTION.C-DOWN SCROLL DOWN 5' ;
  168.  
  169. 'SET TABS 2 EVERY 3' ;
  170.  
  171. 'SET ACTION.C-A-LEFT  BLOCK SHIFT LEFT  3'
  172. 'SET ACTION.C-A-RIGHT BLOCK SHIFT RIGHT 3'
  173.  
  174. /* Set up context sensitive help. */
  175. 'SET ACTION.F1 LXR EVFPPRS HELP'
  176.  
  177. /* Set up automatic indentation. */
  178. 'SET SYNONYM.OPENLINE MULT ;INSERT ;EVFPPRS AINEW'
  179.  
  180. /* Set up one key include opening */
  181. 'SET ACTION.A-O  EVFPPRS OPENINC'
  182.  
  183. 'LXR NAVIG.LX'
  184.