|
Packit Service |
87bb26 |
/* LEXRF: Lexical tables for reference concrete syntax.
|
|
Packit Service |
87bb26 |
*/
|
|
Packit Service |
87bb26 |
|
|
Packit Service |
87bb26 |
#include "config.h"
|
|
Packit Service |
87bb26 |
#include "entity.h" /* Templates for entity control blocks. */
|
|
Packit Service |
87bb26 |
#include "synxtrn.h" /* Declarations for concrete syntax constants. */
|
|
Packit Service |
87bb26 |
#include "action.h" /* Action names for all parsing. */
|
|
Packit Service |
87bb26 |
#include "lexcode.h"
|
|
Packit Service |
87bb26 |
|
|
Packit Service |
87bb26 |
static UNCH SRTAB[] = { TABCHAR, '\0' };
|
|
Packit Service |
87bb26 |
static UNCH SRRE[] = { RECHAR, '\0' };
|
|
Packit Service |
87bb26 |
static UNCH SRRS[] = { RSCHAR, '\0' };
|
|
Packit Service |
87bb26 |
static UNCH SRRSB[] = { RSCHAR, 'B', '\0' };
|
|
Packit Service |
87bb26 |
static UNCH SRRSRE[] = { RSCHAR, RECHAR, '\0' };
|
|
Packit Service |
87bb26 |
static UNCH SRRSBRE[] = { RSCHAR, 'B', RECHAR, '\0' };
|
|
Packit Service |
87bb26 |
static UNCH SRBRE[] = { 'B', RECHAR, '\0' };
|
|
Packit Service |
87bb26 |
|
|
Packit Service |
87bb26 |
struct lexical lex = { /* Delimiter set constants for parser use. */
|
|
Packit Service |
87bb26 |
{ /* Markup strings for text processor use. */
|
|
Packit Service |
87bb26 |
(UNCH *)"\4&#", /* LEXCON markup string: CRO */
|
|
Packit Service |
87bb26 |
(UNCH *)"[", /* LEXCON markup string: DSO */
|
|
Packit Service |
87bb26 |
(UNCH *)"\3&", /* LEXCON markup string: ERO */
|
|
Packit Service |
87bb26 |
(UNCH *)"\4</", /* LEXMARK markup string: end-tag */
|
|
Packit Service |
87bb26 |
(UNCH *)"\3\"", /* LEXMARK markup string: LIT */
|
|
Packit Service |
87bb26 |
(UNCH *)"\3'", /* LEXMARK markup string: LITA */
|
|
Packit Service |
87bb26 |
(UNCH *)"\3>", /* LEXCON markup string: MDC */
|
|
Packit Service |
87bb26 |
(UNCH *)"\4
|
|
Packit Service |
87bb26 |
(UNCH *)"\5]]>", /* LEXCON markup string: mse */
|
|
Packit Service |
87bb26 |
(UNCH *)"\5
|
|
Packit Service |
87bb26 |
(UNCH *)"\13
|
|
Packit Service |
87bb26 |
(UNCH *)"\14
|
|
Packit Service |
87bb26 |
(UNCH *)"\3>", /* LEXCON markup string: PIC */
|
|
Packit Service |
87bb26 |
(UNCH *)"\4
|
|
Packit Service |
87bb26 |
(UNCH *)"\3;", /* LEXGRP markup string: ref close. */
|
|
Packit Service |
87bb26 |
(UNCH *)"\3<", /* LEXMARK markup string: start-tag */
|
|
Packit Service |
87bb26 |
(UNCH *)"\3>", /* LEXMARK markup string: TAGC */
|
|
Packit Service |
87bb26 |
(UNCH *)"\3=", /* LEXMARK markup string: VI */
|
|
Packit Service |
87bb26 |
3, /* LEXMARK: length of null end-tag. */
|
|
Packit Service |
87bb26 |
2 /* LEXMARK: length of null start-tag. */
|
|
Packit Service |
87bb26 |
},
|
|
Packit Service |
87bb26 |
{ /* Short reference delimiters. */
|
|
Packit Service |
87bb26 |
{ /* Short reference delimiter table. */
|
|
Packit Service |
87bb26 |
{(UNCH *)"", SRCT}, /* Dummy entry to store SR count. */
|
|
Packit Service |
87bb26 |
{SRTAB, 1}, /* TAB */
|
|
Packit Service |
87bb26 |
{SRRE, 2}, /* RE */
|
|
Packit Service |
87bb26 |
{SRRS, 3}, /* RS */
|
|
Packit Service |
87bb26 |
{SRRSB, 4}, /* Leading blanks */
|
|
Packit Service |
87bb26 |
{SRRSRE, 5}, /* Null record */
|
|
Packit Service |
87bb26 |
{SRRSBRE, 6}, /* Blank record */
|
|
Packit Service |
87bb26 |
{SRBRE, 7}, /* Trailing blanks */
|
|
Packit Service |
87bb26 |
{(UNCH *)" ", 8}, /* Space */
|
|
Packit Service |
87bb26 |
{(UNCH *)"BB", 9}, /* Two or more blanks */
|
|
Packit Service |
87bb26 |
{(UNCH *)"\"", 10}, /* Quotation mark (first data character) */
|
|
Packit Service |
87bb26 |
{(UNCH *)"#", 11}, /* Number sign */
|
|
Packit Service |
87bb26 |
{(UNCH *)"%", 12}, /* FCE CHARACTERS start here */
|
|
Packit Service |
87bb26 |
{(UNCH *)"'", 13},
|
|
Packit Service |
87bb26 |
{(UNCH *)"(", 14},
|
|
Packit Service |
87bb26 |
{(UNCH *)")", 15},
|
|
Packit Service |
87bb26 |
{(UNCH *)"*", 16},
|
|
Packit Service |
87bb26 |
{(UNCH *)"+", 17},
|
|
Packit Service |
87bb26 |
{(UNCH *)",", 18},
|
|
Packit Service |
87bb26 |
{(UNCH *)"-", 19}, /* Hyphen */
|
|
Packit Service |
87bb26 |
{(UNCH *)"--", 20}, /* Two hyphens */
|
|
Packit Service |
87bb26 |
{(UNCH *)":", 21},
|
|
Packit Service |
87bb26 |
{(UNCH *)";", 22},
|
|
Packit Service |
87bb26 |
{(UNCH *)"=", 23},
|
|
Packit Service |
87bb26 |
{(UNCH *)"@", 24},
|
|
Packit Service |
87bb26 |
{(UNCH *)"[", 25},
|
|
Packit Service |
87bb26 |
{(UNCH *)"]", 26},
|
|
Packit Service |
87bb26 |
{(UNCH *)"^", 27},
|
|
Packit Service |
87bb26 |
{(UNCH *)"_", 28}, /* Low line */
|
|
Packit Service |
87bb26 |
{(UNCH *)"{", 29},
|
|
Packit Service |
87bb26 |
{(UNCH *)"|", 30},
|
|
Packit Service |
87bb26 |
{(UNCH *)"}", 31},
|
|
Packit Service |
87bb26 |
{(UNCH *)"~", 32},
|
|
Packit Service |
87bb26 |
{0, 0}
|
|
Packit Service |
87bb26 |
},
|
|
Packit Service |
87bb26 |
{ /* Printable form of unprintable SR delims.*/
|
|
Packit Service |
87bb26 |
"", /* Dummy entry to balance s.dtb. */
|
|
Packit Service |
87bb26 |
"&#TAB;", /* TAB */
|
|
Packit Service |
87bb26 |
"&#RE;", /* RE */
|
|
Packit Service |
87bb26 |
"&#RS;", /* RS */
|
|
Packit Service |
87bb26 |
"&#RS;B", /* Leading blanks */
|
|
Packit Service |
87bb26 |
"&#RS;&#RE;", /* Null record */
|
|
Packit Service |
87bb26 |
"&#RS;B&#RE;", /* Blank record */
|
|
Packit Service |
87bb26 |
"B&#RE;", /* Trailing blanks */
|
|
Packit Service |
87bb26 |
"&#SPACE;" /* Space */
|
|
Packit Service |
87bb26 |
},
|
|
Packit Service |
87bb26 |
12, /* LEXCNM: Index of first FCE in srdeltab. */
|
|
Packit Service |
87bb26 |
20, /*LEXCNM:Index of "two hyphens" in srdeltab*/
|
|
Packit Service |
87bb26 |
10, /* LEXCNM: Index of first SR with data char. */
|
|
Packit Service |
87bb26 |
19, /* LEXCNM: Index of hyphen in srdeltab. */
|
|
Packit Service |
87bb26 |
SRNPRT+1, /* LEXCNM: Index of 1st printable SR. */
|
|
Packit Service |
87bb26 |
8, /* LEXCNM: Index of space in srdeltab. */
|
|
Packit Service |
87bb26 |
25, /* LEXCNM: Index of left bracket in srdeltab. */
|
|
Packit Service |
87bb26 |
26, /* LEXCNM: Index of right bracket in srdeltab. */
|
|
Packit Service |
87bb26 |
}, /* End of short reference delimiters. */
|
|
Packit Service |
87bb26 |
{ /* General delimiter characters. */
|
|
Packit Service |
87bb26 |
GENRECHAR, /*LEXCNM:(BS)Generated RE; can't be markup.*/
|
|
Packit Service |
87bb26 |
'"', /* LEXMARK: Char used as LIT delimiter.*/
|
|
Packit Service |
87bb26 |
'\'', /* LEXMARK: Char used as LITA delimiter.*/
|
|
Packit Service |
87bb26 |
'>', /* LEXLMS: Char used as MDC delimiter.*/
|
|
Packit Service |
87bb26 |
']', /* LEXLMS: Char used as MSC when enabled.*/
|
|
Packit Service |
87bb26 |
'/', /* LEXCON: Char used as NET when enabled.*/
|
|
Packit Service |
87bb26 |
'%', /* LEXMARK: Char used as PERO delimiter. */
|
|
Packit Service |
87bb26 |
'>', /* LEXCON: Char used as PIC delimiter.*/
|
|
Packit Service |
87bb26 |
'<' /* LEXCON: Char used as TAGO when enabled.*/
|
|
Packit Service |
87bb26 |
},
|
|
Packit Service |
87bb26 |
{ /* Lexical table code assignments. */
|
|
Packit Service |
87bb26 |
FCE, /* LEXCNM: FRE char as entity reference.*/
|
|
Packit Service |
87bb26 |
FRE, /* LEXLMS: Free character not an entity ref.*/
|
|
Packit Service |
87bb26 |
LITC, /* LEXLMS: Literal close delimiter enabled. */
|
|
Packit Service |
87bb26 |
MSC3, /* LEXLMS: Marked section close delim enabled. */
|
|
Packit Service |
87bb26 |
NET, /* LEXCON: Null end-tag delimiter enabled. */
|
|
Packit Service |
87bb26 |
ETI, /* LEXCON: NET disabled; still used as ETI. */
|
|
Packit Service |
87bb26 |
SPCR, /* LEXCNM: Space in use as SHORTREF delim. */
|
|
Packit Service |
87bb26 |
TGO2, /* LEXCON: Tag open delimiter enabled. */
|
|
Packit Service |
87bb26 |
CDE /* LEXLMS: CDATA/SDATA delimiters. */
|
|
Packit Service |
87bb26 |
}
|
|
Packit Service |
87bb26 |
};
|
|
Packit Service |
87bb26 |
|
|
Packit Service |
87bb26 |
UNCH *lextabs[] = {
|
|
Packit Service |
87bb26 |
lexcnm, lexcon, lexgrp, lexlms, lexmark, lexsd, lextoke, 0
|
|
Packit Service |
87bb26 |
};
|