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