! Expander Abbreviation definitions file. 
!
! Comment character (!) must appear in first column.
! Multiple lines joined as one by placing '\' as last character in line.
! Since `\` is the typical 'C' escape character, to have it appear in
! resulting expansion it must appear as '\\'.
! Fields are defined with |><|. Text may go between |> and <|.
! The '\n' character represents an auto-indent newline (indent to abbreviation). 
! The '\r' character represents an auto-indent newline (indent to 1st non-space).. 
! The '\N' character represents an auto-indent newline to the next available
! tab position (indent to abbreviation).
! The '\R' character represents an auto-indent newline to the next available
! tab position (indent to 1st non-space).
! An optional digit (0-9) may follow the auto-indent characters '\n' and '\r'. 
! The digit represents the number of indentations to be applied after the 
! newline character has been inserted (\N = \n1, \R = \r1).
! File expansion character is '@@'. Environment variables can be used with '@@'.
! Environment variables can also be used in the definition. They can be
! in the following forms: $LEGAL ${LEGAL} $(LEGAL). To actually have the
! dollar sign appear as part of the expansion it must be escaped with a
! backslash `\` character (eg. '\$' ).
!
! Leading '\.' means produce optional newline and reset indentation to zero.
! The '@>' marks a forward definition reference. The @< marks a backward
! definition reference. A definition reference is terminated with '@'.
! The conditional use statement '@if <name> [<name>...]' is evaluated
! by the expander in conjunction with the environment variable EXP_LANGUAGE.
! Abbreviations outside an '@if - @fi' pair are always available to expander.
! Abbreviations within the '@if - @fi' pair are available only if EXP_LANGUAGE
! has one of the values of <name>.
! An @include statement allows definition files to be nested. 
! Be careful with definition references. They will have to either explicitly
! appear in the include file or will have to themselves be included.
! An @when statement is equivalent to an if-include-fi combination.
! 
!   @if C_code                  |
!   @include C_code.def         |   @when C_code @use C_code.def
!   @fi                         |
!
!
! Some users may want to have a definition in a language specific
! definition file to take precedence over the same defintion found in the
! generic (root, non language specific) definitions file. To achieve this,
! place the language specific definitions before the generic definitions.
!
! Due to the fact that the expansion mechanism attempts to match exactly
! what was entered as the abbreviation, if you want similar substrings to
! produce different expansions, make sure to place the definition
! abbreviations from shortest to longest in the definitions file. For
! example,
!
! te    the shortest abbreviation
! tes   the next shortest abbreviation
! test  the longest abbreviation definition
!
! If any other ordering is used, the results will probably not be what is
! desired. For example, in the sample above, if the 'test' definition
! occurs in the file before the other two definitions, then expansions of
! 't', 'te', 'tes', and 'test' will all match the 'test' definition. The
! other definitions will never be seen for expansion.
!-------------------------------------------------------------------------------

! personal information (define EXP_USER, $EXP_EMAIL in environment)
author    @>me@
me        $EXP_USER
signature @<me@ (@>email@)
email     $EXP_EMAIL

@include  mail_addresses

mail     @@$EXPANDER_TPL/letter.tpl
demo     @@$EXPANDER_TPL/expander_demo.tpl
field    |>|><|<|

! language specific definitions
@when C_code     @use C_code.def
@when C++        @use C++.def
@when perl       @use perl.def
@when expect tcl @use tcl.def
@when nmacro     @use nmacro.def
@when bourne     @use bourne.def
@when html       @use html.def
@when java       @use java.def

