| @@ -31,9 +31,20 @@ A comma within a nested parenthesis is part of an argument value, not an argumen · 30 unmodified lines |
| 31 | Potential macro names consist of alphabetic letters, Unicode characters, | 31 | Potential macro names consist of alphabetic letters, Unicode characters, |
| 32 | digits, and underscore `\_', where the first character is not a digit. | 32 | digits, and underscore `\_', where the first character is not a digit. |
| 33 | .PP | 33 | .PP |
| 34 | The left and right single quotes(ie, grave and acute accents \`\|\' ) are used to quote strings. | 34 | Comments begin with the |
| | 35 | .B # |
| | 36 | character and extend to the end of that line; the characters in a comment are copied to the current |
| | 37 | output stream unchanged. |
| | 38 | The comment start and end sequences may be changed using the |
| | 39 | .B changecom |
| | 40 | call described below. |
| | 41 | .PP |
| | 42 | The left and right single quotes (ie, grave and acute accents \`\|\' ) are used to quote strings. |
| 35 | Because the left and right quotes are distinct, quoted strings may nest. | 43 | Because the left and right quotes are distinct, quoted strings may nest. |
| 36 | The value of a quoted string is the string stripped of the outermost quotes. | 44 | The value of a quoted string is the string stripped of the outermost quotes. |
| | 45 | The left and right quote characters may be changed using the |
| | 46 | .B changequote |
| | 47 | call described below. |
| 37 | .PP | 48 | .PP |
| 38 | When | 49 | When |
| 39 | .I m4 | 50 | .I m4 |
| @@ -80,9 +91,10 @@ is replaced by the · 40 unmodified lines |
| 80 | argument of that macro call. | 91 | argument of that macro call. |
| 81 | Argument 0 is the name of the macro; | 92 | Argument 0 is the name of the macro; |
| 82 | missing arguments are replaced by the null string. | 93 | missing arguments are replaced by the null string. |
| 83 | If the macro value is the same as its name, or the value is simply | 94 | If the macro value is the same as its name, or the value is |
| 84 | .BR $0 , | 95 | .BR $0 , |
| 85 | the result is the macro name. | 96 | the result is the macro name. |
| | 97 | To prevent expansion of a name when redefining a macro, quote the first argument. |
| 86 | .TP | 98 | .TP |
| 87 | divert | 99 | divert |
| 88 | .I M4 | 100 | .I M4 |
| @@ -113,7 +125,9 @@ Prints its argument · 24 unmodified lines |
| 113 | on the diagnostic output file. | 125 | on the diagnostic output file. |
| 114 | .TP | 126 | .TP |
| 115 | eval | 127 | eval |
| 116 | Evaluates its argument as an arithmetic expression, using 32-bit arithmetic. | 128 | Evaluates its argument as an arithmetic expression, using 32-bit arithmetic, |
| | 129 | and returns the result as a signed decimal integer. |
| | 130 | The only literals are decimal integers. |
| 117 | Operators are those of Limbo: the binary operators | 131 | Operators are those of Limbo: the binary operators |
| 118 | .BR || , | 132 | .BR || , |
| 119 | .BR && , | 133 | .BR && , |
| @@ -133,7 +147,7 @@ the unary operators · 13 unmodified lines |
| 133 | .BR ~ , | 147 | .BR ~ , |
| 134 | .BR ! ; | 148 | .BR ! ; |
| 135 | and parenthesis. | 149 | and parenthesis. |
| 136 | The operator precedence is the same as in Limbo. | 150 | Operator precedence is the same as in Limbo. |
| 137 | Right shifts are signed. | 151 | Right shifts are signed. |
| 138 | .TP | 152 | .TP |
| 139 | ifdef | 153 | ifdef |
| @@ -226,8 +240,9 @@ the given macro · 86 unmodified lines |
| 226 | which may be one of the predefined macros. | 240 | which may be one of the predefined macros. |
| 227 | .PP | 241 | .PP |
| 228 | .I M4 | 242 | .I M4 |
| 229 | in Inferno is more closely related to the original version in Seventh Edition UNIX | 243 | in Inferno is more closely related to the original |
| 230 | than the more elaborate relatives in System V and POSIX. | 244 | .I m4 |
| | 245 | in Seventh Edition UNIX than its more elaborate relatives in System V and POSIX. |
| 231 | .SH "SEE ALSO" | 246 | .SH "SEE ALSO" |
| 232 | B. W. Kernighan and D. M. Ritchie, | 247 | B. W. Kernighan and D. M. Ritchie, |
| 233 | .I The M4 Macro Processor | 248 | .I The M4 Macro Processor |