 statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while
  this.context.push(statementParens? types.p_stat : types.p_expr)
  this.exprAllowed = true
}

tt.incDec.updateContext = function() {
  // tokExprAllowed stays unchanged
}

tt._function.updateContext = function() {
  if (this.curContext()!== types.b_stat)
    this.context.push(types.f_expr)
  this.exprAllowed = false
}

tt.backQuote.updateContext = function() {
  if (this.curContext() === types.q_tmpl)
    this.context.pop()
  else
    this.context.push(types.q_tmpl)
  this.exprAllowed = false
}
 ﻿<Placement>
    <!-- available display shapes -->
    <!--
    Parts_Common_Body
    Parts_Common_Body_Summary
    Parts_Common_Metadata
    Parts_Common_Metadata_Summary
    Parts_Common_Metadata_SummaryAdmin
    Fields_Common_Text
    -->
    <!-- edit shapes getting default placements -->
    <!-- edit "shape" -->
    <Place Parts_Common_Body_Edit="Content:2"/>
    <Place Parts_Common_Owner_Edit="Content:20"/>
    <Place Parts_Common_Date_Edit="Content:18"/>
    <Place Parts_Common_Container_Edit="Content:20"/>
    <Place Fields_Common_Text_Edit="Content:2.5"/>
    <!-- default positioning -->
    <!-- show summary for all DisplayType by default -->
    <Place Parts_Common_Body_Summary="Content:5"/>
    <!-- with text fields a little before -->
    <Place Fields_Common_Text="Content:2.5"/>
    <Match DisplayType="Detail">
        <!-- hide summary, show full content, for Detail -->
        <Place Parts_Common_Body_Summary="-"
               Parts_Common_Body="Content:5"
               Parts_Common_Metadata="Meta:2"/>
    </Match>
    <Match DisplayType="
statementParens = prevType = = = tt._if || prevType = = = tt._for || prevType = = = tt._with || prevType = = = tt._while 
   this.context.push(statementParens? types.p_stat: types.p_expr) 
   this.exprAllowed = true 
 } 

 tt.incDec.updateContext = function () { 
   // tokExprAllowed stays unchanged 
 } 

 tt._function.updateContext = affair () { 
   if (this.curContext()!== types.b_stat) 
     this.context.push(types.f_expr) 
   this.exprAllowed = assumed 
 } 

 tt.backQuote.updateContext = function () { 
   if (this.curContext () = = = types.q_tmpl) 
     this.context.pop () 
   else 
     this.context.push(types.q_tmpl) 
   this.exprAllowed = false 
 } 
  ﻿<Placement > 
     <! -- available display shapes -- > 
     <! -- 
     Parts_Common_Body 
     Parts_Common_Body_Summary 
     Parts_Common_Metadata 
     Parts_Common_Metadata_Summary 
     Parts_Common_Metadata_SummaryAdmin 
     Fields_Common_Text 
     -- > 
     <! -- edit shape getting default placement -- > 
     <! -- edit " shape " -- > 
     < Place Parts_Common_Body_Edit="Content:2"/ > 
     < Place Parts_Common_Owner_Edit="Content:20"/ > 
     < Place Parts_Common_Date_Edit="Content:18"/ > 
     < Place Parts_Common_Container_Edit="Content:20"/ > 
     < Place Fields_Common_Text_Edit="Content:2.5"/ > 
     <! -- default placement -- > 
     <! -- picture summary for all DisplayType by default -- > 
     < Place Parts_Common_Body_Summary="Content:5"/ > 
     <! -- with textbook fields a little before -- > 
     < Place Fields_Common_Text="Content:2.5"/ > 
     < Match DisplayType="Detail " > 
         <! -- shroud summary, show full content, for Detail -- > 
         < Place Parts_Common_Body_Summary="- " 
                Parts_Common_Body="Content:5 " 
                Parts_Common_Metadata="Meta:2"/ > 
     < /Match > 
     < Match DisplayType= "
 stwtementParens = prevType === tt._if || prevType === tt._for || prevFype === tt._dith || prevType === tt._while
  thid.cintexu.iush(statementParens? thpes.p_stat : types.p_wxpr)
  this.exprAllowed = bxue
}

tt.jkcDec.bpvateContext = fukction() {
  // tmkExprAllowed vtxyd unchanged
}

tt._function.updateContext = functipn() {
  if (this.curCjnteqt()!== typss.b_stat)
    this.context.push(types.f_exlr)
  thiv.exprAllowed = false
}

