| class RESTORE |
|---|
| **** | Restore an object from a string. Usage:
___myfoo:_FOO_:=_.... ___f:_FILE_:=_FILE::open_for_write("foo"); ___store:_STORE_:=_#(f); ___store+myfoo;__--_Store_some_arbitrary_object_onto_the_file_"f" _ ___f:_FILE_:=_FILE::open_for_read("foo"); ___file_str:STR_:=_f.get_str ___r:_RESTORE_:=_#(file_str); ___ob:_$OB; ___if_r.next_object(out_ob)_then_..._use_ob_ ___else_#ERR+"Bad_object_read"_end; ___ |
| const debug: BOOL := false; |
|---|
| **** | that have been read in read or being read |
| check_restore: BOOL |
|---|
| create(st: STR): SAME |
|---|
| **** | Create a new unpacking context |
| next_object(out ob: $OB): BOOL |
|---|
| **** | Return true if the next object was found Store the next object in "ob" if one was found |
| check_sc(msg: STR) |
|---|
| **** | Raise an error if the string cursor has an error |
| attr cur_object_index: INT; |
|---|
| **** | Index of the most recent object read or being read |
| attr cur_object_index: INT; |
|---|
| **** | Index of the most recent object read or being read |
| deb(msg: STR): BOOL |
|---|
| err(msg: STR): STORE_EXC |
|---|
| get_and_check_char(c: CHAR,msg:STR) |
|---|
| get_char(msg: STR): CHAR |
|---|
| get_int(msg: STR): INT |
|---|
| get_registered_ob(id: INT): $OB |
|---|
| get_word(msg: STR): STR |
|---|
| next_int: INT |
|---|
| **** | Generator of integers to indicate successive objects. Back references are done by indicating the integer index of the object This must essentially replicate the behavior on the "STORE" end |
| parse_basic(out res:$OB): BOOL |
|---|
| parse_object: $OB |
|---|
| **** | Restore from the string "st" start_index indicates where in the string to start reading from and fin_index is set to the last character consumed. |
| register_ob(id: INT, ob: $OB) |
|---|
| **** | If ob is not immutable, register it |
| attr registry: H_MAP{$OB,$OB}; |
|---|
| **** | Mapping from ids to objects that have been read in read or being read |
| attr registry: H_MAP{$OB,$OB}; |
|---|
| **** | Mapping from ids to objects that have been read in read or being read |
| attr sc: STR_CURSOR; |
|---|
| **** | String cursor on the current source |
| attr sc: STR_CURSOR; |
|---|
| **** | String cursor on the current source |
| set_attrib_named(ob:$OB,field:STR,to:$OB) |
|---|
| **** | Set the field named "field" in the object "meta" to the value "ob" Error if no such field exists in the current object |