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. |