%
% eng-form.sty
%
% This is part of the TeSLa package that is the subject of the paper
% entitled "An Example Special Purpose Input Language to LaTeX" that
% was (will be) presented to the TUG94 conference in Santa Barabara.
% 
% Please see tesla.sty for more details.
% ======================================
%

%
% Customization Required for [tvar.
% =================================
%
% The English form is the second "form" used by TeSLa.  That is, the 
% tabular form (the first "form") is ignored when the English form is
% used.  This is implemented with the \xform command, whose arguments
% are:
%          #1 - The tabular form
%          #2 - The English form; IGNORED in this style
%
% See the "The [tvar command" subsection of "The Implementation" section 
% in the paper for more details.
%
\gdef\xform #1#2{#2}

%
% Customization Required for [tgroup.
% ===================================
%
% The \xbegin command defines the TeX formatting to be inserted at the
% begining of a group of rules.  Its arguments are:
%          #1 - TeX command to be used for the \trule command
%          #2 - the number of conditions in each rule
%          #3 - the number of columns in the table (#2 + 1)
%          #4 - the width of each column
%          #5 - the title for the group of rules
% In this English form, we start a new LaTeX subsection.
%
% The \sep command defines the TeX formatting to be inserted to add
% some extra separation between subgroups of a group of rules.  In
% this English form, it does nothing.
%
% The \xend command defines the TeX formatting to be inserted at the
% end of a group of rules.  In this English form, it does nothing.
%
% See the "The [tgroup command" subsection of "The Implementation" section
% in the paper for more details.
%
\gdef\xbegin#1#2#3#4#5{
    \gdef\trule{\csname #1\endcsname}
    \subsection*{#5 Rules}
    }
\gdef\xsep{}
\gdef\xend{}

%
% Customization Required for [trule.
% ==================================
%
% The \xpre command defines the TeX formatting to be inserted for an
% empty KB-condition.  In this English form, it does nothing.
%
% The \xif command defines the TeX formatting to be inserted for the
% first non-empty KB-condition.  It takes one argument:
%          #1 - The first non-empty KB-condition
% In this English form, it inserts an "If" and columns) and the
% KB-condition.
%
% The \xand command defines the TeX formatting to be inserted for the
% rest of the KB-conditions.  It takes one argument:
%          #1 - The KB-condition
% In this English form, it insert an "and" and the  KB-condition, if it
% is non-empty.
%
% The \xthen command defines the TeX formatting to be inserted for the
% KB-consequence.  It takes one argument:
%          #1 - The KB-consequence
% In this English form, it inserts a "then", the KB-consequence and a 
% period (.).
%
% See the "The [trule command" subsection of "The Implementation" section
% in the paper for more details.
%
\gdef\xpre{}
\gdef\xif#1{\par {\bf If} \xrel #1}
\gdef\xand#1{\ifx#1\empty\else{\bf and} \xrel #1 \fi }
\gdef\xthen#1{{\bf then} \xrel #1.}

%
% Customization Required for [ttext and [trem.
% ============================================
%
% The \xtext command defines the TeX formatting to be inserted for
% arbitrary explanatory text.  It takes one argument:
%          #1 - The explantory text
% In this English form, it prints the text---in italics---as a separate
% paragraph. 
%
% The \xrem command defines the TeX formatting to be inserted for
% extra explanatory text into the tabular form.  It takes one argument:
%          #1 - The extra explantory text
% In this English form, it does nothing.
%
\gdef\xtext#1{\par{\em #1}}
\gdef\xrem#1{}

