49 lines
1.8 KiB
Plaintext
49 lines
1.8 KiB
Plaintext
YAPP is a simple macro preprocessor designed to do minor tweaking to
|
|
another program's inputs.
|
|
|
|
In its input, anything of the form ${foo} is expanded with the variable
|
|
named foo. It is an error if ${foo} is not defined.
|
|
If you need to escape a dollar sign for some reason, the variable
|
|
with the empty string name , ${}, has the value "$".
|
|
|
|
The result of macro expansion is *not* re-expanded. Expansion is done only
|
|
when definitions are made.
|
|
|
|
After variable expansion, lines are checked to see if they are control lines.
|
|
Control lines begin with ## (after optional leading whitespace) All such lines are deleted and
|
|
do not appear in the output. ### is a comment. Other options
|
|
are:
|
|
|
|
##set variable=value
|
|
|
|
value may have one of the following forms:
|
|
token: Trailing whitespace is stripped. The token may not contain
|
|
any whitespace. Use quotes if it's complicated.
|
|
"string": The string may have embedded quotes, and whitespace after
|
|
the closing quote.
|
|
<<"DELIM": This is a here-document, and the value is all of the following
|
|
lines up until, but not including, the newline that precedes a line
|
|
that consists soley of DELIM, for any DELIM string.
|
|
The Delim must be in quotes. You have two options:
|
|
"DELIM": Expand macros in the body of the here-document.
|
|
'DELIM': Do not expand macros in the here-document.
|
|
|
|
##include "filename": Insert the named file in place of the current line.
|
|
|
|
##if num == num
|
|
##if num != num
|
|
##if num < num
|
|
##if num > num
|
|
##if num <= num
|
|
##if num >= num
|
|
##if token eq token
|
|
##if token ne token
|
|
##ifdef symbol
|
|
##ifndef symbol
|
|
##else
|
|
##endif
|
|
You can figure this one out. Macros in between are expanded as usual
|
|
(so the ##else or ##endif may be in a macro expansion), but the result
|
|
is ignored. String comparison is allowed only between simple words.
|
|
#ifdef symbol is true if ${symbol} is defined.
|