Added 'prefix' and 'suffix' for keyword-list

master
Yevgen Muntyan 2006-04-27 00:17:04 -05:00
parent 0c93d6509e
commit 3de7d80d8f
7 changed files with 293 additions and 271 deletions

View File

@ -933,12 +933,14 @@ static KeywordXML*
keyword_xml_parse (xmlNode *node) keyword_xml_parse (xmlNode *node)
{ {
KeywordXML *xml = NULL; KeywordXML *xml = NULL;
xmlChar *name = NULL, *word_boundary = NULL; xmlChar *name = NULL, *word_boundary = NULL, *prefix = NULL, *suffix = NULL;
g_assert (IS_KEYWORD_LIST_NODE (node)); g_assert (IS_KEYWORD_LIST_NODE (node));
name = GET_PROP (node, KEYWORD_NAME_PROP); name = GET_PROP (node, KEYWORD_NAME_PROP);
word_boundary = GET_PROP (node, KEYWORD_WBNDRY_PROP); word_boundary = GET_PROP (node, KEYWORD_WBNDRY_PROP);
prefix = GET_PROP (node, KEYWORD_PREFIX_PROP);
suffix = GET_PROP (node, KEYWORD_SUFFIX_PROP);
if (!name || !name[0]) if (!name || !name[0])
{ {
@ -949,11 +951,15 @@ keyword_xml_parse (xmlNode *node)
xml = g_new0 (KeywordXML, 1); xml = g_new0 (KeywordXML, 1);
xml->name = STRDUP (name); xml->name = STRDUP (name);
xml->word_boundary = parse_bool (word_boundary, TRUE) xml->word_boundary = parse_bool (word_boundary, TRUE);
xml->prefix = STRDUP (prefix);
xml->suffix = STRDUP (suffix);
DEBUG_PRINT ({ DEBUG_PRINT ({
g_print ("keyword-list: %s\n", name); g_print ("keyword-list: %s\n", name);
g_print (" word-boundary: %s\n", xml->word_boundary ? "TRUE" : "FALSE"); g_print (" word-boundary: %s\n", xml->word_boundary ? "TRUE" : "FALSE");
g_print (" prefix: %s\n", xml->prefix ? xml->prefix : "<NULL>");
g_print (" suffix: %s\n", xml->suffix ? xml->suffix : "<NULL>");
g_print ("\n"); g_print ("\n");
}); });
@ -994,11 +1000,15 @@ keyword_xml_parse (xmlNode *node)
xml->words = g_slist_reverse (xml->words); xml->words = g_slist_reverse (xml->words);
STRING_FREE (name); STRING_FREE (name);
STRING_FREE (prefix);
STRING_FREE (suffix);
STRING_FREE (word_boundary); STRING_FREE (word_boundary);
return xml; return xml;
error: error:
STRING_FREE (name); STRING_FREE (name);
STRING_FREE (prefix);
STRING_FREE (suffix);
STRING_FREE (word_boundary); STRING_FREE (word_boundary);
keyword_xml_free (xml); keyword_xml_free (xml);
return NULL; return NULL;
@ -1013,6 +1023,8 @@ keyword_xml_free (KeywordXML *xml)
g_slist_foreach (xml->words, (GFunc) g_free, NULL); g_slist_foreach (xml->words, (GFunc) g_free, NULL);
g_slist_free (xml->words); g_slist_free (xml->words);
g_free (xml->name); g_free (xml->name);
g_free (xml->suffix);
g_free (xml->prefix);
g_free (xml); g_free (xml);
} }
} }
@ -2008,8 +2020,8 @@ rule_any_char_xml_free (RuleAnyCharXML *xml)
static RuleXML* static RuleXML*
rule_keywords_xml_parse (LangXML *lang_xml, rule_keywords_xml_parse (LangXML *lang_xml,
xmlNode *node) xmlNode *node)
{ {
RuleKeywordsXML *xml; RuleKeywordsXML *xml;
xmlChar *keyword; xmlChar *keyword;
@ -2047,6 +2059,7 @@ rule_keywords_xml_create_rule (RuleKeywordsXML *xml,
return moo_rule_keywords_new (kw_xml->words, return moo_rule_keywords_new (kw_xml->words,
rule_xml_get_flags (xml), rule_xml_get_flags (xml),
kw_xml->word_boundary, kw_xml->word_boundary,
kw_xml->prefix, kw_xml->suffix,
rule_xml_get_style (xml)); rule_xml_get_style (xml));
} }

View File

@ -96,6 +96,8 @@ struct _KeywordXML {
GSList *words; /* char*; must not be empty */ GSList *words; /* char*; must not be empty */
guint n_words; guint n_words;
gboolean word_boundary; /* optional, defaults to TRUE */ gboolean word_boundary; /* optional, defaults to TRUE */
char *prefix; /* optional, defaults to NULL */
char *suffix; /* optional, defaults to NULL */
}; };
struct _ContextXML { struct _ContextXML {

View File

@ -772,6 +772,8 @@ MooRule*
moo_rule_keywords_new (GSList *words, moo_rule_keywords_new (GSList *words,
MooRuleFlags flags, MooRuleFlags flags,
gboolean word_boundary, gboolean word_boundary,
const char *prefix,
const char *suffix,
const char *style) const char *style)
{ {
GSList *l; GSList *l;
@ -780,10 +782,10 @@ moo_rule_keywords_new (GSList *words,
g_return_val_if_fail (words != NULL, NULL); g_return_val_if_fail (words != NULL, NULL);
if (word_boundary) pattern = g_string_new (NULL);
pattern = g_string_new ("\\b("); g_string_printf (pattern, "%s%s(",
else word_boundary ? "\\b" : "",
pattern = g_string_new ("("); prefix ? prefix : "");
for (l = words; l != NULL; l = l->next) for (l = words; l != NULL; l = l->next)
{ {
@ -801,10 +803,9 @@ moo_rule_keywords_new (GSList *words,
g_string_append (pattern, word); g_string_append (pattern, word);
} }
if (word_boundary) g_string_append_printf (pattern, ")%s%s",
g_string_append (pattern, ")\\b"); suffix ? suffix : "",
else word_boundary ? "\\b" : "");
g_string_append (pattern, ")");
rule = moo_rule_regex_new (pattern->str, TRUE, 0, 0, flags, style); rule = moo_rule_regex_new (pattern->str, TRUE, 0, 0, flags, style);

View File

@ -74,6 +74,8 @@ MooRule *moo_rule_any_char_new (const char *string,
MooRule *moo_rule_keywords_new (GSList *words, MooRule *moo_rule_keywords_new (GSList *words,
MooRuleFlags flags, MooRuleFlags flags,
gboolean word_boundary, gboolean word_boundary,
const char *prefix,
const char *suffix,
const char *style); const char *style);
MooRule *moo_rule_zero_new (MooRuleFlags flags); MooRule *moo_rule_zero_new (MooRuleFlags flags);
MooRule *moo_rule_include_new (MooContext *context); MooRule *moo_rule_include_new (MooContext *context);

View File

@ -74,6 +74,8 @@
#define KEYWORD_NAME_PROP "name" #define KEYWORD_NAME_PROP "name"
#define KEYWORD_WBNDRY_PROP "word-boundary" #define KEYWORD_WBNDRY_PROP "word-boundary"
#define KEYWORD_PREFIX_PROP "prefix"
#define KEYWORD_SUFFIX_PROP "suffix"
#define CONTEXT_NAME_PROP "name" #define CONTEXT_NAME_PROP "name"
#define CONTEXT_STYLE_PROP "style" #define CONTEXT_STYLE_PROP "style"

View File

@ -44,6 +44,8 @@
<!ATTLIST keyword-list <!ATTLIST keyword-list
name CDATA #REQUIRED name CDATA #REQUIRED
word-boundary CDATA #IMPLIED word-boundary CDATA #IMPLIED
prefix CDATA #IMPLIED
suffix CDATA #IMPLIED
> >
<!-- keyword --> <!-- keyword -->

View File

@ -9,265 +9,265 @@
<keyword>\\input</keyword> <keyword>\\input</keyword>
</keyword-list> </keyword-list>
<keyword-list name="Keyword" word-boundary="False"> <keyword-list name="Keyword" word-boundary="False" prefix="@">
<keyword>@WHITESPACE</keyword> <keyword>WHITESPACE</keyword>
<keyword>@!</keyword> <keyword>!</keyword>
<keyword>@"</keyword> <keyword>"</keyword>
<keyword>@'</keyword> <keyword>'</keyword>
<keyword>@\*</keyword> <keyword>\*</keyword>
<keyword>@,</keyword> <keyword>,</keyword>
<keyword>@-</keyword> <keyword>-</keyword>
<keyword>@\.</keyword> <keyword>\.</keyword>
<keyword>@:</keyword> <keyword>:</keyword>
<keyword>@=</keyword> <keyword>=</keyword>
<keyword>@\?</keyword> <keyword>\?</keyword>
<keyword>@\^</keyword> <keyword>\^</keyword>
<keyword>@`</keyword> <keyword>`</keyword>
<keyword>@\{</keyword> <keyword>\{</keyword>
<keyword>@}</keyword> <keyword>}</keyword>
<keyword>@=</keyword> <keyword>=</keyword>
<keyword>@aa\{}</keyword> <keyword>aa\{}</keyword>
<keyword>@AA\{}</keyword> <keyword>AA\{}</keyword>
<keyword>@ae\{}</keyword> <keyword>ae\{}</keyword>
<keyword>@AE\{}</keyword> <keyword>AE\{}</keyword>
<keyword>@afourpaper</keyword> <keyword>afourpaper</keyword>
<keyword>@appendix</keyword> <keyword>appendix</keyword>
<keyword>@appendixsec</keyword> <keyword>appendixsec</keyword>
<keyword>@appendixsection</keyword> <keyword>appendixsection</keyword>
<keyword>@appendixsubsec</keyword> <keyword>appendixsubsec</keyword>
<keyword>@appendixsubsubsec</keyword> <keyword>appendixsubsubsec</keyword>
<keyword>@asis</keyword> <keyword>asis</keyword>
<keyword>@author</keyword> <keyword>author</keyword>
<keyword>@b</keyword> <keyword>b</keyword>
<keyword>@bullet\{}</keyword> <keyword>bullet\{}</keyword>
<keyword>@bye</keyword> <keyword>bye</keyword>
<keyword>@c</keyword> <keyword>c</keyword>
<keyword>@cartouche</keyword> <keyword>cartouche</keyword>
<keyword>@center</keyword> <keyword>center</keyword>
<keyword>@centerchap</keyword> <keyword>centerchap</keyword>
<keyword>@chapheading</keyword> <keyword>chapheading</keyword>
<keyword>@chapter</keyword> <keyword>chapter</keyword>
<keyword>@cindex</keyword> <keyword>cindex</keyword>
<keyword>@cite</keyword> <keyword>cite</keyword>
<keyword>@clear</keyword> <keyword>clear</keyword>
<keyword>@code</keyword> <keyword>code</keyword>
<keyword>@comment</keyword> <keyword>comment</keyword>
<keyword>@contents</keyword> <keyword>contents</keyword>
<keyword>@copyright\{}</keyword> <keyword>copyright\{}</keyword>
<keyword>@defcodeindex</keyword> <keyword>defcodeindex</keyword>
<keyword>@defcv</keyword> <keyword>defcv</keyword>
<keyword>@defcvx</keyword> <keyword>defcvx</keyword>
<keyword>@deffn</keyword> <keyword>deffn</keyword>
<keyword>@deffnx</keyword> <keyword>deffnx</keyword>
<keyword>@defindex</keyword> <keyword>defindex</keyword>
<keyword>@definfoenclose</keyword> <keyword>definfoenclose</keyword>
<keyword>@defivar</keyword> <keyword>defivar</keyword>
<keyword>@defivarx</keyword> <keyword>defivarx</keyword>
<keyword>@defmac</keyword> <keyword>defmac</keyword>
<keyword>@defmacx</keyword> <keyword>defmacx</keyword>
<keyword>@defmethod</keyword> <keyword>defmethod</keyword>
<keyword>@defmethodx</keyword> <keyword>defmethodx</keyword>
<keyword>@defop</keyword> <keyword>defop</keyword>
<keyword>@defopx</keyword> <keyword>defopx</keyword>
<keyword>@defopt</keyword> <keyword>defopt</keyword>
<keyword>@defoptx</keyword> <keyword>defoptx</keyword>
<keyword>@defspec</keyword> <keyword>defspec</keyword>
<keyword>@defspecx</keyword> <keyword>defspecx</keyword>
<keyword>@deftp</keyword> <keyword>deftp</keyword>
<keyword>@deftpx</keyword> <keyword>deftpx</keyword>
<keyword>@deftypefn</keyword> <keyword>deftypefn</keyword>
<keyword>@deftypefnx</keyword> <keyword>deftypefnx</keyword>
<keyword>@deftypefun</keyword> <keyword>deftypefun</keyword>
<keyword>@deftypefunx</keyword> <keyword>deftypefunx</keyword>
<keyword>@deftypemethod</keyword> <keyword>deftypemethod</keyword>
<keyword>@deftypemethodx</keyword> <keyword>deftypemethodx</keyword>
<keyword>@deftypevr</keyword> <keyword>deftypevr</keyword>
<keyword>@deftypevrx</keyword> <keyword>deftypevrx</keyword>
<keyword>@deftypevar</keyword> <keyword>deftypevar</keyword>
<keyword>@deftypevarx</keyword> <keyword>deftypevarx</keyword>
<keyword>@defun</keyword> <keyword>defun</keyword>
<keyword>@defunx</keyword> <keyword>defunx</keyword>
<keyword>@defvar</keyword> <keyword>defvar</keyword>
<keyword>@defvarx</keyword> <keyword>defvarx</keyword>
<keyword>@detailmenu\{}</keyword> <keyword>detailmenu\{}</keyword>
<keyword>@dfn</keyword> <keyword>dfn</keyword>
<keyword>@dircategory</keyword> <keyword>dircategory</keyword>
<keyword>@direntry</keyword> <keyword>direntry</keyword>
<keyword>@display</keyword> <keyword>display</keyword>
<keyword>@dmn</keyword> <keyword>dmn</keyword>
<keyword>@dotaccent</keyword> <keyword>dotaccent</keyword>
<keyword>@dots\{}</keyword> <keyword>dots\{}</keyword>
<keyword>@email</keyword> <keyword>email</keyword>
<keyword>@emph</keyword> <keyword>emph</keyword>
<keyword>@end\\scartouche</keyword> <keyword>end\\scartouche</keyword>
<keyword>@end\\sdirentry</keyword> <keyword>end\\sdirentry</keyword>
<keyword>@end\\senumerate</keyword> <keyword>end\\senumerate</keyword>
<keyword>@end\\sexample</keyword> <keyword>end\\sexample</keyword>
<keyword>@end\\sflushleft</keyword> <keyword>end\\sflushleft</keyword>
<keyword>@end\\sflushright</keyword> <keyword>end\\sflushright</keyword>
<keyword>@end\\sformat</keyword> <keyword>end\\sformat</keyword>
<keyword>@end\\sftable</keyword> <keyword>end\\sftable</keyword>
<keyword>@end\\sgroup</keyword> <keyword>end\\sgroup</keyword>
<keyword>@end\\shtml</keyword> <keyword>end\\shtml</keyword>
<keyword>@end\\sifclear</keyword> <keyword>end\\sifclear</keyword>
<keyword>@end\\sifhtml</keyword> <keyword>end\\sifhtml</keyword>
<keyword>@end\\sifinfo</keyword> <keyword>end\\sifinfo</keyword>
<keyword>@end\\sifnothtml</keyword> <keyword>end\\sifnothtml</keyword>
<keyword>@end\\sifnotinfo</keyword> <keyword>end\\sifnotinfo</keyword>
<keyword>@end\\sifnottex</keyword> <keyword>end\\sifnottex</keyword>
<keyword>@end\\sifset</keyword> <keyword>end\\sifset</keyword>
<keyword>@end\\siftex</keyword> <keyword>end\\siftex</keyword>
<keyword>@end\\signore</keyword> <keyword>end\\signore</keyword>
<keyword>@end\\sitemize</keyword> <keyword>end\\sitemize</keyword>
<keyword>@end\\slisp</keyword> <keyword>end\\slisp</keyword>
<keyword>@end\\smenu</keyword> <keyword>end\\smenu</keyword>
<keyword>@end\\smultitable</keyword> <keyword>end\\smultitable</keyword>
<keyword>@end\\squotation</keyword> <keyword>end\\squotation</keyword>
<keyword>@end\\ssmallexample</keyword> <keyword>end\\ssmallexample</keyword>
<keyword>@end\\ssmalllisp</keyword> <keyword>end\\ssmalllisp</keyword>
<keyword>@end\\stable</keyword> <keyword>end\\stable</keyword>
<keyword>@end\\stex</keyword> <keyword>end\\stex</keyword>
<keyword>@end\\stitlepage</keyword> <keyword>end\\stitlepage</keyword>
<keyword>@end\\svtable</keyword> <keyword>end\\svtable</keyword>
<keyword>@enddots\{}</keyword> <keyword>enddots\{}</keyword>
<keyword>@enumerate</keyword> <keyword>enumerate</keyword>
<keyword>@equiv\{}</keyword> <keyword>equiv\{}</keyword>
<keyword>@error\{}</keyword> <keyword>error\{}</keyword>
<keyword>@evenfooting</keyword> <keyword>evenfooting</keyword>
<keyword>@evenheading</keyword> <keyword>evenheading</keyword>
<keyword>@everyfooting</keyword> <keyword>everyfooting</keyword>
<keyword>@everyheading</keyword> <keyword>everyheading</keyword>
<keyword>@example</keyword> <keyword>example</keyword>
<keyword>@exclamdown\{}</keyword> <keyword>exclamdown\{}</keyword>
<keyword>@exdent</keyword> <keyword>exdent</keyword>
<keyword>@expansion\{}</keyword> <keyword>expansion\{}</keyword>
<keyword>@file</keyword> <keyword>file</keyword>
<keyword>@finalout</keyword> <keyword>finalout</keyword>
<keyword>@findex</keyword> <keyword>findex</keyword>
<keyword>@flushleft</keyword> <keyword>flushleft</keyword>
<keyword>@flushright</keyword> <keyword>flushright</keyword>
<keyword>@footnote</keyword> <keyword>footnote</keyword>
<keyword>@footnotestyle</keyword> <keyword>footnotestyle</keyword>
<keyword>@format</keyword> <keyword>format</keyword>
<keyword>@ftable</keyword> <keyword>ftable</keyword>
<keyword>@group</keyword> <keyword>group</keyword>
<keyword>@H</keyword> <keyword>H</keyword>
<keyword>@heading</keyword> <keyword>heading</keyword>
<keyword>@headings</keyword> <keyword>headings</keyword>
<keyword>@html</keyword> <keyword>html</keyword>
<keyword>@hyphenation</keyword> <keyword>hyphenation</keyword>
<keyword>@i</keyword> <keyword>i</keyword>
<keyword>@ifclear</keyword> <keyword>ifclear</keyword>
<keyword>@ifhtml</keyword> <keyword>ifhtml</keyword>
<keyword>@ifinfo</keyword> <keyword>ifinfo</keyword>
<keyword>@ifnothtml</keyword> <keyword>ifnothtml</keyword>
<keyword>@ifnotinfo</keyword> <keyword>ifnotinfo</keyword>
<keyword>@ifnottex</keyword> <keyword>ifnottex</keyword>
<keyword>@ifset</keyword> <keyword>ifset</keyword>
<keyword>@iftex</keyword> <keyword>iftex</keyword>
<keyword>@ignore</keyword> <keyword>ignore</keyword>
<keyword>@image</keyword> <keyword>image</keyword>
<keyword>@include</keyword> <keyword>include</keyword>
<keyword>@inforef</keyword> <keyword>inforef</keyword>
<keyword>@item</keyword> <keyword>item</keyword>
<keyword>@itemize</keyword> <keyword>itemize</keyword>
<keyword>@itemx</keyword> <keyword>itemx</keyword>
<keyword>@kbd</keyword> <keyword>kbd</keyword>
<keyword>@kbdinputstyle</keyword> <keyword>kbdinputstyle</keyword>
<keyword>@key</keyword> <keyword>key</keyword>
<keyword>@kindex</keyword> <keyword>kindex</keyword>
<keyword>@l\{}</keyword> <keyword>l\{}</keyword>
<keyword>@L\{}</keyword> <keyword>L\{}</keyword>
<keyword>@lisp</keyword> <keyword>lisp</keyword>
<keyword>@lowersections</keyword> <keyword>lowersections</keyword>
<keyword>@macro</keyword> <keyword>macro</keyword>
<keyword>@majorheading</keyword> <keyword>majorheading</keyword>
<keyword>@math</keyword> <keyword>math</keyword>
<keyword>@menu</keyword> <keyword>menu</keyword>
<keyword>@minus\{}</keyword> <keyword>minus\{}</keyword>
<keyword>@multitable</keyword> <keyword>multitable</keyword>
<keyword>@need</keyword> <keyword>need</keyword>
<keyword>@node</keyword> <keyword>node</keyword>
<keyword>@noindent</keyword> <keyword>noindent</keyword>
<keyword>@o\{}</keyword> <keyword>o\{}</keyword>
<keyword>@O\{}</keyword> <keyword>O\{}</keyword>
<keyword>@oddfooting</keyword> <keyword>oddfooting</keyword>
<keyword>@oddheading</keyword> <keyword>oddheading</keyword>
<keyword>@oe\{}</keyword> <keyword>oe\{}</keyword>
<keyword>@OE\{}</keyword> <keyword>OE\{}</keyword>
<keyword>@page</keyword> <keyword>page</keyword>
<keyword>@paragraphindent</keyword> <keyword>paragraphindent</keyword>
<keyword>@pindex</keyword> <keyword>pindex</keyword>
<keyword>@point\{}</keyword> <keyword>point\{}</keyword>
<keyword>@pounds\{}</keyword> <keyword>pounds\{}</keyword>
<keyword>@print\{}</keyword> <keyword>print\{}</keyword>
<keyword>@printindex</keyword> <keyword>printindex</keyword>
<keyword>@pxref</keyword> <keyword>pxref</keyword>
<keyword>@questiondown\{}</keyword> <keyword>questiondown\{}</keyword>
<keyword>@quotation</keyword> <keyword>quotation</keyword>
<keyword>@r</keyword> <keyword>r</keyword>
<keyword>@raisesections</keyword> <keyword>raisesections</keyword>
<keyword>@ref</keyword> <keyword>ref</keyword>
<keyword>@refill</keyword> <keyword>refill</keyword>
<keyword>@result\{}</keyword> <keyword>result\{}</keyword>
<keyword>@ringaccent</keyword> <keyword>ringaccent</keyword>
<keyword>@samp</keyword> <keyword>samp</keyword>
<keyword>@sc</keyword> <keyword>sc</keyword>
<keyword>@section</keyword> <keyword>section</keyword>
<keyword>@set</keyword> <keyword>set</keyword>
<keyword>@setchapternewpage</keyword> <keyword>setchapternewpage</keyword>
<keyword>@setfilename</keyword> <keyword>setfilename</keyword>
<keyword>@settitle</keyword> <keyword>settitle</keyword>
<keyword>@shortcontents</keyword> <keyword>shortcontents</keyword>
<keyword>@shorttitlepage</keyword> <keyword>shorttitlepage</keyword>
<keyword>@smallbook</keyword> <keyword>smallbook</keyword>
<keyword>@smallexample</keyword> <keyword>smallexample</keyword>
<keyword>@smalllisp</keyword> <keyword>smalllisp</keyword>
<keyword>@sp</keyword> <keyword>sp</keyword>
<keyword>@ss\{}</keyword> <keyword>ss\{}</keyword>
<keyword>@strong</keyword> <keyword>strong</keyword>
<keyword>@subheading</keyword> <keyword>subheading</keyword>
<keyword>@subsection</keyword> <keyword>subsection</keyword>
<keyword>@subsubheading</keyword> <keyword>subsubheading</keyword>
<keyword>@subsubsection</keyword> <keyword>subsubsection</keyword>
<keyword>@subtitle</keyword> <keyword>subtitle</keyword>
<keyword>@summarycontents</keyword> <keyword>summarycontents</keyword>
<keyword>@syncodeindex</keyword> <keyword>syncodeindex</keyword>
<keyword>@synindex</keyword> <keyword>synindex</keyword>
<keyword>@t</keyword> <keyword>t</keyword>
<keyword>@tab</keyword> <keyword>tab</keyword>
<keyword>@table</keyword> <keyword>table</keyword>
<keyword>@TeX\{}</keyword> <keyword>TeX\{}</keyword>
<keyword>@tex</keyword> <keyword>tex</keyword>
<keyword>@thischapter</keyword> <keyword>thischapter</keyword>
<keyword>@thischaptername</keyword> <keyword>thischaptername</keyword>
<keyword>@thisfile</keyword> <keyword>thisfile</keyword>
<keyword>@thispage</keyword> <keyword>thispage</keyword>
<keyword>@thistitle</keyword> <keyword>thistitle</keyword>
<keyword>@tieaccent</keyword> <keyword>tieaccent</keyword>
<keyword>@tindex</keyword> <keyword>tindex</keyword>
<keyword>@title</keyword> <keyword>title</keyword>
<keyword>@titlefont</keyword> <keyword>titlefont</keyword>
<keyword>@titlepage</keyword> <keyword>titlepage</keyword>
<keyword>@today\{}</keyword> <keyword>today\{}</keyword>
<keyword>@top</keyword> <keyword>top</keyword>
<keyword>@u</keyword> <keyword>u</keyword>
<keyword>@ubaraccent</keyword> <keyword>ubaraccent</keyword>
<keyword>@udotaccent</keyword> <keyword>udotaccent</keyword>
<keyword>@unnumbered</keyword> <keyword>unnumbered</keyword>
<keyword>@unnumberedsec</keyword> <keyword>unnumberedsec</keyword>
<keyword>@unnumberedsubsec</keyword> <keyword>unnumberedsubsec</keyword>
<keyword>@unnumberedsubsubsec</keyword> <keyword>unnumberedsubsubsec</keyword>
<keyword>@uref</keyword> <keyword>uref</keyword>
<keyword>@url</keyword> <keyword>url</keyword>
<keyword>@v</keyword> <keyword>v</keyword>
<keyword>@value</keyword> <keyword>value</keyword>
<keyword>@var</keyword> <keyword>var</keyword>
<keyword>@vindex</keyword> <keyword>vindex</keyword>
<keyword>@vskip</keyword> <keyword>vskip</keyword>
<keyword>@vtable</keyword> <keyword>vtable</keyword>
<keyword>@w</keyword> <keyword>w</keyword>
<keyword>@xref</keyword> <keyword>xref</keyword>
</keyword-list> </keyword-list>
<context name="Normal"> <context name="Normal">