-
Notifications
You must be signed in to change notification settings - Fork 4
/
fp5.grammar
163 lines (163 loc) · 10.6 KB
/
fp5.grammar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<?xml version="1.0" encoding="UTF-8"?>
<ufwb version="1.9">
<grammar name="FileMaker fp5 and fp3" start="id:3" author="Daniel Schwarz" email="[email protected]" fileextension="fp5,FP5,fp3,FP3" complete="yes">
<description>Grammar for fp3 and fp5 files used in project:
https://github.com/qwesda/Fp5Dump</description>
<structure name="FileMaker" id="3" encoding="macintosh" endian="big" signed="no">
<structref name="Header fp3" id="5" repeatmin="0" structure="id:4"/>
<structref name="Header fp5" id="7" repeatmin="0" structure="id:6"/>
<structure name="Blocks" id="8" repeatmax="unlimited">
<structref name="Chunk" id="10" fillcolor="FEFFFF" repeatmin="0" structure="id:9"/>
<binary name="NULL" id="11" strokecolor="FEFFFF" fillcolor="FEFFFF" repeatmin="0" repeatmax="-1" length="1">
<fixedvalues>
<fixedvalue name="0x00" value="00"/>
</fixedvalues>
</binary>
</structure>
</structure>
<structure name="Header fp5" id="6" length="2048" encoding="ISO_8859-1:1987" endian="big" signed="no">
<binary name="MAGICK" mustmatch="yes" id="14" fillcolor="FF89D8" length="15">
<fixedvalues>
<fixedvalue name="MAGICK" value="0001000000020001000500020002C0"/>
</fixedvalues>
</binary>
<binary name="Unknown 1" mustmatch="yes" id="15" length="459"/>
<binary name="Copyright String" id="16" fillcolor="75D5FF" length="37"/>
<binary name="00 00 00 00 00 00 00 00 01 00 1D 00 0E 00" mustmatch="yes" id="17" length="14">
<fixedvalues>
<fixedvalue name="00 00 00 00 00 00 00 00 01 00 1D 00 0E 00" value="000000000000000001001D000E00"/>
</fixedvalues>
</binary>
<binary name="HBAM....AUG95" id="18" fillcolor="75D5FF" length="13"/>
<binary name="C1 02 48" mustmatch="yes" id="19" length="3">
<fixedvalues>
<fixedvalue name="C1 02 48" value="C10248"/>
</fixedvalues>
</binary>
<number name="VersionStringLen" id="20" fillcolor="8DF900" type="integer" length="1"/>
<binary name="Version" mustmatch="yes" id="21" fillcolor="75D5FF" length="7">
<fixedvalues>
<fixedvalue name="Pro 5.0" value="50726F20352E30"/>
</fixedvalues>
</binary>
<binary name="C0 C0" mustmatch="yes" id="22" length="2">
<fixedvalues>
<fixedvalue name="C0 C0" value="C0C0"/>
</fixedvalues>
</binary>
<binary name="Unknown 2" id="23" length="473"/>
<number name="FilenameStringLength" id="24" fillcolor="72FA78" type="integer" length="1"/>
<binary name="Filename" id="25" fillcolor="75D5FF" length="FilenameStringLength"/>
<binary name="FilenameStringPadding" id="26" length="0xFF - FilenameStringLength"/>
<number name="ServerStringLength" id="27" fillcolor="72FA78" type="integer" length="1"/>
<binary name="Server" id="28" fillcolor="75D5FF" length="ServerStringLength"/>
<binary name="ServerStringPadding" id="29" length="0xBF - ServerStringLength"/>
<binary name="Unknown 3" id="30" length="12"/>
<binary name="Unknown 4" id="31" length="564"/>
</structure>
<structure name="Header fp3" id="4" length="2048" encoding="ISO_8859-1:1987" endian="big" signed="no">
<binary name="MAGICK" mustmatch="yes" id="33" fillcolor="FF84FF" length="15">
<fixedvalues>
<fixedvalue name="MAGICK" value="0001000000020001000500020002C0"/>
</fixedvalues>
</binary>
<binary name="Unknown 1" mustmatch="yes" id="34" length="497"/>
<binary name="00 00 00 00 00 00 00 01 00 1D 00 0E 00" mustmatch="yes" id="35" length="13">
<fixedvalues>
<fixedvalue name="00 00 00 00 00 00 00 01 00 1D 00 0E 00" value="0000000000000001001D000E00"/>
</fixedvalues>
</binary>
<binary name="HBAM....AUG95" id="36" fillcolor="75D5FF" length="13"/>
<binary name="C1 02 48" mustmatch="yes" id="37" length="3">
<fixedvalues>
<fixedvalue name="C1 02 48" value="C10248"/>
</fixedvalues>
</binary>
<number name="Version String Length" id="38" fillcolor="8DF900" type="integer" length="1"/>
<binary name="Version" mustmatch="yes" id="39" fillcolor="75D5FF" length="7">
<fixedvalues>
<fixedvalue name="Pro 3.0" value="50726F20332E30"/>
</fixedvalues>
</binary>
<binary name="C0 C0" mustmatch="yes" id="40" length="2">
<fixedvalues>
<fixedvalue name="C0 C0" value="C0C0"/>
</fixedvalues>
</binary>
<binary name="Unknown 2" id="41" length="435"/>
<binary name="Copyright String" id="42" fillcolor="75D5FF" length="38"/>
<number name="FilenameStringLength" id="43" fillcolor="72FA78" type="integer" length="1"/>
<binary name="Filename" id="44" fillcolor="75D5FF" length="FilenameStringLength"/>
<binary name="FilenameStringPadding" id="45" length="0xFF - FilenameStringLength"/>
<number name="ServerStringLength" id="46" fillcolor="72FA78" type="integer" length="1"/>
<binary name="Server" id="47" fillcolor="75D5FF" length="ServerStringLength"/>
<binary name="ServerStringPadding" id="48" length="0xBF - ServerStringLength"/>
<binary name="Unknown 3" id="49" length="12"/>
<binary name="Unknown 4" id="50" length="564"/>
</structure>
<structure name="Blocks" id="9" length="1024" alignment="1024" repeatmax="unlimited" encoding="ISO_8859-1:1987" endian="big" signed="no">
<binary name="Deleted Flag" id="52" fillcolor="C0C0C0" length="1"/>
<binary name="Index Level" id="53" fillcolor="FF84FF" length="1"/>
<number name="Prev Block ID" id="54" fillcolor="C0C0C0" type="integer" length="4"/>
<number name="Next Block ID" id="55" fillcolor="C0C0C0" type="integer" length="4"/>
<binary name="Redundant Payload Bytes" id="56" fillcolor="FF89D8" length="2"/>
<number name="PayloadLength" id="57" fillcolor="8DF900" type="integer" length="2"/>
<structure name="Payload" id="58" length="PayloadLength">
<structref name="Chunk Payload" id="60" repeatmax="-1" structure="id:59"/>
</structure>
<binary name="Padding" id="62" length="0x3F2 - PayloadLength"/>
</structure>
<structure name="Block Payload" id="59" length="0" encoding="ISO_8859-1:1987" endian="big" signed="no" fillcolor="FEFFFF" order="variable">
<structref name="Field Ref + Data Long" id="65" repeatmin="0" structure="id:64"/>
<structref name="Field Ref + Data" id="67" repeatmin="0" structure="id:66"/>
<structref name="Data Simple" id="69" repeatmin="0" structure="id:68"/>
<structref name="Path" id="71" repeatmin="0" structure="id:70"/>
</structure>
<structure name="Data Simple" id="68" encoding="ISO_8859-1:1987" endian="big" signed="no">
<number name="Length" mustmatch="yes" id="73" fillcolor="FFD478" type="integer" length="1" minval="129" maxval="191"/>
<binary name="Data" id="74" fillcolor="929292" length="Length -128"/>
</structure>
<structure name="Field Ref Simple" id="76" encoding="ISO_8859-1:1987" endian="big" signed="no">
<number name="ID" mustmatch="yes" id="77" fillcolor="FFD478" repeatmin="0" type="integer" length="1" minval="64" maxval="127"/>
<number name="00" mustmatch="yes" id="78" fillcolor="FFD478" repeatmin="0" type="integer" length="1" minval="0" maxval="0"/>
</structure>
<structure name="Field Ref Long" id="80" encoding="ISO_8859-1:1987" endian="big" signed="no">
<number name="Length" mustmatch="yes" id="81" fillcolor="FF89D8" type="integer" length="1" minval="1" maxval="63"/>
<binary name="ID" id="82" fillcolor="FFD478" length="Length"/>
</structure>
<structure name="Field Ref" id="84" encoding="ISO_8859-1:1987" endian="big" signed="no" order="variable">
<structref name="Field Ref Simple" id="85" repeatmin="0" structure="id:76"/>
<structref name="Field Ref Long" id="86" repeatmin="0" structure="id:80"/>
</structure>
<structure name="Field Ref + Data" id="66" encoding="ISO_8859-1:1987" endian="big" signed="no">
<structref name="Field Ref" id="88" structure="id:84"/>
<number name="Length" id="89" fillcolor="FF89D8" type="integer" length="1"/>
<binary name="Data" id="90" fillcolor="929292" length="Length"/>
</structure>
<structure name="Field Ref + Data Long" id="64" encoding="ISO_8859-1:1987" endian="big" signed="no">
<binary name="0xFF" mustmatch="yes" id="92" fillcolor="FFD478" length="1">
<fixedvalues>
<fixedvalue name="0xFF" value="FF"/>
</fixedvalues>
</binary>
<structref name="Field Ref" id="93" structure="id:84"/>
<number name="Length" id="94" fillcolor="FFD478" type="integer" length="2"/>
<binary name="Data" id="95" fillcolor="929292" length="Length"/>
</structure>
<structure name="Path" id="70" repeatmax="-1" encoding="ISO_8859-1:1987" endian="big" signed="no" order="variable">
<structref name="Path Push" id="98" repeatmin="0" structure="id:97"/>
<structref name="Path Pop" id="100" repeatmin="0" structure="id:99"/>
</structure>
<structure name="Path Push" id="97" encoding="ISO_8859-1:1987" endian="big" signed="no">
<number name="Length" mustmatch="yes" id="102" fillcolor="D783FF" type="integer" length="1" display="hex" minval="0xC1" maxval="0xFC"/>
<binary name="Data" id="103" fillcolor="75D5FF" length="Length - 192"/>
</structure>
<structure name="Path Pop" id="99" encoding="ISO_8859-1:1987" endian="big" signed="no">
<binary name="0xC0" mustmatch="yes" id="105" fillcolor="D4FB78" length="1">
<fixedvalues>
<fixedvalue name="0xC0" value="C0"/>
</fixedvalues>
</binary>
</structure>
</grammar>
</ufwb>