more progress on interpreter
[philodendron.git] / FILEFORMAT
blob163642831afc8feb9c966267b5915f5d7aa6a2ef
2 Bitcode file, application magic number = "GH"
3 All offsets are 0-based.
5 STRINGS
6   [STRING, <ascii array of chars>]
7   [STRING, <ascii array of chars>]
8   ...
10 INTFAS
11   INTFA
12     [INTFA_STATE, # of transitions]  <-- first state is assumed to be start state
13     [INTFA_STATE, # of transitions]
14     [INTFA_FINAL_STATE, # of transitions, terminal_name_int]
15     ...
16     (states are identified by their offset in this list)
18     [INTFA_TRANSITION, edge val, dest state offset]
19     [INTFA_TRANSITION_RANGE, edge val low, edge val high, dest state offset]
20     ...
21     (transitions are identified by their offset in this list)
23 RTNS
24   RTN
25     [RTN_INFO, nonterm_name_int, # of slots]
27     [RTN_IGNORE, terminal_name_int]
28     ...
30     [RTN_STATE, # of transitions+decisions, intfa #, is final]
31     [RTN_STATE, # of transitions+decisions, intfa #, is final]
32     ...
34     [RTN_TRANSITION_TERMINAL, terminal_name_int, dest RTN state offset, slotname_int, slotnum]
35     [RTN_TRANSITION_NONTERM, rtn_offset, dest RTN state offset, slotname_int, slotnum]
36     [RTN_DECISION, terminal_name_int, <array of transition offsets>]
37     ...