!++
! Facility:
!   LaTeX Document Preparation System -- \structure extention
!
! Abstract:
!   This file contains the language constructs that make up the 
!   structure definitions for Flow and NS diagrams.
!
! Author:
!   C.M. Lindhout
!
! Creation Date:  28-8-1989
!
! Modification History:
!   5-12-1989 Marion van Geest:
!
!   Structure removed from this file and inserted with standard environments
!   in Latex_environments.lse
!   Some file layout formatting and comment changes
!
! Known bugs:
!
!	\LABEL command definition for flow supersedes the standard LaTeX 
!       \label command definition. May cause some syntactic errors
!
!--
! Contact:
!
! Marion van Geest,
! KM/CAWCS
! P.O. Box 10000
! 1780 CA Den Helder
! The Netherlands

DELETE PLACEHOLDER "struct-name" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "struct-name" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="struct name" -
    /DUPLICATION=CONTEXT_DEPENDENT -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "Enter struct name"

    END DEFINE

DELETE PLACEHOLDER "struct-description" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "struct-description" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="struct description" -
    /DUPLICATION=CONTEXT_DEPENDENT -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "Enter struct description"

    END DEFINE

DELETE PLACEHOLDER "statement" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "statement" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="struct Symbol" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=MENU

    "action"	    /PLACEHOLDER
    "if"	    /PLACEHOLDER
    "ifthen"	    /PLACEHOLDER
    "while"	    /PLACEHOLDER
    "repeatuntil"   /PLACEHOLDER
    "case"	    /PLACEHOLDER
    "proc"	    /PLACEHOLDER
    "label"	    /PLACEHOLDER

    END DEFINE

DELETE TOKEN "\action" -
    /LANGUAGE=LATEX
DEFINE TOKEN "\action" -
    /LANGUAGE=LATEX -
    /PLACEHOLDER=action

DELETE PLACEHOLDER "action" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "action" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="list of actions" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "\ACTION{<<action-list>>}%"

    END DEFINE

DELETE TOKEN "\proc" -
    /LANGUAGE=LATEX
DEFINE TOKEN "\proc" -
    /LANGUAGE=LATEX -
    /PLACEHOLDER=proc

DELETE PLACEHOLDER "proc" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "proc" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="procedure box" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "\PROC{<proc-name>}{<proc-description>}%"

    END DEFINE

DELETE TOKEN "\label" -
    /LANGUAGE=LATEX
DEFINE TOKEN "\label" -
    /LANGUAGE=LATEX -
    /PLACEHOLDER=label

DELETE PLACEHOLDER "label" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "label" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="label" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "\LABEL{<label-name>}%"

    END DEFINE

DELETE TOKEN "\if" -
    /LANGUAGE=LATEX
DEFINE TOKEN "\if" -
    /LANGUAGE=LATEX -
    /PLACEHOLDER=if

DELETE PLACEHOLDER "if" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "if" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="if ... then ... else ... endif" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "\IF{<text>}%"
    "\THEN{%
    "  <<statement>>..."
    "}%"
    "\ELSE{%
    "  <<statement>>..."
    "}%"
    "\ENDIF%"

    END DEFINE

DELETE TOKEN "\ifthen" -
    /LANGUAGE=LATEX
DEFINE TOKEN "\ifthen" -
    /LANGUAGE=LATEX -
    /PLACEHOLDER=ifthen

DELETE PLACEHOLDER "ifthen" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "ifthen" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="if ... then ... else endif" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "\IF{<text>}%"
    "\THEN{%
    "  <<statement>>..."
    "}%"
    "\ELSE{}%"
    "\ENDIF%"

    END DEFINE

DELETE TOKEN "\while" -
    /LANGUAGE=LATEX
DEFINE TOKEN "\while" -
    /LANGUAGE=LATEX -
    /PLACEHOLDER=while

DELETE PLACEHOLDER "while" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "while" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="while ... endwile" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "\WHILE{<text>}{%
    "  <statement>..."
    "}%"
    "\ENDWHILE%"

    END DEFINE

DELETE TOKEN "\repeatuntil" -
    /LANGUAGE=LATEX
DEFINE TOKEN "\repeatuntil" -
    /LANGUAGE=LATEX -
    /PLACEHOLDER=repeatuntil

DELETE PLACEHOLDER "repeatuntil" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "repeatuntil" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="repeat ... until" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "\REPEAT{%
    "  <statement>..."
    "}%"
    "\UNTIL{<text>}%"

    END DEFINE

DELETE TOKEN "\case" -
    /LANGUAGE=LATEX
DEFINE TOKEN "\case" -
    /LANGUAGE=LATEX -
    /PLACEHOLDER=case

DELETE PLACEHOLDER "case" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "case" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="case ... is when ... : ... endcase" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "\CASE{<text>}{%"
    "  <when>..."
    "}%"
    "\ENDCASE%"

    END DEFINE

DELETE TOKEN "\when" -
    /LANGUAGE=LATEX
DEFINE TOKEN "\when" -
    /LANGUAGE=LATEX -
    /PLACEHOLDER=when

DELETE PLACEHOLDER "when" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "when" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="when condition statements " -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "\WHEN{<<text>>}{%"
    "  <statement>..."
    "}%"

    END DEFINE

DELETE PLACEHOLDER "action-list" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "action-list" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="action list, new lines seprated by \\" -
    /DUPLICATION=CONTEXT_DEPENDENT -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "Enter action-list, new lines seperated by \\"

    END DEFINE

DELETE PLACEHOLDER "proc-name" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "proc-name" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="procedure name" -
    /DUPLICATION=CONTEXT_DEPENDENT -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "Enter procedure name"

    END DEFINE

DELETE PLACEHOLDER "proc-description" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "proc-description" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="procedure description" -
    /DUPLICATION=CONTEXT_DEPENDENT -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "Enter procedure description"

    END DEFINE

DELETE PLACEHOLDER "label-name" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "label-name" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="label name, limited number of characters" -
    /DUPLICATION=CONTEXT_DEPENDENT -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "Enter label name"

    END DEFINE

DELETE PLACEHOLDER "text" -
    /LANGUAGE=LATEX
DEFINE PLACEHOLDER "text" -
    /LANGUAGE=LATEX -
    /DESCRIPTION="text to be entered" -
    /DUPLICATION=CONTEXT_DEPENDENT -
    /SEPARATOR="" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "Enter text"

    END DEFINE