Annotation of researchv10dc/dist/man/v4/man6/m6.6, revision 1.1.1.1

1.1       root        1: .th M6 VI 11/15/72
                      2: .sh NAME
                      3: m6 \*- general purpose macro processor
                      4: .sh SYNOPSIS
                      5: .bd m6
                      6: [
                      7: .bd \*-d
                      8: arg1 ] [ arg2 [ arg3 ] ]
                      9: .sh DESCRIPTION
                     10: .it M6
                     11: takes input from file arg2 (or standard input if arg2 is missing)
                     12: and places output on file arg3 (or standard output).
                     13: A working file of definitions, ``m.def'',
                     14: is initialized from  file arg1 if that is supplied.
                     15: .it M6
                     16: differs from the standard [1] in these
                     17: respects:
                     18: .s3
                     19: #trace:, #source: and #end:
                     20: are not defined.
                     21: .s3
                     22: #meta,arg1,arg2: transfers the role of metacharacter
                     23: arg1 to character arg2. If two metacharacters become identical
                     24: thereby, the outcome of further processing is not guaranteed.
                     25: For example, to make [ ]{} play the
                     26: roles of #:<> type
                     27: .s3
                     28: .in+5
                     29: \\\#meta,<\\\#>,[:
                     30: .br
                     31: [meta,<:>,]:
                     32: .br
                     33: [meta,[substr,<<>>,1,1;,{]
                     34: .br
                     35: [meta,[substr,{{>>,2,1;,}]
                     36: .in-5
                     37: .s3
                     38: #del,arg1: deletes the definition of macro arg1.
                     39: .s3
                     40: #save: and #rest: save and restore the definition table together with
                     41: the current metacharacters on file
                     42: m.def.
                     43: .s3
                     44: #def,arg1,arg2,arg3: works as in the standard with the extension
                     45: that an integer may be
                     46: supplied to arg3 to cause the new macro to perform the
                     47: action of a specified builtin before its replacement text is evaluated.
                     48: Thus all builtins
                     49: except #def: can be retrieved even after deletion.
                     50: Codes for arg3 are:
                     51: .s3
                     52: .in+5
                     53: .nf
                     54: 0 \*- no function
                     55: 1,2,3,4,5,6 \*- gt,eq,ge,lt,ne,le
                     56: 7,8 \*- seq,sne
                     57: 9,10,11,12,13 \*- add,sub,mpy,div,exp
                     58: 20 \*- if
                     59: 21,22 \*- def,copy
                     60: 23 \*- meta
                     61: 24 \*- size
                     62: 25 \*- substr
                     63: 26,27 \*- go,gobk
                     64: 28 \*- del
                     65: 29 \*- dnl
                     66: 30,31 \*- save,rest
                     67: .fi
                     68: .in-5
                     69: .sh FILES
                     70: m.def  working file of definitions
                     71: .br
                     72: /usr/lang/mdir/m6a     m6 processor proper (/usr/bin/m6 is only an initializer)
                     73: .br
                     74: /usr/lang/mdir/m6b     default initialization for m.def
                     75: .br
                     76: /bin/cp        used for copying initial value of m.def
                     77: .sh "SEE ALSO"
                     78: [1] A. D. Hall,
                     79: The M6 Macroprocessor, Bell Telephone Laboratories, 1969
                     80: .sh DIAGNOSTICS
                     81: ``err''
                     82: \*- a bug, an unknown builtin or a bad definition table
                     83: .br
                     84: ``oprd''\*-can't open input or initial definitions
                     85: .br
                     86: ``opwr''\*-can't open output
                     87: .br
                     88: ``ova'' \*- overflow of nested arguments
                     89: .br
                     90: ``ovc'' \*- overflow of calls
                     91: .br
                     92: ``ovd'' \*- overflow of definitions
                     93: .br
                     94: ``Try again'' \*- no process available for copying m.def
                     95: .sh AUTHOR
                     96: M. D. McIlroy
                     97: .sh BUGS
                     98: Characters in internal tables are stored
                     99: one per word.
                    100: They really should be packed to improve capacity.
                    101: For want of space (and because of unpacked formats) no file arguments
                    102: have been provided to #save: or #rest:,
                    103: and no check is made on the actual opening of file m.def.
                    104: Again to save space,
                    105: garbage collection makes calls on #save: and #rest: and so overwrites
                    106: m.def.
                    107: .s3
                    108: Since the program is written in the defunct language
                    109: B it is currently unavailable.
                    110: Expressions of interest may make a C version appear.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.