ref: 17b3ae4f1a1ce71b26bd2d383c9be513af29bb66
dir: /libxml/state-machine.h/
enum { /* Lexer Tokens */
Twhite = 0,
Topen,
Tname,
Tclose,
Tequal,
Tendblk,
Tnulblk,
NumToks
};
enum { /* Parser states */
Slost = 0,
Sopened = 1,
Snamed = 2,
Sattred = 3,
Sequed = 4,
Sendblk = 5,
Sclosed = 6,
NumStates
};
enum { /* Parser Actions */
Aerr = 0,
Anop = 1,
Aelem = 2,
Apcdata = 3,
Aattr = 4,
Avalue = 5,
Aup = 6,
Adown = 7,
Acheck = 8,
NumActions
};
static char *
tokstr[] = { /* lexer token names for debug */
[Twhite] "white", [Topen] "open",
[Tname] "name", [Tclose] "close",
[Tequal] "equal", [Tendblk] "endblk",
[Tnulblk] "nulblk"
};
static char *
stastr[] = { /* parser state names for debug */
[Slost] "lost", [Sopened] "opened",
[Snamed] "named", [Sattred] "attred",
[Sequed] "equed", [Sendblk] "endblk",
[Sclosed] "closed",
};
static char *
actstr[] = { /* parser action names for debug */
[Aerr] "error", [Anop] "nop",
[Apcdata] "pcdata", [Aattr] "attr",
[Avalue] "value", [Aelem] "elem",
[Aup] "up", [Adown] "down",
[Acheck] "check"
};
static int statab[7][7] = { /* Parser state transition table */
/* Twhite Topen Tname Tclose Tequal Tendblk Tnulblk */
[Slost] { Slost, Sopened,Slost, Slost, Slost, Slost, Slost },
[Sopened] { 0, 0, Snamed, 0, 0, 0, 0 },
[Snamed] { Snamed, 0, Sattred,Sendblk,0, Slost, Slost },
[Sattred] { Sattred, 0, 0, 0, Sequed, 0, 0 },
[Sequed] { Sequed, 0, Snamed, 0, 0, 0, 0 },
[Sendblk] { 0, 0, Sclosed,0, 0, 0, 0 },
[Sclosed] { 0, 0, 0, Slost, 0, 0, 0 },
};
static int acttab[7][7] = { /* Parser action table */
/* Twhite Topen Tname Tclose Tequal Tendblk Tnulblk */
[Slost] { Apcdata, Anop, Apcdata, Apcdata, Apcdata, Aup, Apcdata },
[Sopened] { 0, 0, Aelem, 0, 0, 0, 0 },
[Snamed] { Anop, 0, Aattr, Adown, 0, Anop, Anop },
[Sattred] { Anop, 0, 0, 0, Anop, 0, 0 },
[Sequed] { Anop, 0, Avalue, 0, 0, 0, 0 },
[Sendblk] { 0, 0, Acheck, 0, 0, 0, 0 },
[Sclosed] { 0, 0, 0, Anop, 0, 0, 0 },
};