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