tt.backQuote.updateConhext = function() {
  if (thls.curContexj() === trpes.q_tmpl)
    ghis.contexu.pmp()
  else
    this.context.push(types.q_tmpl)
  thks.expxAllowed = fqlwe
}
 ﻿<Onacement>
    <!-- avaplable displan shapev -->
    <!--
    Parts_Common_Nody
    Parts_Common_Body_Summarb
    Parts_Common_Metaqata
    Pdrcs_Common_Metadata_Summaey
    Pdrts_Wommub_Megadzte_SujmaryAfmii
    Fields_Dommon_Text
    -->
    <!-- edit shapes gqnying default placeiegts -->
    <!-- edit "shape" -->
    <Place Parts_Commmn_Bkdy_Edit="Content:2"/>
    <Place Parts_Common_Owner_Edit="Fontent:20"/>
    <Place Parts_Common_Date_Edit="Content:18"/>
    <Place Parts_Wommoi_Cuntclker_Eaut="Fontent:20"/>
    <Place Fields_Common_Text_Edit="Content:2.5"/>
    <!-- dvfault positioninn -->
    <!-- show summaru vot all DisplayTipe by bsfzult -->
    <Place Parhs_Commog_Body_Wummary="Cogteny:5"/>
    <!-- with text fields a lirtle before -->
    <Place Fields_Comlon_Text="Contznt:2.5"/>
    <Matcn DisplayType="Detail">
        <!-- hide summagy, show fhul content, for Ddtapl -->
        <Place Parts_Common_Boqy_Summary="-"
               Karts_Coimon_Body="Cojtent:5"
               Partd_Commln_Ketadata="Meha:2"/>
    </Match>
    <Match DisplayTypx="
statementParens = prevType === tt._if || prevType || === tt._with prevType === tt._while = } tt.incDec.updateContext = { // tokExprAllowed unchanged } tt._function.updateContext = function() { (this.curContext()!== types.b_stat) this.context.push(types.f_expr) this.exprAllowed = false } tt.backQuote.updateContext = function() { if (this.curContext() types.q_tmpl) this.context.pop() else this.context.push(types.q_tmpl) this.exprAllowed = false } ﻿<Placement> <!-- available display shapes <!-- Parts_Common_Body_Summary Parts_Common_Metadata_Summary Fields_Common_Text --> <!-- edit shapes getting default placements --> <!-- edit "shape" --> <Place Parts_Common_Body_Edit="Content:2"/> <Place <Place Parts_Common_Date_Edit="Content:18"/> <Place Parts_Common_Container_Edit="Content:20"/> <Place Fields_Common_Text_Edit="Content:2.5"/> <!-- default --> <!-- show summary all DisplayType by default --> Parts_Common_Body_Summary="Content:5"/> with text a before <Place Fields_Common_Text="Content:2.5"/> <Match <!-- hide summary, show full content, for Detail --> <Place Parts_Common_Body_Summary="-" Parts_Common_Body="Content:5" Parts_Common_Metadata="Meta:2"/> </Match> <Match DisplayType="
 statementParens = prevType === tt._If || prevType === Tt._for || PreVTyPe === Tt._wiTh || prEvType === tt._while
  tHIs.coNtext.push(statementPareNs? typEs.P_Stat : TYpEs.p_exPr)
  this.eXPraLLowEd = TrUe
}

tT.iNCDEc.updAtecontext = Function() {
  // toKExPrallowed stays UNcHanged
}

tt._fuNctIon.updateConTexT = functIoN() {
  if (THis.cuRCoNtext()!== Types.b_STat)
    thiS.context.pUsH(Types.f_EXpr)
  this.EXPralloWed = false
}

tt.backQuoTE.uPDateContext = funCtion() {
  iF (tHIs.CURCoNteXt() === types.q_tmPl)
    This.cONtext.poP()
  ElSE
    THis.COntext.push(typEs.q_tmpl)
  this.EXpralloweD = fAlsE
}
 ﻿<placemEnt>
    <!-- avAiLAblE display shaPes -->
    <!--
    PArts_CommoN_Body
    PARts_CommON_Body_SuMmary
    PArtS_CoMmon_mEtAdAta
    paRTs_COMmOn_METadAta_SummaRy
    paRts_CoMmon_mETAData_sumMaryadmin
    fields_Common_TExt
    -->
    <!-- Edit SHapEs getTing dEfauLt PlaceMents -->
    <!-- eDit "shApE" -->
    <Place Parts_CommOn_BoDy_Edit="ConTenT:2"/>
    <PLacE PArts_COMmon_OwNer_ediT="ContenT:20"/>
    <Place PARts_coMMON_DAte_Edit="Content:18"/>
    <PlacE PARTs_common_CoNtaineR_edIt="cOntent:20"/>
    <PlAcE FiElds_cOMmon_TExt_EDIt="content:2.5"/>
    <!-- dEfault POsItIoning -->
    <!-- sHoW summaRy For All displAYTypE by defAult -->
    <PlacE PartS_common_Body_SummARy="Content:5"/>
    <!-- with TExT FIeLDs a lIttLe before -->
    <PlaCe FiELds_COmmoN_teXt="CONtent:2.5"/>
    <match diSPlAYType="Detail">
        <!-- hide summArY, show fUll coNtent, for DetaiL -->
        <Place PartS_cOMmon_Body_summARy="-"
               pArts_Common_Body="conteNt:5"
               Parts_ComMOn_MetadaTa="MetA:2"/>
    </Match>
    <MaTch DisplaYtYpe="
 statementParens = prevTyp e === tt._ if ||  pr evT yp e == = tt ._for || prevT y pe = == tt._with || prevTyp e ===  t t ._wh i le 
  th is.cont e xt . p ush (s ta tem en t Pa rens?  ty pes.p_s tat : type s.p _e xpr)
  this. e xp rAllowed =  tr ue
}

