#!/bin/ksh
# 11.2.1997 pmp
# Copyright 1998 Open Environment Software Oy

case $1 in 
  ("ali") cat << EOT;;
\$Begin_AliasDef
  \$AliasId ${2:-XXX}
  \$ExpandedId ${3:-XXX}
  \$Comment /* ${4:-XXX_comment} */ --OPTIONAL
\$End_AliasDef

EOT

  ("asp") cat << EOT;;
\$TTCN_ASP_TypeDef
  \$ASP_Id ${2:-XXX} ( /* ${3:-XXX_full_identifier_here} */ )
  \$PCO_Type ${4:-XXX}
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
  \$ASP_ParDecls
    \$ASP_ParDecl
      \$ASP_PArId XXX_par1 ( /* XXX_full_identifier_here */ )
      \$ASP_ParType XXX_INTEGER [1..10]
      \$Comment /* XXX_comment */ --OPTIONAL
    \$End_ASP_ParDecl
  \$End_ASP_ParDecls
  \$Comment /* ${6:-XXX_comment} */ --OPTIONAL
\$End_TTCN_ASP_TypeDef

EOT

  ("aspcons") cat << EOT;;
\$Begin_TTCN_ASP_Constraint
  \$ConsId ${2:-XXX}
  \$ASP_Id ${3:-XXX} ( /* ${4:-XXX_full_identifier_here} */ )
  \$DerivPath --XXX.XXX.
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
  \$ASP_ParValues
    \$ASP_ParValue
      \$ASP_PArId XXX_par1 ( /* XXX_full_identifier_here */ )
      \$ConsValue XXX
      \$Comment /* XXX_comment */ --OPTIONAL
    \$End_ASP_ParValue
  \$End_ASP_ParValues
  \$Comment /* ${6:-XXX_comment} */ --OPTIONAL
\$End_TTCN_ASP_Constraint

EOT

  ("case"|"c") cat << EOT;;
\$Begin_TestCase
  \$TestCaseId ${2:-XXX}
  \$TestGroupRef XXX_SUITEID/XXX_GROUP/
  \$TestPurpose /* ${3:-XXX_comment} */
  \$DefaultRef ${4:-XXX}
  \$Comment /* ${5:-XXX_comment} */
  \$BehaviourDescription
    XXX line
  \$End_BehaviourDescription
  \$Comment /* ${6:-XXX_comment} */
\$End_TestCase

EOT

  ("caseindex"|"ci") cat << EOT;;
\$CaseIndex
  \$TestGroupRef XXX_SUITEID/XXX_GROUP/
  \$TestCaseId ${2:-XXX}
  \$SelectExprId ${3:-XXX}
  \$Description /* ${4:-XXX} */
\$End_CaseIndex

EOT

  ("casevar"|"cv") cat << EOT;;
\$TC_VarDcl
  \$TC_VarId ${2:-XXX}
  \$TC_VarType ${3:-XXX}
  \$TC_VarValue ${4:-XXX}
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
\$End_TC_VarDcl

EOT

  ("const") cat << EOT;;
\$TS_ConstDcl
  \$TS_ConstId ${2:-XXX}
  \$TS_ConstType ${3:-XXX}
  \$TS_ConstValue ${4:-XXX}
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
\$End_TS_ConstDcl

EOT

  ("default"|"d") cat << EOT;;
\$Begin_Default
  \$DefaultId ${2:-XXX}
  \$DefaultRef XXX_SUITEID/XXX_DEFAULTGROUP/
  \$Objective /* ${3:-XXX_comment} */
  \$Comment /* ${4:-XXX_comment} */ --OPTIONAL
  \$BehaviourDescription
    XXX line
  \$End_BehaviourDescription
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
\$End_Default

EOT

  ("defaultindex"|"di") cat << EOT;;
\$DefIndex
  \$DefaultRef XXX_SUITEID/XXX_GROUP/
  \$DefaultId ${2:-XXX}
  \$Description /* ${3:-XXX} */
\$End_DefIndex

EOT

  ("line"|"l") cat << EOT;;
\$BehaviourLine
  \$LabelId ${2:-XXX} --OPTIONAL VALUE
  \$Line ${3:-[0]}
  \$Cref ${4:-XXX_comment} --OPTIONAL VALUE
  \$VerdictId ${5:-XXX} --OPTIONAL VALUE
  \$Comment /* ${6:-XXX_comment} */ --OPTIONAL
\$End_BehaviourLine

EOT

  ("op") cat << EOT;;
\$Begin_TS_OpDef
  \$TS_OpId ${2:-XXX}
  \$TS_OpResult ${3:-XXX}
  \$Comment /* ${4:-XXX_comment} */ --OPTIONAL
  \$TS_OpDescription /* ${5:-XXX} */
  \$Comment /* ${6:-XXX_comment} */ --OPTIONAL
\$End_TS_OpDef

EOT

  ("par") cat << EOT;;
\$TS_ParDcl
  \$TS_ParId ${2:-XXX}
  \$TS_ParType ${3-XXX}
  \$PICS_PIXITref /* ${4:-XXX} */
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
\$End_TS_ParDcl

