home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume12 / cake / part09 / Script / ol < prev    next >
Encoding:
AWK Script  |  1987-10-15  |  3.0 KB  |  141 lines

  1. #! /bin/awk -f
  2. BEGIN        {
  3.             for (i = 1; i <= 6; i++)
  4.             {
  5.                 sect_no[i] = 0;
  6.                 sect_line[i] = 0;
  7.                 sect_start[i] = 0;
  8.             }
  9.  
  10.             curr_ind = "";
  11.             sect_ind = "    "
  12.             theo_ind = "    "
  13.             offset = "            ";
  14.             lineno = 0;
  15.         }
  16. /^\.sh/        {
  17.             for (i = $2; i <= 6; i++)
  18.             {
  19.                 if (sect_line[i] != 0)
  20.                 {
  21.                     line[sect_line[i]] = sprintf(line[sect_line[i]], NR-sect_start[i]);
  22.                 }
  23.             }
  24.  
  25.             ++sect_no[$2];
  26.             sect_line[$2] = lineno+1;
  27.             sect_start[$2] = NR;
  28.  
  29.             for (i = $2+1; i <= 6; i++)
  30.             {
  31.                 sect_no[i] = 0;
  32.                 sect_line[i] = 0;
  33.                 sect_start[i] = 0;
  34.             }
  35.  
  36.             curr_ind = "";
  37.             for (i = 2; i <= $2; i++)
  38.                 curr_ind = curr_ind sect_ind;
  39.  
  40.             if ($2 == 1)
  41.                 theo_num = 0;
  42.  
  43.             line[++lineno] = sprintf("%4d: %s(%%3d) section ", NR, curr_ind);
  44.             pre = "";
  45.             for (i = 1; i <= $2; i++)
  46.             {
  47.                 line[lineno] = line[lineno] sprintf("%s%d", pre, sect_no[i]);
  48.                 pre = ".";
  49.             }
  50.  
  51.             line[lineno] = line[lineno] offset;
  52.             pre = "";
  53.             for (i = 3; i <= NF; i++)
  54.             {
  55.                 line[lineno] = line[lineno] sprintf("%s%s", pre, $i);
  56.                 pre = " ";
  57.             }
  58.  
  59.             line[lineno] = line[lineno] "\n";
  60.         }
  61. /^\.uh/        {
  62.             line[++lineno] = sprintf("%4d:      %s section ", NR, curr_ind);
  63.             line[lineno] = line[lineno] offset;
  64.             pre = "";
  65.             for (i = 2; i <= NF; i++)
  66.             {
  67.                 line[lineno] = line[lineno] sprintf("%s%s", pre, $i);
  68.                 pre = " ";
  69.             }
  70.  
  71.             line[lineno] = line[lineno] "\n";
  72.         }
  73. /^\.tr/        {
  74.             line[++lineno] = sprintf("%4d:      %s%s theorem ", NR, curr_ind, theo_ind);
  75.             line[lineno] = line[lineno] sprintf("%d.%d ", sect_no[1], ++theo_num);
  76.             line[lineno] = line[lineno] offset;
  77.             pre = "";
  78.             for (i = 2; i <= NF; i++)
  79.             {
  80.                 line[lineno] = line[lineno] sprintf("%s%s", pre, $i);
  81.                 pre = " ";
  82.             }
  83.  
  84.             line[lineno] = line[lineno] "\n";
  85.         }
  86. /^\.le/        {
  87.             line[++lineno] = sprintf("%4d:      %s%s lemma ", NR, curr_ind, theo_ind);
  88.             line[lineno] = line[lineno] sprintf("%d.%d ", sect_no[1], ++theo_num);
  89.             line[lineno] = line[lineno] offset;
  90.  
  91.             pre = "";
  92.             for (i = 2; i <= NF; i++)
  93.             {
  94.                 line[lineno] = line[lineno] sprintf("%s%s", pre, $i);
  95.                 pre = " ";
  96.             }
  97.  
  98.             line[lineno] = line[lineno] "\n";
  99.         }
  100. /^\.co/        {
  101.             line[++lineno] = sprintf("%4d:      %s%s corollary ", NR, curr_ind, theo_ind);
  102.             line[lineno] = line[lineno] sprintf("%d.%d ", sect_no[1], ++theo_num);
  103.             line[lineno] = line[lineno] offset;
  104.  
  105.             pre = "";
  106.             for (i = 2; i <= NF; i++)
  107.             {
  108.                 line[lineno] = line[lineno] sprintf("%s%s", pre, $i);
  109.                 pre = " ";
  110.             }
  111.  
  112.             line[lineno] = line[lineno] "\n";
  113.         }
  114. /^\.dt/        {
  115.             line[++lineno] = sprintf("%4d:      %s%s definition ", NR, curr_ind, theo_ind);
  116.             line[lineno] = line[lineno] offset;
  117.  
  118.             pre = "";
  119.             for (i = 2; i <= NF; i++)
  120.             {
  121.                 line[lineno] = line[lineno] sprintf("%s%s", pre, $i);
  122.                 pre = " ";
  123.             }
  124.  
  125.             line[lineno] = line[lineno] "\n";
  126.         }
  127. END        {
  128.             line[++lineno] = sprintf("%4d:       END\n", NR);
  129.  
  130.             for (i = 1; i <= 6; i++)
  131.             {
  132.                 if (sect_line[i] != 0)
  133.                 {
  134.                     line[sect_line[i]] = sprintf(line[sect_line[i]], NR-sect_start[i]);
  135.                 }
  136.             }
  137.  
  138.             for (i = 1; i <= lineno; i++)
  139.                 printf "%s", line[i];
  140.         }
  141.