1e5798119SMasatake YAMATO /*
2e5798119SMasatake YAMATO * Generated by ./misc/optlib2c from optlib/qemuhx.ctags, Don't edit this manually.
3e5798119SMasatake YAMATO */
4e5798119SMasatake YAMATO #include "general.h"
5e5798119SMasatake YAMATO #include "parse.h"
6e5798119SMasatake YAMATO #include "routines.h"
70d502ef0SMasatake YAMATO #include "field.h"
80d502ef0SMasatake YAMATO #include "xtag.h"
9e5798119SMasatake YAMATO
10e5798119SMasatake YAMATO
initializeQemuHXParser(const langType language CTAGS_ATTR_UNUSED)11e5798119SMasatake YAMATO static void initializeQemuHXParser (const langType language CTAGS_ATTR_UNUSED)
12e5798119SMasatake YAMATO {
13e5798119SMasatake YAMATO }
14e5798119SMasatake YAMATO
QemuHXParser(void)15e5798119SMasatake YAMATO extern parserDefinition* QemuHXParser (void)
16e5798119SMasatake YAMATO {
17e5798119SMasatake YAMATO static const char *const extensions [] = {
18e5798119SMasatake YAMATO "hx",
19e5798119SMasatake YAMATO NULL
20e5798119SMasatake YAMATO };
21e5798119SMasatake YAMATO
22e5798119SMasatake YAMATO static const char *const aliases [] = {
23e5798119SMasatake YAMATO NULL
24e5798119SMasatake YAMATO };
25e5798119SMasatake YAMATO
26e5798119SMasatake YAMATO static const char *const patterns [] = {
27e5798119SMasatake YAMATO NULL
28e5798119SMasatake YAMATO };
29e5798119SMasatake YAMATO
30e5798119SMasatake YAMATO static kindDefinition QemuHXKindTable [] = {
312625d890SMasatake YAMATO {
322625d890SMasatake YAMATO true, 'q', "qmp", "QEMU Management Protocol dispatch table entries",
332625d890SMasatake YAMATO },
342625d890SMasatake YAMATO {
352625d890SMasatake YAMATO true, 'i', "infoitem", "item in texinfo doc",
362625d890SMasatake YAMATO },
37e5798119SMasatake YAMATO };
38e5798119SMasatake YAMATO static xtagDefinition QemuHXXtagTable [] = {
39e5798119SMasatake YAMATO {
40e5798119SMasatake YAMATO .enabled = true,
41e5798119SMasatake YAMATO .name = "funcmap",
42b7c2728dSMasatake YAMATO .description = "Include mapping SQMP to C function name",
43e5798119SMasatake YAMATO },
44e5798119SMasatake YAMATO };
45e5798119SMasatake YAMATO static tagRegexTable QemuHXTagRegexTable [] = {
46e5798119SMasatake YAMATO {"^SQMP[[:space:]]([-a-z_0-9A-Z]+)[[:space:]]---", "\\1",
47641e337aSMasatake YAMATO "q", "{mgroup=1}", NULL, true},
48e5798119SMasatake YAMATO {"^SQMP[[:space:]]([-a-z_0-9A-Z]+)[[:space:]]---", "qmp_\\1",
49*741a40efSMasatake YAMATO "q", "{mgroup=1}{_extra=funcmap}"
50*741a40efSMasatake YAMATO "{{\n"
51*741a40efSMasatake YAMATO " . :name dup (-_) _tr!\n"
52*741a40efSMasatake YAMATO " . exch name:\n"
53*741a40efSMasatake YAMATO "}}", NULL, true},
54e5798119SMasatake YAMATO {"^@item[[:space:]]{1,}([-.a-z_0-9A-Z]{1,})", "\\1",
55641e337aSMasatake YAMATO "i", NULL, NULL, false},
56e5798119SMasatake YAMATO };
57e5798119SMasatake YAMATO
58e5798119SMasatake YAMATO
59e5798119SMasatake YAMATO parserDefinition* const def = parserNew ("QemuHX");
60e5798119SMasatake YAMATO
61e5798119SMasatake YAMATO def->enabled = true;
62e5798119SMasatake YAMATO def->extensions = extensions;
63e5798119SMasatake YAMATO def->patterns = patterns;
64e5798119SMasatake YAMATO def->aliases = aliases;
65e5798119SMasatake YAMATO def->method = METHOD_NOT_CRAFTED|METHOD_REGEX;
66*741a40efSMasatake YAMATO def->useCork = CORK_QUEUE;
67e5798119SMasatake YAMATO def->kindTable = QemuHXKindTable;
68e5798119SMasatake YAMATO def->kindCount = ARRAY_SIZE(QemuHXKindTable);
69e5798119SMasatake YAMATO def->xtagTable = QemuHXXtagTable;
70e5798119SMasatake YAMATO def->xtagCount = ARRAY_SIZE(QemuHXXtagTable);
71e5798119SMasatake YAMATO def->tagRegexTable = QemuHXTagRegexTable;
72e5798119SMasatake YAMATO def->tagRegexCount = ARRAY_SIZE(QemuHXTagRegexTable);
73e5798119SMasatake YAMATO def->initialize = initializeQemuHXParser;
74e5798119SMasatake YAMATO
75e5798119SMasatake YAMATO return def;
76e5798119SMasatake YAMATO }
77