All FWEB commands begin with the character ‘@’. It is recommended that these begin in column 1 if possible. This is required in some cases [e.g., the ‘@x’, ‘@y’, and ‘@z’ in change files (see Change files), or column-oriented FORTRAN-77 processing].
Some of these control codes may be used anywhere; others begin a new part of the current section. (For a discussion of sections and parts, see Structure.) For a quick summary of the control-code mappings and to see which codes begin new parts, say ‘ftangle -@’. See -AT.
Debugging commands: | ||
|---|---|---|
| • @0: | Turn off debugging. | |
| • @1: | Display irreducible scraps. | |
| • @2: | Display detailed scrap reductions. | |
Literal control characters: | ||
| • @@: | Insert an ’@’. | |
| • @|: | Vertical bar/optional line break. | |
Beginning of section: | ||
| • @ : | Begin minor section. | |
| • @*: | Begin major section. | |
Beginning of code part: | ||
| • @<: | Begin module name. | |
| • @>: | End module name. | |
| • @A: | Begin code part. | |
| • @a: | Begin code part and mark next identifier. | |
Control codes b–z: | ||
| • @B: | Insert left brace; suppress default insertion of breakpoint command. | |
| • @b: | Insert breakpoint command. | |
| • @c: | Set language to C. | |
| • @c++: | Set language to C++. | |
| • @D: | Define outer macro. | |
| • @d: | Define outer macro and mark it. | |
| • @E: | Treat next identifier as ordinary expression. | |
| • @e: | Invisible expression. | |
| • @f: | Format identifier or module name. | |
| • @I: | Include a WEB file, but don’t print it. | |
| • @i: | Include a WEB file. | |
| • @K: | Expand global RCS-like keyword. | |
| • @k: | Expand local RCS-like keyword. | |
| • @L: | Set language. | |
| • @l: | Specify limbo text. | |
| • @M: | Define an FWEB macro. | |
| • @m: | Define a FWEB macro and mark it. | |
| • @N: | Turn on language-independent mode. | |
| • @n: | Set language to Fortran–77. | |
| • @n9: | Set language to Fortran–90. | |
| • @O: | Open new output file (global scope). | |
| • @o: | Open new output file (local scope). | |
| • @q: | Turn off or on module and line information locally. | |
| • @R: | Treat next identifier as integer-like reserved word. | |
| • @r: | Set language to Ratfor–77. | |
| • @r9: | Set language to Ratfor–90. | |
| • @u: | Undefine an outer macro. | |
| • @v: | Overload an operator. | |
| • @W: | Overload an identifier. | |
| • @x: | Terminate ignorable material. | |
| • @y: | End first part of change. | |
| • @z: | Begin ignorable material. | |
Conversion to ASCII: | ||
| • @’: | Convert single character to ASCII. | |
| • @": | Convert string to ASCII. | |
Forward referencing: | ||
| • @[: | Mark next identifier as defined in this section. | |
Comments: | ||
| • @/*: | Begin a long verbatim comment. | |
| • @//: | Begin a short verbatim comment. | |
| • @%: | Ignore everything to next newline. | |
| • @?: | Begin a compiler directive. | |
| • @(: | Begin a meta-comment. | |
| • @): | End a meta-comment. | |
Special brace: | ||
| • @{: | Insert left brace; suppress newlines in pretty-printing. | |
Index entries: | ||
| • @_: | Force an index entry to be underlined (marked as defined). | |
| • @-: | Delete index entry for following identifier. | |
| • @+: | Force index entry for following identifier. | |
| • @^: | Make index entry in Roman type. | |
| • @.: | Make index entry in typewriter type. | |
| • @9: | Make index entry in format controlled by ‘\9’. | |
Control text: | ||
| • @t: | Put control text into TeX \hbox. | |
| • @=: | Pass control text verbatim to the output. | |
Spacing: | ||
| • @comma: | Insert a thin space. | |
| • @/: | Insert a line break, preserving indentation. | |
| • @\: | Insert a line break and backspace. | |
| • @|: | Insert optional line break in an expression. | |
| • @#: | Force line break with blank line. | |
| • @~: | Cancel a line break (tie adjacent lines together). | |
| • @&: | Join left and right items. | |
Pseudo (invisible) operators: | ||
| • @e: | Invisible expression. | |
| • @;: | Invisible semicolon. | |
| • @colon: | Invisible colon. | |
Miscellaneous: | ||
| • @!: | Inhibit expansion for next macro. | |