XmParseMapping — Data type for a compound string parse mapping
"XmParseMapping" "data types" "XmParseMapping"
#include <Xm/Xm.h>
XmParseMapping is an opaque data type for a parse mapping used by
XmStringParseText to create a compound string. A parse mapping contains
a pattern to be matched in text being parsed to create a compound string. It
also contains a compound string, or a function to be invoked to provide a
compound string, to be included in the compound string being created whenever
the pattern is matched.
An application uses a resource-style interface to specify components for an
XmParseMapping.
XmParseMappingCreate creates a parse mapping,
using a resource-style argument list.
XmParseMappingGetValues and
XmParseMappingSetValues retrieve and set the components of a parse
mapping.
XmParseMappingFree recovers memory used by a parse mapping.
XmParseTable is an array of
XmParseMapping objects.
The
XmNinvokeParseProc resource is a function of type
XmParseProc,
which is defined as follows:
XmIncludeStatus (*XmParseProc) ( text_in_out, text_end, type, tag, entry, pattern_length,
str_include, call_data)
XtPointer * text_in_out;
XtPointer text_end;
XmTextType type;
XmStringTag tag;
XmParseMapping entry;
int pattern_length;
XmString * str_include;
XtPointer call_data;
A parse procedure provides an escape mechanism for arbitrarily complex parsing.
This procedure is invoked when a pattern in the input text is matched with a
pattern in a parse mapping whose
XmNincludeStatus is
XmINVOKE.
The input text is a pointer to the first byte of the pattern that was matched to
trigger the call to the parse procedure. The parse procedure consumes as many
bytes of the input string as it needs and sets the input text pointer to the
following byte. It returns a compound string to be included in the compound
string being constructed, and it also returns an
XmIncludeStatus
indicating how the returned compound string should be handled. If the parse
procedure does not set the input text pointer ahead by at least one byte, the
parsing routine continues trying to match the input text with the patterns in
the remaining parse mappings in the parse table. Otherwise, the parsing
routine begins with the new input text pointer and tries to match the input
text with patterns in the parse mappings starting at the beginning of the
parse table.
- text_in_out
- Specifies the text being parsed. The value is a pointer to
the first byte of text matching the pattern that triggered the call to the
parse procedure. When the parse procedure returns, this argument is set to
the position in the text where parsing should resume—that is, to
the byte following the last character parsed by the parse procedure.
- text_end
- Specifies a pointer to the end of the text_in_out
string. If text_end is NULL, the string is scanned until a NULL
character is found. Otherwise, the string is scanned up to but not
including the character whose address is text_end.
- type
- Specifies the type of text and the tag type. If a locale
tag should be created, type has a value of either
XmMULTIBYTE_TEXT or XmWIDECHAR_TEXT. If a charset should be
created, type has a value of XmCHARSET_TEXT.
- tag
- Specifies the tag to be used in creating the result. The
type of string tag created (charset or locale) depends on the text type
and the passed in tag value. If the tag value is NULL and if
type indicates that a charset string tag should be created, the
string tag has the value that is the result of mapping
XmSTRING_DEFAULT_CHARSET. If type indicates a locale string
tag, the string tag has the value _MOTIF_DEFAULT_LOCALE.
- entry
- Specifies the parse mapping that triggered the call to the
parse procedure.
- pattern_length
- Specifies the number of bytes in the input text, following
text_in_out, that constitute the matched pattern.
- str_include
- Specifies a pointer to a compound string. The parse
procedure creates a compound string to be included in the compound string
being constructed. The parse procedure then returns the compound string in
this argument.
- call_data
- Specifies data passed by the application to the parsing
routine.
The parse procedure returns an
XmIncludeStatus indicating how
str_include is to be included in the compound string being constructed.
Following are the possible values:
- XmINSERT
- Concatenate the result to the compound string being
constructed and continue parsing.
- XmTERMINATE
- Concatenate the result to the compound string being
constructed and terminate parsing.
The following table defines a set of resources used by the programmer to specify
data. The codes in the access column indicate if the given resource can be set
at creation time (C), set by using
XmParseMappingSetValues (S),
retrieved by using
XmParseMappingGetValues (G), or is not applicable
(N/A).
XmParseMapping Resource Set |
|
|
|
|
Name |
Class |
Type |
Default |
Access |
_ |
_ |
_ |
_ |
_ |
XmNclientData |
|
XtPointer |
NULL |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNincludeStatus |
|
XmIncludeStatus |
XmINSERT |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNinvokeParseProc |
|
XmParseProc |
NULL |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNpattern |
|
XtPointer |
NULL |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNpatternType |
|
XmTextType |
XmCHARSET_TEXT |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNsubstitute |
|
XmString |
NULL |
CSG |
_ |
_ |
_ |
_ |
_ |
- XmNclientData
- Specifies data to be used by the parse procedure.
- XmNincludeStatus
- Specifies how the result of the mapping is to be included
in the compound string being constructed. Unless the value is
XmINVOKE, the result of the mapping is the value of
XmNsubstitute. Following are the possible values for
XmNincludeStatus:
- XmINSERT
- Concatenate the result to the compound string being
constructed and continue parsing.
- XmINVOKE
- Invoke the XmNinvokeParseProc on the text being
parsed and use the returned compound string instead of
XmNsubstitute as the result to be inserted into the compound string
being constructed. The include status returned by the parse procedure (
XmINSERT or XmTERMINATE) determines how the returned
compound string is included.
- XmTERMINATE
- Concatenate the result to the compound string being
constructed and terminate parsing.
- XmNinvokeParseProc
- Specifies the parse procedure to be invoked when
XmNincludeStatus is XmINVOKE.
- XmNpattern
- Specifies a pattern to be matched in the text being parsed.
This is a maximum of one character.
- XmNpatternType
- Specifies the type of the pattern that is the value of
XmNpattern. Following are the possible values:
- •
- XmCHARSET_TEXT
- •
- XmMULTIBYTE_TEXT
- •
- XmWIDECHAR_TEXT
- XmNsubstitute
- Specifies the compound string to be included in the
compound string being constructed when XmNincludeStatus is
XmINSERT or XmTERMINATE.
XmParseMappingCreate(3),
XmParseMappingFree(3),
XmParseMappingGetValues(3),
XmParseMappingSetValues(3),
XmParseTable(3), and
XmString(3).