<?xml version="1.0" encoding="UTF-8"?> <ufwb version="1.5.1"> <grammar name="HyperCard Stack" start="id:221" author="Uli Kusterer" email="tiezilanystamrofelifch@ulik.at" fileextension="stak" uti="com.apple.hypercard.stack"> <description>Grammar for HyperCard stack format</description> <structure name="HyperCard Stack" id="221" encoding="ISO_8859-1:1987" endian="big" signed="no"> <structure name="Blocks" id="222" length="0" repeatmax="-1" order="variable"> <structref name="StackBlock" id="224" repeatmin="0" structure="id:223"/> <structref name="StyleTable" id="226" repeatmin="0" structure="id:225"/> <structref name="FontTable" id="228" repeatmin="0" structure="id:227"/> <structref name="PageTable" id="230" repeatmin="0" structure="id:229"/> <structref name="CardOrBackground" id="232" repeatmin="0" structure="id:231"/> <structref name="FreeBlock" id="234" repeatmin="0" structure="id:233"/> <structref name="MastBlock" id="236" repeatmin="0" structure="id:235"/> <structref name="BmapBlock" id="238" repeatmin="0" structure="id:237"/> <structref name="PrntBlock" id="240" repeatmin="0" structure="id:239"/> <structref name="PrstBlock" id="242" repeatmin="0" structure="id:241"/> <structref name="ListBlock" id="244" repeatmin="0" structure="id:243"/> <structref name="TailBlock" id="246" repeatmin="0" structure="id:245"/> <structref name="Block" id="248" repeatmin="0" structure="id:247"/> </structure> </structure> <structure name="Block" id="247" length="BlockSize" encoding="macintosh" endian="big" signed="no"> <number name="BlockSize" id="251" fillcolor="75D5FF" type="integer" length="4" endian="big"/> <string name="Block Type" mustmatch="yes" id="252" fillcolor="FF2600" type="fixed-length" length="4" encoding="macintosh"/> <number name="BlockID" id="253" fillcolor="FF84FF" type="integer" length="4" signed="yes"/> </structure> <structure name="StackBlock" id="223" extends="id:247"> <number name="BlockSize" id="255" type="integer"/> <string name="Block Type" id="256" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="STAK" value="STAK"/> </fixedvalues> </string> <number name="BlockID" id="257" type="integer"/> <binary name="There be Tygers" id="258" length="32"/> <number name="CardCount" id="259" type="integer" length="4"/> <number name="SomeCardID" id="260" type="integer" length="4"/> <number name="ListBlockID" id="261" type="integer" length="4"/> <binary name="There be Tygers 2" id="262" length="16"/> <number name="UserLevel" id="263" type="integer" length="2"/> <binary name="There be Tygers 3" id="264" length="2"/> <number name="Flags" id="265" type="integer" length="2" display="hex"> <mask name="cantPeek" value="0x200"> <fixedvalue name="cantPeek" value="0x200"/> </mask> <mask name="cantAbort" value="0x400"> <fixedvalue name="cantAbort" value="0x400"/> </mask> <mask name="privateAccess" value="0x1000"> <fixedvalue name="privateAccess" value="0x1000"/> </mask> <mask name="cantDelete" value="0x2000"> <fixedvalue name="cantDelete" value="0x2000"/> </mask> <mask name="cantModify" value="0x4000"> <fixedvalue name="cantModify" value="0x4000"/> </mask> </number> <binary name="There be Tygers 4" id="266" length="22"/> <number name="CreatedNumVersion" id="267" type="integer" length="4"/> <number name="EditedNumVersion" id="268" type="integer" length="4"/> <number name="CompactedNumVersion" id="269" type="integer" length="4"/> <binary name="There be Tygers 5" id="270" length="316"/> <number name="Height" id="271" type="integer" length="2"/> <number name="Width" id="272" type="integer" length="2"/> <binary name="There be Tygers 6" id="273" length="272"/> <binary name="Pattern" id="274" repeatmax="40" length="8"/> <binary name="There be Tygers 7" id="275" length="512"/> <string name="StackScript" id="276" type="zero-terminated"/> </structure> <structure name="StyleTable" id="225" extends="id:247"> <number name="BlockSize" id="278" type="integer"/> <string name="Block Type" id="279" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="STBL" value="STBL"/> </fixedvalues> </string> <number name="BlockID" id="280" type="integer"/> <binary name="There be Tygers" id="281" length="4"/> <number name="StyleCount" id="282" type="integer" length="4"/> <structure name="Style" id="283" repeatmax="StyleCount"> <binary name="There be Tygers" id="284" length="16"/> <number name="FontID" id="285" type="integer" length="2"/> <number name="StyleFlags" id="286" type="integer" length="2"/> <number name="FontSize" id="287" type="integer" length="2"/> <binary name="There be Tygers 2" id="288" length="2"/> </structure> </structure> <structure name="FontTable" id="227" extends="id:247"> <number name="BlockSize" id="291" type="integer"/> <string name="Block Type" id="292" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="FTBL" value="FTBL"/> </fixedvalues> </string> <number name="BlockID" id="293" type="integer"/> <binary name="There be Tygers" id="294" length="6"/> <number name="FontCount" id="295" type="integer" length="2"/> <binary name="There be Tygers 2" id="296" length="4"/> <structure name="Font" id="297" alignment="2" repeat="id:295" repeatmax="-1"> <number name="FontID" id="298" type="integer" length="2"/> <string name="FontName" id="299" type="zero-terminated"/> </structure> </structure> <structure name="PageTable" id="229" extends="id:247"> <number name="BlockSize" id="302" type="integer"/> <string name="Block Type" id="303" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="PAGE" value="PAGE"/> </fixedvalues> </string> <number name="BlockID" id="304" type="integer"/> <binary name="There be Tygers" id="305" length="12"/> <structure name="Page" id="306" repeatmax="-1"> <number name="CardID" id="307" type="integer" length="1"/> <binary name="There be Tygers" id="308" length="16"/> </structure> </structure> <structure name="CardOrBackground" id="231" extends="id:247"> <number name="BlockSize" id="311" type="integer"/> <string name="Block Type" id="312" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="CARD" value="CARD"/> <fixedvalue name="BKGD" value="BKGD"/> </fixedvalues> </string> <number name="BlockID" id="313" type="integer"/> <binary name="There be Tygers" id="314" length="4"/> <number name="BmapBlockID" id="315" type="integer" length="4"/> <number name="Flags" id="316" type="integer" length="2" display="hex"> <mask name="cantDelete" value="0x4000"> <fixedvalue name="cantDelete" value="0x4000"/> </mask> <mask name="hideCardPicture" value="0x2000"> <fixedvalue name="hideCardPicture" value="0x2000"/> </mask> <mask name="dontSearch" value="0x800"> <fixedvalue name="dontSearch" value="0x800"/> </mask> </number> <binary name="There be Tygers 2" id="317" length="12"/> <number name="Background ID" id="318" type="integer" length="2"> <description>ID of background for this card</description> </number> <number name="Owner" id="319" type="integer" length="4"> <description>ID of background for this card</description> </number> <number name="PartsCount" id="320" type="integer" length="2"> <description>ID of background for this card</description> </number> <binary name="There be Tygers 4" id="321" length="6"/> <number name="PartContentsCount" id="322" type="integer" length="2"> <description>ID of background for this card</description> </number> <string name="ScriptType" id="323" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="HyperTalk"/> <fixedvalue name="Compiled OSA String" value="WOSA"/> </fixedvalues> </string> <structure name="Part" id="324" length="PartLength" alignment="1" repeat="id:320" repeatmin="0" repeatmax="-1"> <number name="PartLength" id="325" type="integer" length="2"> <description>ID of background for this card</description> </number> <number name="PartID" id="326" type="integer" length="2"> <description>ID of background for this card</description> </number> <number name="Type" id="327" type="integer" length="1"> <fixedvalues> <fixedvalue name="Button" value="1"/> <fixedvalue name="Field" value="2"/> </fixedvalues> </number> <number name="Flags" id="328" type="integer" length="1"> <mask name="hidden" value="0x80"> <fixedvalue name="hidden" value="0x80"/> </mask> <mask name="dontWrap" value="0x20"> <fixedvalue name="dontWrap" value="0x20"/> </mask> <mask name="dontSearch" value="0x10"> <fixedvalue name="dontSearch" value="0x10"/> </mask> <mask name="sharedText" value="0x8"> <fixedvalue name="sharedText" value="0x8"/> </mask> <mask name="fixedLineHeight" value="0x4"> <fixedvalue name="fixedLineHeight" value="0x4"/> </mask> <mask name="autoTab" value="0x2"> <fixedvalue name="autoTab" value="0x2"/> </mask> <mask name="lockText" value="0x1"> <fixedvalue name="lockText" value="0x1"/> </mask> </number> <number name="TopCoordinate" id="329" type="integer" length="2"/> <number name="LeftCoordinate" id="330" type="integer" length="2"/> <number name="BottomCoordinate" id="331" type="integer" length="2"/> <number name="RightCoordinate" id="332" type="integer" length="2"/> <number name="MoreFlags" id="333" type="integer" length="2" display="hex"> <mask name="showName" value="0x8000"> <fixedvalue name="showName" value="0x8000"/> </mask> <mask name="showLines" value="0x4000"> <fixedvalue name="showLines" value="0x4000"/> </mask> <mask name="wideMargins" value="0x2000"> <fixedvalue name="wideMargins" value="0x2000"/> </mask> <mask name="sharedHighlight" value="0x1000"> <fixedvalue name="sharedHighlight" value="0x1000"/> </mask> <mask name="buttonFamilyNumber" value="0xF00"> <fixedvalue name="transparent" value="0x0"/> <fixedvalue name="opaque" value="0x100"/> <fixedvalue name="rectangle" value="0x200"/> <fixedvalue name="roundrect" value="0x300"/> <fixedvalue name="shadow" value="0x400"/> <fixedvalue name="checkbox" value="0x500"/> <fixedvalue name="radiobutton" value="0x600"/> <fixedvalue name="standard" value="0x800"/> <fixedvalue name="default" value="0x900"/> <fixedvalue name="oval" value="0xA00"/> <fixedvalue name="popup" value="0xB00"/> </mask> <mask name="Field" value="0xFF"> <fixedvalue name="transparent" value="0x0"/> <fixedvalue name="opaque" value="0x1"/> <fixedvalue name="rectangle" value="0x2"/> <fixedvalue name="shadow" value="0x4"/> <fixedvalue name="scrolling" value="0x7"/> </mask> </number> <number name="TitleWidth" id="334" type="integer" length="2"/> <number name="IconID" id="335" type="integer" length="2"/> <number name="TextAlignment" id="336" type="integer" length="2" signed="yes"> <fixedvalues> <fixedvalue name="left" value="0"/> <fixedvalue name="center" value="1"/> <fixedvalue name="force left" value="-2"/> <fixedvalue name="right" value="-1"/> </fixedvalues> </number> <number name="TextFontID" id="337" type="integer" length="2"/> <number name="TextFontSize" id="338" type="integer" length="2"/> <number name="TextStyleFlags" id="339" type="integer" length="2" display="hex"> <mask name="group" value="0x8000"> <fixedvalue name="group" value="0x8000"/> </mask> <mask name="extend" value="0x4000"> <fixedvalue name="extend" value="0x4000"/> </mask> <mask name="condense" value="0x2000"> <fixedvalue name="condense" value="0x2000"/> </mask> <mask name="shadow" value="0x1000"> <fixedvalue name="shadow" value="0x1000"/> </mask> <mask name="outline" value="0x800"> <fixedvalue name="outline" value="0x800"/> </mask> <mask name="underline" value="0x400"> <fixedvalue name="underline" value="0x400"/> </mask> <mask name="italic" value="0x200"> <fixedvalue name="italic" value="0x200"/> </mask> <mask name="bold" value="0x100"> <fixedvalue name="bold" value="0x100"/> </mask> </number> <number name="LineHeight" id="340" type="integer" length="2"/> <string name="PartName" id="341" type="zero-terminated"/> <binary name="Reserved" id="342" length="1"/> <string name="PartScript" id="343" type="zero-terminated"/> </structure> <structure name="PartContent" id="345" length="PartContentLength+4" alignment="2" repeat="id:322" repeatmin="0" repeatmax="-1"> <number name="PartID" id="346" type="integer" length="2"/> <number name="PartContentLength" id="347" type="integer" length="2"/> <number name="StylesLength" id="348" type="integer" length="1"/> <structure name="StyleData" id="349" length="StylesLength"> <structure name="Style" id="350" repeatmax="-1"> <number name="StartOffset" id="351" type="integer" length="2"/> <number name="BlockIndex" id="352" type="integer" length="2"> <description>index into 'STBL' block</description> </number> </structure> </structure> <string name="TextData" id="355" type="zero-terminated"/> </structure> <string name="CardName" id="357" type="zero-terminated"/> <string name="CardScript" id="358" type="zero-terminated"/> <structure name="OSAScriptData" id="359" repeatmin="0"> <offset name="OSAScript" id="361" length="2" references="id:360" referenced-size="id:362" relative-to="id:359" follownullreference="yes"/> <number name="ScriptLength" id="362" type="integer" length="1"/> <binary name="HeaderRemainder" id="363" length="1"/> </structure> </structure> <structure name="OSAScript" id="360" encoding="ISO_8859-1:1987" endian="big" signed="no"> <string name="Script" id="366" type="fixed-length" length="Remaining"/> </structure> <structure name="FreeBlock" id="233" extends="id:247"> <number name="BlockSize" id="368" type="integer"/> <string name="Block Type" id="369" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="FREE" value="FREE"/> </fixedvalues> </string> <number name="BlockID" id="370" type="integer"/> <binary name="Data" id="371" length="remaining"/> </structure> <structure name="MastBlock" id="235" extends="id:247"> <number name="BlockSize" id="373" type="integer"/> <string name="Block Type" id="374" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="MAST" value="MAST"/> </fixedvalues> </string> <number name="BlockID" id="375" type="integer"/> </structure> <structure name="BmapBlock" id="237" extends="id:247"> <number name="BlockSize" id="377" type="integer"/> <string name="Block Type" id="378" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="BMAP" value="BMAP"/> </fixedvalues> </string> <number name="BlockID" id="379" type="integer"/> <binary name="Bitmap" id="380" length="remaining"/> </structure> <structure name="PrntBlock" id="239" extends="id:247"> <number name="BlockSize" id="382" type="integer"/> <string name="Block Type" id="383" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="PRNT" value="PRNT"/> </fixedvalues> </string> <number name="BlockID" id="384" type="integer"/> </structure> <structure name="PrstBlock" id="241" extends="id:247"> <number name="BlockSize" id="386" type="integer"/> <string name="Block Type" id="387" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="PRST" value="PRST"/> </fixedvalues> </string> <number name="BlockID" id="388" type="integer"/> </structure> <structure name="ListBlock" id="243" extends="id:247"> <number name="BlockSize" id="390" type="integer"/> <string name="Block Type" id="391" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="LIST" value="LIST"/> </fixedvalues> </string> <number name="BlockID" id="392" type="integer"/> </structure> <structure name="TailBlock" id="245" extends="id:247"> <number name="BlockSize" id="394" type="integer"/> <string name="Block Type" id="395" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="TAIL" value="TAIL"/> </fixedvalues> </string> <number name="BlockID" id="396" type="integer"/> </structure> </grammar> </ufwb>