SIL::Shoe::Type - Class for handling Database Type files.


 require SIL::Shoe::Type;
 $s = SIL::Shoe::Type->new("mdf.typ");
 $lang = $s->{'mrk'}{"le"}{'lang'};


This class allows easy access to information held in a database type file. Due to the complex structure of the type file, the true hierarchy is restructured in order to make certain information more readily available.

Usually, information is available via the path of marker groups it is in. But some of the layers of hierarchy are removed and some of the groups are changed structurally. Thus instead of having to search an array of mkr fields in the mkrset to find a marker of interest, the group has been restructured to allow simply $s->{'mkr'}{"$mkrname"} to locate the appropriate associative array.

The follow layers of hierarchy are simply deleted: DatabaseType, mkrset, intprclst, drflst, mrflst, filset, expset. Most of these only occur at the top level and rely on their not being subname clashes.

The following groups are structured as associative arrays based on the group marker's value: mkr (as mkr) and fil (as fil) both available at the top level.

Finally, interlinear processes (intprc) form an ordered list. Thus each intprc occurs within an array (referencable by $s->{'intprc'}[$x]) and its type is stored as a sub field within the particular process' associative array, called 'type'.

All other groups simply form a new sub associative array into which all its elements are placed. For multiply defined markers and groups, arrays are formed as needed rather than the convential name mangling of SIL::Shoe::Data.

The following methods are available: