Property List(3m17n)

NAME
m17nPlist - Property List: Property List objects and API for them.

  Typedefs
typedef struct MPlist MPlist
Type of property list objects.

  Functions
MPlist * mplist_deserialize (MText *mt)
Generate a property list by deserializing an M-text.
MPlist * mplist (void)
Create a property list object.
MPlist * mplist_copy (MPlist *plist)
Copy a property list.
MPlist * mplist_put (MPlist *plist, MSymbol key, void *val)
Set the value of a property in a property list.
void * mplist_get (MPlist *plist, MSymbol key)
Get the value of a property in a property list.
MPlist * mplist_put_func (MPlist *plist, MSymbol key, M17NFunc func)
Set the value (function pointer) of a property in a property list.
M17NFunc mplist_get_func (MPlist *plist, MSymbol key)
Get the value (function pointer) of a property in a property list.
MPlist * mplist_add (MPlist *plist, MSymbol key, void *val)
Add a property at the end of a property list.
MPlist * mplist_push (MPlist *plist, MSymbol key, void *val)
Add a property at the beginning of a property list.
void * mplist_pop (MPlist *plist)
Remove a property at the beginning of a property list.
MPlist * mplist_find_by_key (MPlist *plist, MSymbol key)
Find a property of a specific key in a property list.
MPlist * mplist_find_by_value (MPlist *plist, void *val)
Find a property of a specific value in a property list.
MPlist * mplist_next (MPlist *plist)
Return the next sublist of a property list.
MPlist * mplist_set (MPlist *plist, MSymbol key, void *val)
Set the first property in a property list.
int mplist_length (MPlist *plist)
Return the length of a property list.
MSymbol mplist_key (MPlist *plist)
Return the key of the first property in a property list.
void * mplist_value (MPlist *plist)
Return the value of the first property in a property list.

  Variables
MSymbol Minteger
Symbol whose name is 'integer'.
MSymbol Mplist
Symbol whose name is 'plist'.
MSymbol Mtext
Symbol whose name is 'mtext'.

Detailed Description

Property List objects and API for them.

A property list (or plist for short) is a list of zero or more properties. A property consists of a key and a value, where key is a symbol and value is anything that can be cast to (void *).

If the key of a property is a managing key, its value is a managed object. A property list itself is a managed objects.

If each key of a plist is one of Msymbol, Mtext, Minteger, and Mplist, the plist is called as well-formed and represented by the following notation in the documentation.

      PLIST ::= '(' ELEMENT * ')'
      ELEMENT ::= INTEGER | SYMBOL | M-TEXT | PLIST
      M-TEXT ::= '"' text data ... '"'

For instance, if a plist has four elements; integer -20, symbol of name 'sym', M-text of contents 'abc', and plist of integer 10 and symbol of name 'another-symbol', it is represented as this:

(-20 sym 'abc' (10 another-symbol))

Typedef Documentation

  typedef struct MPlist MPlist

Type of property list objects.

The type MPlist is for a property list object. Its internal structure is concealed from application programs.

Variable Documentation

  MSymbol Minteger

Symbol whose name is 'integer'.

The symbol Minteger has the name 'integer'. The value of a property whose key is Minteger must be an integer.

  MSymbol Mplist

Symbol whose name is 'plist'.

The symbol Mplist has the name 'plist'. It is a managing key. A value of a property whose key is Mplist must be a plist.

  MSymbol Mtext

Symbol whose name is 'mtext'.

The symbol Mtext has the name 'mtext'. It is a managing key. A value of a property whose key is Mtext must be an M-text.

COPYRIGHT
Copyright (C) 2001 Information-technology Promotion Agency (IPA)
Copyright (C) 2001-2008 National Institute of Advanced Industrial Science and Technology (AIST)
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License <http://www.gnu.org/licenses/fdl.html>.