EOT

  ("pco") cat << EOT;;
\$PCO_Dcl
  \$PCO_Id ${2:-XXX}
  \$PCO_TypeId ${3:-XXX}
  \$PCO_Role ${4:-XXX_UT_LT}
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
\$End_PCO_Dcl

EOT

  ("pdu") cat << EOT;;
\$Begin_TTCN_PDU_TypeDef
  \$PDU_Id ${2:-XXX} ( /* ${3:-XXX_full_identifier_here} */ )
  \$PCO_Type ${4:-XXX}
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
  \$PDU_FieldDcls
    \$PDU_FieldDcl
      \$PDU_FieldId XXX_field1 ( /* XXX_full_identifier_here */ )
      \$PDU_FieldType XXX_INTEGER [1..10]
      \$Comment /* XXX_comment */ --OPTIONAL
    \$End_PDU_FieldDcl
  \$End_PDU_FieldDcls
  \$Comment /* ${6:-XXX_comment} */ --OPTIONAL
\$End_TTCN_PDU_TypeDef

EOT

  ("pducons") cat << EOT;;
\$Begin_TTCN_PDU_Constraint
  \$ConsId ${2:-XXX}
  \$PDU_Id ${3:-XXX} ( /* ${4:-XXX_full_identifier_here} */ )
  \$DerivPath --XXX.XXX.
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
  \$PDU_FieldValues
    \$PDU_FieldValue
      \$PDU_FieldId XXX_field1 ( /* XXX_full_identifier_here */ )
      \$ConsValue XXX
      \$Comment /* XXX_comment */ --OPTIONAL
    \$End_PDU_FieldValue
  \$End_PDU_FieldValues
  \$Comment /* ${6:-XXX_comment} */ --OPTIONAL
\$End_TTCN_PDU_Constraint

EOT

  ("selexpr") cat << EOT;;
\$SelectExprDef
  \$SelectExprId ${2:-XXX}
  \$SelectExpr ${3:-XXX}
  \$Comment /* ${4:-XXX_comment} */ --OPTIONAL
\$End_SelectExprDef

EOT

  ("simple") cat << EOT;;
\$SimpleTypeDef
  \$SimpletypeId ${2:-XXX}
  \$SimpleTypeDefinition ${3:-XXX}
  \$Comment /* ${4:-XXX_comment} */ --OPTIONAL
\$End_SimpleTypeDef

EOT

  ("step"|"s") cat << EOT;;
\$Begin_TestStep
  \$TestStepId ${2:-XXX}
  \$TestStepRef XXX_SUITEID/XXX_STEPGROUP/
  \$Objective /* ${3:-XXX_comment} */
  \$DefaultRef ${4:-XXX}
  \$Comment /* ${5:-XXX_comment} */
  \$BehaviourDescription
    XXX line
  \$End_BehaviourDescription
  \$Comment /* ${6:-XXX_comment} */
\$End_TestStep

EOT

  ("stepindex"|"si") cat << EOT;;
\$StepIndex
  \$TestStepRef XXX_SUITEID/XXX_GROUP/
  \$TestStepId ${2:-XXX}
  \$Description /* ${3:-XXX} */
\$End_StepIndex

EOT

  ("struct") cat << EOT;;
\$Begin_StructTypeDef
  \$StructId ${2:-XXX} ( /* ${3:-XXX_full_identifier_goes_here} */ )
  \$Comment /* ${4:-XXX_comment} */ --OPTIONAL
  \$ElemDcls 
    \$ElemDcl 
      \$ElemId XXX_elem1 ( /* XXX_full_identifier_goes_here */ )
      \$ElemType XXX_INTEGER [1..5]
      \$Comment /* XXX_comment */ --OPTIONAL
    \$End_ElemDcl 
  \$End_ElemDcls
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
\$End_StructTypeDef

EOT

  ("structcons") cat << EOT;;
\$Begin_StructTypeConstraint
  \$ConsId ${2:-XXX}
  \$StructId ${3:-XXX} ( /* ${4:-XXX_full_identifier_goes_here} */ )
  \$DerivPath --XXX.XXX.
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
  \$ElemValues 
    \$ElemValue 
      \$ElemId XXX_elem1 ( /* XXX_full_identifier_goes_here */ )
      \$ConsValue XXX
      \$Comment /* XXX_comment */ --OPTIONAL
    \$End_ElemValue
  \$End_ElemValues
  \$Comment /* ${6:-XXX_comment} */ --OPTIONAL
\$End_StructTypeConstraint

EOT

  ("structure") cat << EOT;;
\$Structure&Objective
  \$TestGroupRef XXX_SUITE/XXX_GROUP/
  \$SelectExprId ${2:-XX_selection_expr_id}
  \$Objective /* XXX_objective */
\$End_Structure&Objective

EOT

  ("timer") cat << EOT;;