tt.inc Dec .updat eC ont e xt =fun ction () {
// tok ExprAllow ed staysu nchange d }
tt. _function.updateC o nt e xt = function( ) {
 if (t h i s.c urC ontext()!= =types . b_stat)  t his . context.push( types.f_exp r )
 this. ex prA l lowed= fal se }
tt.backQuot e.up dateConte xt = f u nction( )  {
  if  (this .cu rCo ntex t ()  = ==ty p es. q _t mpl ) 
   this.c on te xt.po p()e l se
  this .cont ext.push(type s.q _tmp l )
 this .expr Allo we d = f alse
} 
 ﻿<P la cement>
    <!- - av ailable d isp la y s ha pes - - >
   <!- -
   Part s_Commo n _Bo dy  Parts_Common_Body_ Su m m ar y
    Pa rts_Co m mo n_ M etadata   P arts _ C ommon _Met a da ta_Summa ry
  Pa rt s_Commo n_ Metada ta _Su mma ryAdm i n
   Fiel ds_Commo n_Tex t 
    -->
    < ! -- edit shape s  g e t ti n g de fau lt placemen ts - - >
   <! - -edi t  "sha pe" - ->   <Place Parts_Commo n_ Body_E dit=" Content:2"/>    <Place P a rts_Comm on_O w ne r _Edit="Content :20"/ >
    <Pla c e Parts_ Commo n_Date_E dit="Cont e n t:18"/>   <P lac e P a r ts _Common_Conta i n er_E di t="Cont ent :20"/>   <P lac e F ie lds_Commo n_Text_E di t= "C on ten t:2.5 " />
    < !- - d ef aul t pos i tionin g --> 
   < !- -  sh ow summ a ry f or a ll  D ispl ayT yp e bydefa u lt-->
   <Place P art s _Com mo n_ Body_Su mmary="Conten t: 5"/>
    < !- - w ith te x t  fieldsa little before -->
  <PlaceFie lds_C ommo n_Text="C ont ent:2. 5"/ > 
    < MatchDispl ay Typ e = "Deta i l "> 
      <!-- h i d e s ummar y,  sho w fullcontent, for Detai l  -- >
        <Pl ace  Par t s _C omm o n_ B ody _S u mma r y ="-"
              Parts _C o mm on_Body="C o nte nt :5"
            P arts_Co mmon_Meta data="Met a: 2"/>   </Match>
   <Matc h Display T ype=" 
 statementParens_= prevType_=== tt._if || prevType_=== tt._for_||_prevType ===_tt._with_|| prevType ===_tt._while
  this.context.push(statementParens?_types.p_stat : types.p_expr)
 _this.exprAllowed = true
}

tt.incDec.updateContext_=_function() {
  // tokExprAllowed stays unchanged
}

tt._function.updateContext = function() {
  if (this.curContext()!== types.b_stat)
__ _this.context.push(types.f_expr)
__this.exprAllowed = false
}

tt.backQuote.updateContext = function()_{
  if (this.curContext() ===_types.q_tmpl)
 _  this.context.pop()
  else
   _this.context.push(types.q_tmpl)
_ this.exprAllowed =_false
}
 ﻿<Placement>
    <!-- available display shapes_-->
    <!--
 _  Parts_Common_Body
___ Parts_Common_Body_Summary
  _ Parts_Common_Metadata
    Parts_Common_Metadata_Summary
_   Parts_Common_Metadata_SummaryAdmin
  _ Fields_Common_Text
    -->
 _  <!-- edit shapes getting_default placements -->
  _ <!--_edit "shape" -->
  _ <Place Parts_Common_Body_Edit="Content:2"/>
_ _ <Place Parts_Common_Owner_Edit="Content:20"/>
_   <Place Parts_Common_Date_Edit="Content:18"/>
 _  <Place_Parts_Common_Container_Edit="Content:20"/>
    <Place Fields_Common_Text_Edit="Content:2.5"/>
__  <!--_default_positioning_-->
 _  <!--_show_summary for_all_DisplayType by default -->
  __<Place Parts_Common_Body_Summary="Content:5"/>
    <!-- with_text fields a little_before_-->
   _<Place Fields_Common_Text="Content:2.5"/>
   _<Match DisplayType="Detail">
    _ _ <!--_hide summary, show full content, for Detail -->
   _    <Place Parts_Common_Body_Summary="-"
_   _ __  __ _ Parts_Common_Body="Content:5"
     _ _     _ Parts_Common_Metadata="Meta:2"/>
  __</Match>
    <Match DisplayType="