Next: , Previous: , Up: AT commands   [Contents][Index]


5.13 Pseudo (invisible) operators

Pseudo- or invisible operators are ignored by FTANGLE and not printed by FWEAVE; however, they retain grammatical significance that helps out FWEAVE in its attempts to understand the syntax.

5.13.1 ‘@e’: Pseudo-expression

@e’ is an invisible expression (‘pseudo-expression’) (see Pseudo-operators). It is sometimes useful in situations where FWEAVE’s pretty-printing has broken down because it didn’t properly understand the language syntax. If, for example, FWEAVE failed to properly parse the C statement

p = (int (*))q;

one might get things to work properly by saying

p = (int (*@e))q;

In this particular case, one is patching up a deficiency (all right, a bug) in FWEAVE’s “production rules.” (This particular bug may no longer exist.) However, there are other situations in which the use of ‘@e’ might be necessary. Consider, for example, the C macro definition

#define A(x) = x

Here the replacement text of the macro is ‘= x’, which by itself is not a valid construction in C. When the ‘-1’ or ‘-2’ options are used, FWEAVE will report an “irreducible scrap sequence” in this situation (although it may typeset it correctly anyway). To eliminate the warning message, say instead

#define A(x) @e = x

Now the fragment ‘@e = x’ is interpreted as a valid expression.


Next: , Previous: , Up: AT commands   [Contents][Index]