\$TimerDcl
  \$TimerId ${2:-XXX}
  \$Duration ${3:-XXX}
  \$Unit ${4:-XXX_ps_ns_us_ms_s_min}
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
\$End_TimerDcl

EOT

  ("var") cat << EOT;;
\$TS_VarDcl
  \$TS_VarId ${2:-XXX}
  \$TS_VarType ${3:-XXX}
  \$TS_VarValue ${4:-XXX}
  \$Comment /* ${5:-XXX_comment} */ --OPTIONAL
\$End_TS_VarDcl

EOT

  ("suite"|*) cat << EOT
\$Suite
\$SuiteId ${2:-XXX_suiteid}
  \$SuiteOverviewPart
    \$Begin_SuiteStructure
      \$SuiteId ${2:-XXX_suiteid}
      \$StandardsRef /* XXX_standards_ref */
      \$PICSref /* XXX_pics_ref */
      \$PIXITref /* XXX_pixit_ref */
      \$TestMethods /* XXX_test_methods */
      \$Comment /* XXX_comment */ --OPTIONAL
      \$Structure&Objectives
        XXX structure
      \$End_Structure&Objectives
    \$End_SuiteStructure

    \$Begin_TestCaseIndex
      XXX caseindex 
    \$End_TestCaseIndex

    \$TestStepIndex  --OPTIONAL
      --XXX stepindex OPTIONAL
    \$End_TestStepIndex

    \$Begin_DefaultIndex  --OPTIONAL
      --XXX defaultindex OPTIONAL
    \$End_DefaultIndex
  \$End_SuiteOverviewPart

  \$DeclarationsPart
    \$TS_TypeDefs --OPTIONAL
      \$Begin_SimpleTypeDefs --OPTIONAL
        XXX simple
        \$Comment /* XXX_comment */
      \$End_SimpleTypeDefs

      \$StructTypeDefs  --OPTIONAL
        XXX struct
      \$End_StructTypeDefs
    \$End_TS_TypeDefs

    \$TS_OpDefs --OPTIONAL
      XXX op
    \$End_TS_OpDefs

    \$Begin_TS_ParDcls --OPTIONAL
      XXX par
      \$Comment /* XXX_comment */
    \$End_TS_ParDcls

    \$Begin_SelectExprDefs --OPTIONAL
      XXX selexpr
      \$Comment /* XXX_comment */
    \$End_SelectExprDefs

    \$Begin_TS_ConstDcls --OPTIONAL
      XXX const
      \$Comment /* XXX_comment */
    \$End_TS_ConstDcls

    \$Begin_TS_VarDcls --OPTIONAL
      XXX var
      \$Comment /* XXX_comment */
    \$End_TS_VarDcls

    \$Begin_TC_VarDcls --OPTIONAL
      XXX casevar
      \$Comment /* XXX_comment */
    \$End_TC_VarDcls

    \$Begin_PCO_Dcls 
      XXX pco
      \$Comment /* XXX_comment */
    \$End_PCO_Dcls

    \$Begin_TimerDcls --OPTIONAL
      XXX timer
      \$Comment /* XXX_comment */
    \$End_TimerDcls

    \$ASP_TypeDefs --OPTIONAL
      \$TTCN_ASP_TypeDefs --OPTIONAL
        XXX asp
      \$End_TTCN_ASP_TypeDefs
    \$End_ASP_TypeDefs

    \$PDU_TypeDefs
      \$TTCN_PDU_TypeDefs --OPTIONAL
        XXX pdu
      \$End_TTCN_PDU_TypeDefs
    \$End_PDU_TypeDefs

    \$Begin_AliasDefs --OPTIONAL
      XXX ali
      \$Comment /* XXX_comment */
    \$End_AliasDefs
  \$End_DeclarationsPart

  \$ConstraintsPart
    \$TS_TypeConstraints
      \$StructTypeConstraints --OPTIONAL
        XXX structcons
      \$End_StructTypeConstraints
    \$End_TS_TypeConstraints

    \$ASP_Constraints --OPTIONAL
      \$TTCN_ASP_Constraints --OPTIONAL
        XXX aspcons
      \$End_TTCN_ASP_Constraints
    \$End_ASP_Constraints

    \$PDU_Constraints --OPTIONAL
      \$TTCN_PDU_Constraints --OPTIONAL
        XXX pducons
      \$End_TTCN_PDU_Constraints
    \$End_PDU_Constraints
  \$End_ConstraintsPart

  \$DynamicPart
    \$TestCases
      XXX
      \$TestGroup --OPTIONAL
        XXX
      \$End_TestGroup
    \$End_TestCases

    \$TestStepLibrary --OPTIONAL
      XXX
      \$TestStepGroup --OPTIONAL
        \$TestStepGroupId XXX
        XXX
      \$End_TestStepGroup
    \$End_TestStepLibrary

    \$DefaultsLibrary
      XXX
      \$DefaultGroup --OPTIONAL
        \$DefaultGroupId XXX
        XXX
      \$End_DefaultGroup
    \$End_DefaultsLibrary
  \$End_DynamicPart

\$End_Suite
EOT

esac
