PCE version 4C man_modulenamespaceid_tablemodified current_idOIxN class/dictN referenceC hash_tablerefersizeOIxNbothIsN M.dict.S.sortCman_method_card identifiermodule last_modifiednamesummary descriptionsee_alsoinherit diagnosticsdefaultsbugsOIxN M.dict.S.sortRICdateOIx0Yf;NsortnCstringOIxSort the contents of the dict. The ordering information is kept in <-members. There are two possibilities: # Alphabetical sorting When the first argument is not a code object, the dict will be sorted alphabetically on the `dict_item <-label'. The first argument requests to compare case-insensitive. The second to ignore leading and trailing blank space and to collapse multiple blanks in the middle to a single space character. (see also `string ->strip'). # Sorting on a comparison function. In this case the first argument is a code object. This code object is passed pairs of dict_item objects as @arg1 and @arg2. See `chain ->sort' for details. If <-sort_by contains a code object, this will be used as the default. See also <-sort_by to maintain a list of sorted objects.CchainsizeOIxIeNR.dict.sort_ignore_caseENR.dict.sort_ignore_blanksXnnOIxU # case-insensitive: Dict.sort_ignore_case # ignore blanks Dict.sort_ignore_blanksnsN V.dict.tableCman_variable_card identifiermodule last_modifiednamesummary descriptionsee_alsoinheritdefaultsOIxN V.dict.tableRIOI x*ÁÝÜNtablenOI xqThe mapping from `dict_item <-key' to the corresponding dict_item object is maintained by this hash_table object.nnnsN M.dict.G.findOI xN M.dict.G.findRIOI x*ÂÒNfindnOI x1Invokes `chain <-find' on the chain of <-members.OIxIeNM.dict.G.find_alleNM.dict.S.for_someeNM.dict.S.for_allEN $examples$7XnnnnsNM.dict.S.for_allOIxNM.dict.S.for_allRIOIx+]P¢Nfor_allnOIx4Invokes `chain ->for_all' on the chain of <-members.OIxIEN M.dict.G.findXnnnnsNM.dict.G.matchOIxNM.dict.G.matchRIOIx*ÂÝ•NmatchnOIxReturn a new string holding all dict_item objects in this dict whose `dict_item <-label' (or `dict_item <-key' when the label is @default) match (using `char_array ->sub') the argument name. Note that more complicated searches may be performed using <-find_all.OIxIeNM.dict.G.find_alleNM.dict.G.find_prefixENM.dict.G.memberXnnnOIx+Should allow for case-insensitive matching.sNM.dict.S.for_someOIxNM.dict.S.for_someRIOIx*ÂÒºNfor_somenOIx5Invokes `chain ->for_some' on the chain of <-members.OIxIEN M.dict.G.findXnnnnsNC.dictCman_class_card identifiermodule last_modifiednamesummary descriptionsee_alsoinherituser_interfacebugsOIxNC.dictRIOIx0µÀÃNdictnOIxžA dict object (a dictionary) is a collection of dictionary items (dict_item objects), each of which is a triple (key, label, object). The key must be unique over the dict. Dict objects can be made visible by attaching them to a browser object or list_browser object. The browser can then be used to select dict_item objects. The access to a dict_item object from a key is implemented using a hash_table object.OIxIeN$class/browser$C.browsereN"$class/list_browser$C.list_browserEN$class/dict_item$C.dict_itemXnnOI x(Class `dict' is very old and is based on some outdated ideas. Currently its primary use is to provide the storage facilities for a browser. Its definition might be revised some day to be more in line with the spirit of the current PCE system. Notably try not to rely on ->format and <-current.sNM.dict.G.find_allOI!xNM.dict.G.find_allRIOI"x*ÂÒNfind_allnOI#x5Invokes `chain <-find_all' on the chain of <-members.OI$xIeNM.dict.G.matchEN M.dict.G.findXnnnnsNM.dict.G.memberOI%xNM.dict.G.memberRIOI&x*Âà4NmembernOI'xWhen the argument is a dict_item object, return it if `dict_item <-dict' equals this dict. Otherwise, invoke `hash_table <-member' on <-table and return the result. Note that many of the methods of the class that require a member dict_item argument use <-member to find the dict_item.OI(xIENM.dict.G.matchXnnnnsNM.dict.S.clearOI)xNM.dict.S.clearRIOI*x*ÂÐýNclearnOI+xSRemoves all dict_item objects from the dict. Informs a possibly related <-browser.OI,xIENM.dict.S.deleteXnnnnsNV.dict.sort_byOI-xNV.dict.sort_byRIOI.x4öŸ~Nsort_bynOI/x.The method <->sort_by defines the behaviour of ->insert as well as the default behaviour of ->sort. If its value is @nil, no sorting is done. ->insert and will behave as ->append. Using @default, the arguments are sorted alphabetically on their printed representation. ->insert will insert a new item according to this order. If the <-sort_by contains a code object, this will be used for comparing the pairs of dict_item objects. See also `chain ->sort'. It <-sort_by is assigned another value than @nil, ->sort will be activated to establish the desired order. Using ->sort_by is a good technique to insert new items at the right place in the list. It is not a good technique to build up a sorted list as this will result in quadratic behaviour for long lists, while ->sort uses the QuickSort algorithm.nnnsNM.dict.S.memberOI0xNM.dict.S.memberRIOI1x*Âß~NmembernOI2xZTest if the argument (a dict_item object or a `dict_item <-key') is member of the is dict.OI3xIENM.dict.G.memberXnnnOI4x(Redundant. Use `dict <-member' instead.sNM.dict.S.deleteOI5xNM.dict.S.deleteRIOI6x*ÂÑÙNdeletenOI7xeDelete a dict_item object. The dict_item to be deleted may be specified using its `dict_item <-key'.OI8xIENM.dict.S.clearXnOI9x`Fails silently when the argument is not a member dict_item or and the key of a member dict_item.nnsNV.dict.browserOI:xNV.dict.browserRIOI;x*ÁaNbrowsernOI_delete_item: dict_item' The indicated item has been deleted from the dict # `list_browser ->_insert_item: dict_item' The indicated item has been inserted in the dict # `list_browser ->_clear' The dict has been cleared.OI=xIeN'$class/list_browser$V.list_browser.dictEN"$class/list_browser$C.list_browserXnnsNV.dict.membersOI>xNV.dict.membersRIOI?x*ÁÝxNmembersnOI@xíChain with all the members. Class dict stores its members twice: once in <-members to maintain ordering information (see ->sort and ->append) and once in the hash_table object <-table to get fast access from a key to a dict_item object.OIAxIEN V.dict.tableXnnsNR.dict.sort_ignore_caseCman_resource_card identifiermodule last_modifiednamesummary descriptionsee_alsoinheritdefaultsO IBxNR.dict.sort_ignore_caseRIOICx*Âã'Nsort_ignore_casenOIDxDWhen @on, sort the dict case-insensitive on the `dict_item <-label'.OIExIeNM.dict.G.find_prefixeNR.dict.sort_ignore_blanksEN M.dict.S.sortXnnsNM.dict.S.insertOIFxNM.dict.S.insertRIOIGx9ÓfšNinsertnOIHxInsert dict_item according to <-sort_by. If <-sort_by is @nil, just ->append. If <-sort_by is @default, insert the item before the first item that is alphabetically larger. It <-sort_by contains a code object, insert it before the first item for which executing the code (if it is a function) return `larger'. See also `chain->sort', ->insert_after, ->append, ->sort and ->sort_by.nnnnnsNM.dict.S.insert_afterOIIxNM.dict.S.insert_afterRIOIJx*ÂÜœN insert_afternOIKx£Add a dict_item object (like ->append) after the specified item (a dict_item or key). If the second argument is @nil, the dict_item is inserted as the first item.OILxIENM.dict.S.appendXnnnnsNM.dict.G.find_prefixOIMxNM.dict.G.find_prefixRIOINx*ÂÛ3N find_prefixnOIOxþReturn the first dict_item object from <-members whose <-label (or <-key if the <-label is @default) has the specified prefix. The search starts at the nth dict_item (0-based). The last argument requests case-insensitive (@on) or case-sensitive (@off).OIPxIeNM.dict.G.matchENR.dict.sort_ignore_caseXnOIQx: # Start index: 0 # Ignore case: @off (match exact case).nnsNR.dict.sort_ignore_blanksO IRxNR.dict.sort_ignore_blanksRIOISx*ÂâöNsort_ignore_blanksnOITxdWhen @on, ignore leading and trailing blanks. Map multiple blanks onto a single space. See ->sort.OIUxIeNR.dict.sort_ignore_caseEN M.dict.S.sortXnnsNM.dict.S.appendOIVxNM.dict.S.appendRIOIWx9Óf¾NappendnOIXxÎAppend the dict_item at the end (see <-members). Note that class dict_item defines a conversion function to create a dict_item from a key. See `dict_item <-convert'. See also ->insert_after and ->insert.OIYxIeNM.dict.S.insert_afterEN&$class/dict_item$M.dict_item.G.convertXnnnOIZx·If there is already a dict_item with this `dict_item <-key', the old entry is deleted from <-table. A subsequent <-member wil this return the last appended dict_item with this <-key.XaCnumber O I[xx