home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / tools / fcheck.src < prev    next >
Encoding:
Text File  |  1988-05-03  |  20.4 KB  |  595 lines

  1. ::::::::::
  2. fcheck.dis
  3. ::::::::::
  4. --
  5. -- The following files make up the distribution for FILE_CHECKER
  6. --
  7.  
  8. -- Prologue file
  9. fcheck.pro
  10.  
  11. -- Source files in compilation order
  12. --   (those commented out are components in the Ada Repository)
  13. --character_set.ada
  14. --cas3.ada
  15. --generic_list.ada
  16. fcheck.ada
  17.  
  18. -- Documentation files (RNO is source)
  19. fcheck.rno
  20. ::::::::::
  21. fcheck.pro
  22. ::::::::::
  23.  
  24. -------- SIMTEL20 Ada Software Repository Prologue ------------
  25. --                                                           -*
  26. -- Unit name    : FILE_CHECKER
  27. -- Version      : 1.3
  28. -- Author       : Richard Conn
  29. --              : TI Ada Technology Branch
  30. --              : Box 801, MS 8007
  31. --              : McKinney, TX  75069
  32. -- DDN Address  : RCONN at SIMTEL20
  33. -- Copyright    : (c) 1985 Richard Conn
  34. -- Date created : 15 Feb 85
  35. -- Release date : 15 Feb 85
  36. -- Last update  :  2 Dec 85
  37. -- Machine/System Compiled/Run on : DG MV 10000, ROLM ADE
  38. --                                  DEC VAX 11/780, DEC Ada
  39. --                                                           -*
  40. ---------------------------------------------------------------
  41. --                                                           -*
  42. -- Keywords     :
  43. ----------------: Ada Statements, Lines of Code, LOC, Checksum
  44. --
  45. -- Abstract     :
  46. ----------------: FILE_CHECKER uses CAS3 to count the number
  47. -- of Ada statements (terminated by semicolons), the number of
  48. -- lines of code, and a checksum of the non-space (excludes tabs,
  49. -- CR, LF, FF, HT, and spaces) characters in a group of files.
  50. --
  51. -- FILE_CHECKER asks for one file name after another; the user
  52. -- terminates his input by striking RETURN to the file name prompt.
  53. -- FILE_CHECKER then gives a summary report of this data on all
  54. -- files listed.  Include files may be specified along with
  55. -- other file names.
  56. --
  57. -- Ada components used by FILE_CHECKER include GENERIC_LIST and CAS3.
  58. -- CHARACTER_SET is used by CAS3.
  59. -- All are in the Ada Repository in the COMPONENTS subdirectory.
  60. --                                                           -*
  61. ------------------ Revision history ---------------------------
  62. --                                                           -*
  63. -- DATE         VERSION AUTHOR                  HISTORY
  64. -- 2/15/85      1.0     Richard Conn            Initial Release
  65. -- 4/9/85       1.1     Richard Conn            Add Include Files, CAS3
  66. -- 9/25/85      1.2     Richard Conn            Add Output File, Misc
  67. -- 12/2/85      1.3     Richard Conn            Add Count Summary
  68. --                                                           -*
  69. ------------------ Distribution and Copyright -----------------
  70. --                                                           -*
  71. -- This prologue must be included in all copies of this software.
  72. --
  73. -- This software is copyright by the author.
  74. --
  75. -- This software is released to the Ada community.
  76. -- This software is released to the Public Domain (note:
  77. --   software released to the Public Domain is not subject
  78. --   to copyright protection).
  79. -- Restrictions on use or distribution:  NONE
  80. --                                                           -*
  81. ------------------ Disclaimer ---------------------------------
  82. --                                                           -*
  83. -- This software and its documentation are provided "AS IS" and
  84. -- without any expressed or implied warranties whatsoever.
  85. -- No warranties as to performance, merchantability, or fitness
  86. -- for a particular purpose exist.
  87. --
  88. -- Because of the diversity of conditions and hardware under
  89. -- which this software may be used, no warranty of fitness for
  90. -- a particular purpose is offered.  The user is advised to
  91. -- test the software thoroughly before relying on it.  The user
  92. -- must assume the entire risk and liability of using this
  93. -- software.
  94. --
  95. -- In no event shall any person or organization of people be
  96. -- held responsible for any direct, indirect, consequential
  97. -- or inconsequential damages or lost profits.
  98. --                                                           -*
  99. -------------------END-PROLOGUE--------------------------------
  100. ::::::::::
  101. fcheck.ada
  102. ::::::::::
  103.  
  104. -------- SIMTEL20 Ada Software Repository Prologue ------------
  105. --                                                           -*
  106. -- Unit name    : FILE_CHECKER
  107. -- Version      : 1.3
  108. -- Author       : Richard Conn
  109. --              : TI Ada Technology Branch
  110. --              : Box 801, MS 8007
  111. --              : McKinney, TX  75069
  112. -- DDN Address  : RCONN at SIMTEL20
  113. -- Copyright    : (c) 1985 Richard Conn
  114. -- Date created : 15 Feb 85
  115. -- Release date : 15 Feb 85
  116. -- Last update  :  2 Dec 85
  117. -- Machine/System Compiled/Run on : DG MV 10000, ROLM ADE
  118. --                                  DEC VAX 11/780, DEC Ada
  119. --                                                           -*
  120. ---------------------------------------------------------------
  121. --                                                           -*
  122. -- Keywords     :
  123. ----------------: Ada Statements, Lines of Code, LOC, Checksum
  124. --
  125. -- Abstract     :
  126. ----------------: FILE_CHECKER uses CAS3 to count the number
  127. -- of Ada statements (terminated by semicolons), the number of
  128. -- lines of code, and a checksum of the non-space (excludes tabs,
  129. -- CR, LF, FF, HT, and spaces) characters in a group of files.
  130. --
  131. -- FILE_CHECKER asks for one file name after another; the user
  132. -- terminates his input by striking RETURN to the file name prompt.
  133. -- FILE_CHECKER then gives a summary report of this data on all
  134. -- files listed.  Include files may be specified along with
  135. -- other file names.
  136. --
  137. -- Ada components used by FILE_CHECKER include GENERIC_LIST and CAS3.
  138. -- CHARACTER_SET is used by CAS3.
  139. -- All are in the Ada Repository in the COMPONENTS subdirectory.
  140. --                                                           -*
  141. ------------------ Revision history ---------------------------
  142. --                                                           -*
  143. -- DATE         VERSION AUTHOR                  HISTORY
  144. -- 2/15/85      1.0     Richard Conn            Initial Release
  145. -- 4/9/85       1.1     Richard Conn            Add Include Files, CAS3
  146. -- 9/25/85      1.2     Richard Conn            Add Output File, Misc
  147. -- 12/2/85      1.3     Richard Conn            Add Count Summary
  148. --                                                           -*
  149. ------------------ Distribution and Copyright -----------------
  150. --                                                           -*
  151. -- This prologue must be included in all copies of this software.
  152. --
  153. -- This software is copyright by the author.
  154. --
  155. -- This software is released to the Ada community.
  156. -- This software is released to the Public Domain (note:
  157. --   software released to the Public Domain is not subject
  158. --   to copyright protection).
  159. -- Restrictions on use or distribution:  NONE
  160. --                                                           -*
  161. ------------------ Disclaimer ---------------------------------
  162. --                                                           -*
  163. -- This software and its documentation are provided "AS IS" and
  164. -- without any expressed or implied warranties whatsoever.
  165. -- No warranties as to performance, merchantability, or fitness
  166. -- for a particular purpose exist.
  167. --
  168. -- Because of the diversity of conditions and hardware under
  169. -- which this software may be used, no warranty of fitness for
  170. -- a particular purpose is offered.  The user is advised to
  171. -- test the software thoroughly before relying on it.  The user
  172. -- must assume the entire risk and liability of using this
  173. -- software.
  174. --
  175. -- In no event shall any person or organization of people be
  176. -- held responsible for any direct, indirect, consequential
  177. -- or inconsequential damages or lost profits.
  178. --                                                           -*
  179. -------------------END-PROLOGUE--------------------------------
  180.  
  181.  
  182. --|MODULE   : FCHECK
  183. --|PSEUDONYM: FILE_CHECKER
  184. --|AUTHOR   : CONN
  185. --|LOCATION : PDL_TOOLS
  186. --|REQUIRES : COUNT_OF_ADA_STATEMENTS
  187. --|REQUIRES : GENERIC_LIST
  188. --|SEE_ALSO : LOCX
  189. --|IEEE_PDL : LOC_ANALYZER
  190. --|DESIGN_STATUS         : DONE
  191. --|IMPLEMENTATION_STATUS : DONE
  192. --|DOCUMENTATION_STATUS  : DONE
  193. --|DATE_RELEASED         : 15 Feb 85
  194. --|DATE_LAST_MODIFIED    :  2 Dec 85 
  195. --|ABSTRACT :
  196. --|     FILE_CHECKER accepts a number of file names and generates a
  197. --| report listing each file name and providing a count of the number
  198. --| of Ada statements in the file, the number of text lines in the
  199. --| file, and a count of the number of Ada comments in the file.
  200. --| The report is stored in an output file whose name is specified
  201. --| by the user.
  202.  
  203. with TEXT_IO, GENERIC_LIST, COUNT_OF_ADA_STATEMENTS; 
  204.  
  205. procedure FILE_CHECKER is 
  206.   VERSION           : constant STRING := "FILE CHECKER, Version 1.3"; 
  207.   INCLUDE_CHARACTER : constant CHARACTER := '@'; 
  208.   COMMENT_CHARACTER : constant CHARACTER := '-'; 
  209.  
  210.   --
  211.   --  A doubly-linked list of file names
  212.   --
  213.   FILE_NAME_LENGTH  : constant := 256; 
  214.   type FILE_NAME_STRING is 
  215.     record
  216.       NAME   : STRING(1 .. FILE_NAME_LENGTH); 
  217.       LENGTH : NATURAL; 
  218.     end record; 
  219.  
  220.   package FN_LIST is 
  221.     new GENERIC_LIST(FILE_NAME_STRING); 
  222.  
  223.     --
  224.     --  Natural Number I/O
  225.     --
  226.   package NAT_IO is 
  227.     new TEXT_IO.INTEGER_IO(NATURAL); 
  228.  
  229.     --
  230.     --  Variables
  231.     --
  232.   DUMMY            : BOOLEAN; 
  233.   STATEMENT_COUNT  : NATURAL; 
  234.   LINE_COUNT       : NATURAL; 
  235.   COMMENT_COUNT    : NATURAL; 
  236.   STATEMENT_SUM    : NATURAL; 
  237.   LINE_SUM         : NATURAL; 
  238.   COMMENT_SUM      : NATURAL; 
  239.   HASH             : NATURAL; 
  240.   FILE_NAME_ENTRY  : FILE_NAME_STRING; 
  241.   FILE_NAME        : STRING(1 .. FILE_NAME_LENGTH); 
  242.   OUTPUT_FILE_NAME : FILE_NAME_STRING; 
  243.   OUTPUT_FD        : TEXT_IO.FILE_TYPE; 
  244.   LENGTH           : NATURAL; 
  245.   NUMBER_OF_FILES  : NATURAL; 
  246.   USER_ABORT       : exception; 
  247.  
  248.   --
  249.   --  Process Include File
  250.   --
  251.   procedure INCLUDE_FILE(INCLUDE_FILE_NAME : in STRING) is 
  252.     FILE_ID         : TEXT_IO.FILE_TYPE; 
  253.     INPUT_LINE      : STRING(1 .. FILE_NAME_LENGTH); 
  254.     LENGTH          : NATURAL; 
  255.     LOCAL_FILE_NAME : FILE_NAME_STRING; 
  256.   begin
  257.     TEXT_IO.OPEN(FILE_ID, TEXT_IO.IN_FILE, INCLUDE_FILE_NAME); 
  258.     TEXT_IO.PUT("    Processing Include File: "); 
  259.     TEXT_IO.PUT_LINE(INCLUDE_FILE_NAME); 
  260.     while not TEXT_IO.END_OF_FILE(FILE_ID) loop
  261.       TEXT_IO.GET_LINE(FILE_ID, INPUT_LINE, LENGTH); 
  262.       TEXT_IO.PUT("      "); 
  263.       TEXT_IO.PUT_LINE(INPUT_LINE(1 .. LENGTH)); 
  264.       if LENGTH /= 0 then 
  265.         case INPUT_LINE(1) is 
  266.           when INCLUDE_CHARACTER => 
  267.             INCLUDE_FILE(INPUT_LINE(2 .. LENGTH)); 
  268.           when COMMENT_CHARACTER => 
  269.             null; 
  270.           when others => 
  271.             LOCAL_FILE_NAME.NAME := INPUT_LINE; 
  272.             LOCAL_FILE_NAME.LENGTH := LENGTH; 
  273.             FN_LIST.APPEND_ELEMENT(LOCAL_FILE_NAME); 
  274.         end case; 
  275.       end if; 
  276.     end loop; 
  277.     TEXT_IO.PUT("    End of Include File: "); 
  278.     TEXT_IO.PUT_LINE(INCLUDE_FILE_NAME); 
  279.  
  280.   exception
  281.     when TEXT_IO.NAME_ERROR => 
  282.       TEXT_IO.PUT("    Cannot Open Include File "); 
  283.       TEXT_IO.PUT_LINE(INCLUDE_FILE_NAME); 
  284.     when others => 
  285.       TEXT_IO.PUT("    End of Include File: "); 
  286.       TEXT_IO.PUT_LINE(INCLUDE_FILE_NAME); 
  287.   end INCLUDE_FILE; 
  288.  
  289.  
  290.   --
  291.   --  Mainline
  292.   --
  293. begin
  294.   TEXT_IO.PUT_LINE(VERSION); 
  295.   TEXT_IO.PUT(" Name of Output File (RETURN to Abort)? "); 
  296.   TEXT_IO.GET_LINE(OUTPUT_FILE_NAME.NAME, OUTPUT_FILE_NAME.LENGTH); 
  297.   if OUTPUT_FILE_NAME.LENGTH > 0 then 
  298.     begin
  299.       TEXT_IO.CREATE(OUTPUT_FD, TEXT_IO.OUT_FILE, OUTPUT_FILE_NAME.NAME(1 .. 
  300.         OUTPUT_FILE_NAME.LENGTH)); 
  301.  
  302.     exception
  303.       when others => 
  304.         TEXT_IO.PUT_LINE("Cannot Create Output File - Aborting"); 
  305.         raise USER_ABORT; 
  306.     end; 
  307.   else 
  308.     raise USER_ABORT; 
  309.   end if; 
  310.   FN_LIST.INITIALIZE_LIST; 
  311.   STATEMENT_SUM := 0; 
  312.   LINE_SUM := 0; 
  313.   COMMENT_SUM := 0; 
  314.   --
  315.   -- Input file names, allowing for comments and include files
  316.   --
  317.   loop
  318.     TEXT_IO.PUT(" File Name > "); 
  319.     TEXT_IO.GET_LINE(FILE_NAME, LENGTH); 
  320.     exit when LENGTH = 0; 
  321.     FILE_NAME_ENTRY.NAME := FILE_NAME; 
  322.     FILE_NAME_ENTRY.LENGTH := LENGTH; 
  323.     case FILE_NAME_ENTRY.NAME(1) is 
  324.       when INCLUDE_CHARACTER => 
  325.         INCLUDE_FILE(FILE_NAME_ENTRY.NAME(2 .. FILE_NAME_ENTRY.LENGTH)); 
  326.       when COMMENT_CHARACTER => 
  327.         null; 
  328.       when others => 
  329.         FN_LIST.APPEND_ELEMENT(FILE_NAME_ENTRY); 
  330.     end case; 
  331.   end loop; 
  332.   --
  333.   -- Print banner
  334.   --
  335.   TEXT_IO.PUT_LINE(OUTPUT_FD, VERSION); 
  336.   TEXT_IO.NEW_LINE(OUTPUT_FD); 
  337.   TEXT_IO.PUT(OUTPUT_FD, "File Name                     "); 
  338.   TEXT_IO.PUT(OUTPUT_FD, "  Statements"); 
  339.   TEXT_IO.PUT(OUTPUT_FD, "    Comments"); 
  340.   TEXT_IO.PUT(OUTPUT_FD, "  Stmts+Cmts"); 
  341.   TEXT_IO.PUT(OUTPUT_FD, "       Lines"); 
  342.   TEXT_IO.NEW_LINE(OUTPUT_FD); 
  343.   TEXT_IO.PUT(OUTPUT_FD, "=============================="); 
  344.   TEXT_IO.PUT(OUTPUT_FD, "  =========="); 
  345.   TEXT_IO.PUT(OUTPUT_FD, "  =========="); 
  346.   TEXT_IO.PUT(OUTPUT_FD, "  =========="); 
  347.   TEXT_IO.PUT(OUTPUT_FD, "  =========="); 
  348.   TEXT_IO.NEW_LINE(OUTPUT_FD); 
  349.   --
  350.   -- Generate listing
  351.   --
  352.   FN_LIST.SET_FIRST; 
  353.   NUMBER_OF_FILES := FN_LIST.LAST_INDEX; 
  354.   for I in 1 .. NUMBER_OF_FILES loop
  355.   --
  356.   -- Get element, print file name, and compute counts
  357.   --
  358.     FILE_NAME_ENTRY := FN_LIST.RETURN_CURRENT_ELEMENT; 
  359.     TEXT_IO.PUT(OUTPUT_FD, FILE_NAME_ENTRY.NAME(1 .. FILE_NAME_ENTRY.LENGTH)); 
  360.     begin
  361.       COUNT_OF_ADA_STATEMENTS(FILE_NAME_ENTRY.NAME(1 .. FILE_NAME_ENTRY.LENGTH)
  362.         , STATEMENT_COUNT, LINE_COUNT, COMMENT_COUNT, HASH); 
  363.  
  364.     exception
  365.       when others => 
  366.         FILE_NAME_ENTRY.LENGTH := 40; 
  367.  
  368.         -- force new line
  369.         STATEMENT_COUNT := 0; 
  370.         LINE_COUNT := 0; 
  371.         COMMENT_COUNT := 0; 
  372.         HASH := 0; 
  373.     end; 
  374.  
  375.     --
  376.     -- Space over or goto next line, depending on file name length
  377.     --
  378.     if FILE_NAME_ENTRY.LENGTH <= 30 then 
  379.       for I in FILE_NAME_ENTRY.LENGTH + 1 .. 30 loop
  380.         TEXT_IO.PUT(OUTPUT_FD, ' '); 
  381.  
  382.       --  space fill
  383.       end loop; 
  384.     else 
  385.       TEXT_IO.NEW_LINE(OUTPUT_FD); 
  386.       for I in 1 .. 30 loop
  387.         TEXT_IO.PUT(OUTPUT_FD, ' '); 
  388.  
  389.       --  space over on next line
  390.       end loop; 
  391.     end if; 
  392.  
  393.     --
  394.     -- Print counts
  395.     --
  396.     TEXT_IO.PUT(OUTPUT_FD, "  "); 
  397.     NAT_IO.PUT(OUTPUT_FD, STATEMENT_COUNT, 10); 
  398.     TEXT_IO.PUT(OUTPUT_FD, "  "); 
  399.     NAT_IO.PUT(OUTPUT_FD, COMMENT_COUNT, 10); 
  400.     TEXT_IO.PUT(OUTPUT_FD, "  "); 
  401.     NAT_IO.PUT(OUTPUT_FD, STATEMENT_COUNT + COMMENT_COUNT, 10); 
  402.     TEXT_IO.PUT(OUTPUT_FD, "  "); 
  403.     NAT_IO.PUT(OUTPUT_FD, LINE_COUNT, 10); 
  404.     TEXT_IO.NEW_LINE(OUTPUT_FD); 
  405.  
  406.     -- 
  407.     -- Update Sums
  408.     -- 
  409.     STATEMENT_SUM := STATEMENT_SUM + STATEMENT_COUNT; 
  410.     COMMENT_SUM := COMMENT_SUM + COMMENT_COUNT; 
  411.     LINE_SUM := LINE_SUM + LINE_COUNT; 
  412.  
  413.     --
  414.     -- Advance to next element
  415.     --
  416.     DUMMY := FN_LIST.CURRENT_NEXT; 
  417.   end loop; 
  418.   TEXT_IO.NEW_LINE(OUTPUT_FD); 
  419.   TEXT_IO.PUT(OUTPUT_FD, "** TOTALS **"); 
  420.   for I in 13 .. 30 loop
  421.     TEXT_IO.PUT(OUTPUT_FD, ' '); 
  422.   end loop; 
  423.   TEXT_IO.PUT(OUTPUT_FD, "  "); 
  424.   NAT_IO.PUT(OUTPUT_FD, STATEMENT_SUM, 10); 
  425.   TEXT_IO.PUT(OUTPUT_FD, "  "); 
  426.   NAT_IO.PUT(OUTPUT_FD, COMMENT_SUM, 10); 
  427.   TEXT_IO.PUT(OUTPUT_FD, "  "); 
  428.   NAT_IO.PUT(OUTPUT_FD, STATEMENT_SUM + COMMENT_SUM, 10); 
  429.   TEXT_IO.PUT(OUTPUT_FD, "  "); 
  430.   NAT_IO.PUT(OUTPUT_FD, LINE_SUM, 10); 
  431.   TEXT_IO.NEW_LINE(OUTPUT_FD); 
  432.   TEXT_IO.CLOSE(OUTPUT_FD); 
  433.  
  434. exception
  435.   when USER_ABORT => 
  436.     null; 
  437.   when others => 
  438.     TEXT_IO.NEW_LINE; 
  439.     TEXT_IO.PUT_LINE("Unknown Exception Trapped"); 
  440. end FILE_CHECKER; 
  441. ::::::::::
  442. fcheck.rno
  443. ::::::::::
  444. .figure 4
  445. .CENTER;  FILE__CHECKER, Version 1.1
  446. .skip 2
  447. .CENTER;  by Richard Conn, TI Ada Technology Branch
  448. .figure 4
  449. .ap
  450.     FILE__CHECKER is a tool which prints out the number of Ada
  451. statements, Ada comments, and text lines in a file.  When executed,
  452. FILE__CHECKER prompts for the name of a file.  The user enters a file
  453. name, strikes return, and FILE__CHECKER prompts again.  This continues
  454. until the user has entered the names of all the desired files, at which
  455. point the user simply strikes return in response to the file name prompt.
  456. FILE__CHECKER then passes through the files in the order specified,
  457. generating a table of the file name, number of Ada statements, number
  458. of Ada comments, and number of text lines.
  459.  
  460. .HEADER LEVEL 1 FILE__CHECKER Inputs and Include Files
  461.  
  462.     In response to the file name prompt, FILE__CHECKER recognizes and
  463. responds to the following types of input:
  464. .no autoparagraph
  465. .list "*"
  466. .LIST ELEMENT; A carriage return (RETURN key), which tells FILE__CHECKER to
  467. terminate input and to print the output table
  468. .LIST ELEMENT; A line beginning with a dash (_-), which is a comment line
  469. .LIST ELEMENT; A file name prefixed by an atsign (_@), which indicates an
  470. include file
  471. .LIST ELEMENT; Any other input, which indicates the name of a file to
  472. include
  473. .end list
  474. .ap
  475.  
  476.     If the user prefixes the name of a component file with an atsign
  477. character (_@), the indicated file is processed as an include file.
  478. An include file is a file which contains the names of zero or more component
  479. files, one name per line starting in the first column.  Other
  480. include files may be referenced within an include file by prefixing
  481. their names with the atsign character.  Comments may be placed within
  482. an include file by placing two dashes in the first two columns of a line.
  483. The following is an example of an include file:
  484.  
  485. .tp 30
  486. .literal
  487.  
  488.          Example                      Comments
  489.          =======                      ========
  490. --
  491. -- This is an include file for        Comment at the beginning
  492. --  my favorite tool
  493. --
  494.                                       Blank lines are allowed
  495. --
  496. -- The following include file
  497. --  contains the names of the         Another comment
  498. --  Ada source files in compilation
  499. --  order
  500. --
  501. @mytool.cmp
  502. --
  503. -- The following are the documentation
  504. --  files
  505. --
  506. mytool.ref
  507. mytool.doc
  508. mytool.idx
  509.  
  510. .end literal
  511.  
  512.     The syntax for an include file used by FILE__CHECKER is identical to
  513. the syntax for an include file used by PAGER, another tool in the Ada
  514. Repository.  Consequently, PAGER include files can be used to generate
  515. FILE__CHECKER reports.
  516.  
  517.  
  518. .HEADER LEVEL 1 Sample Session
  519.  
  520.     The following is a sample session which illustrates the use
  521. of FILE__CHECKER.
  522.  
  523. .literal
  524.  
  525.  
  526. $ dir
  527.  
  528. Directory USER4:[CONN.ADA]
  529.  
  530. CAS3.ADA;1               15  (RWE,RWED,RE,RE)
  531. CHARACTER_SET.ADA;1
  532.                          21  (RWE,RWED,RE,RE)
  533. LIB.DIR;1                 3  (RE,RWE,RE,RE)
  534. PAGER.ADA;1              13  (RWE,RWED,RE,RE)
  535. PAGER.DIS;1               1  (RWE,RWED,RE,RE)
  536. PAGER.DOC;1              31  (RWE,RWED,RE,RE)
  537. PAGER.RNO;1              28  (RWE,RWED,RE,RE)
  538. PAGER.SRC;6             154  (RWE,RWED,RE,RE)
  539. PAGER_COMPILE.DIS;1
  540.                           1  (RWE,RWED,RE,RE)
  541. PAGER_DOCUMENTATION.DIS;1
  542.                           1  (RWE,RWED,RE,RE)
  543. PAGER_SUPPORT.ADA;1
  544.                          47  (RWE,RWED,RE,RE)
  545.  
  546. Total of 11 files, 315 blocks.
  547. $ type pager.dis
  548. --
  549. -- Distribution files for PAGER
  550. --    PAGER_COMPILE.DIS gives the source files in
  551. --      compilation order
  552. --    PAGER_DOCUMENTATION.DIS gives the documentation files
  553. --
  554. @pager_compile.dis
  555. @pager_documentation.dis
  556. $ type pager_compile.dis
  557. --
  558. -- Compilation order for all files required to create the
  559. --  PAGER program
  560. --
  561. character_set.ada
  562. cas3.ada
  563. pager_support.ada
  564. pager.ada
  565. $ fcheck
  566. FILE CHECKER, Version 1.1
  567. File Name > pager.ada
  568. File Name > pager_support.ada
  569. File Name > 
  570.  
  571. File Name                       Statements    Comments       Lines
  572. pager.ada                               74           8         150
  573. pager_support.ada                      324         172         714
  574. $ fcheck
  575. FILE CHECKER, Version 1.1
  576. File Name > @pager_compile.dis
  577.     Processing Include File: pager_compile.dis
  578.       --
  579.       -- Compilation order for all files required to create the
  580.       --  PAGER program
  581.       --
  582.       character_set.ada
  583.       cas3.ada
  584.       pager_support.ada
  585.       pager.ada
  586.     End of Include File: pager_compile.dis
  587. File Name > 
  588.  
  589. File Name                       Statements    Comments       Lines
  590. character_set.ada                      174          30         321
  591. cas3.ada                                56          95         194
  592. pager_support.ada                      324         172         714
  593. pager.ada                               74           8         150
  594. .end literal
  595.