1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/*
* Copyright (c) 1987, 1989 University of Maryland
* Department of Computer Science. All rights reserved.
* Permission to copy for any purpose is hereby granted
* so long as this copyright notice remains intact.
*/
/*
* dviclass - DVI code classification tables.
*/
#include "dviclass.h"
/* shorthand---in lowercase for contrast (read on!) */
#define four(x) x, x, x, x
#define six(x) four(x), x, x
#define sixteen(x) four(x), four(x), four(x), four(x)
#define sixty_four(x) sixteen(x), sixteen(x), sixteen(x), sixteen(x)
#define one_twenty_eight(x) sixty_four(x), sixty_four(x)
/*
* This table contains the byte length of the single operand, or DPL_NONE
* if no operand, or if it cannot be decoded this way.
*
* The sequences UNS1, UNS2, UNS3, SGN4 (`SEQ_U') and SGN1, SGN2, SGN3,
* SGN4 (`SEQ_S') are rather common, and so we define macros for these.
*/
#define SEQ_U DPL_UNS1, DPL_UNS2, DPL_UNS3, DPL_SGN4
#define SEQ_S DPL_SGN1, DPL_SGN2, DPL_SGN3, DPL_SGN4
char dvi_oplen[256] = {
one_twenty_eight(DPL_NONE),
/* characters 0 through 127 */
SEQ_U, /* DVI_SET1 through DVI_SET4 */
DPL_NONE, /* DVI_SETRULE */
SEQ_U, /* DVI_PUT1 through DVI_PUT4 */
DPL_NONE, /* DVI_PUTRULE */
DPL_NONE, /* DVI_NOP */
DPL_NONE, /* DVI_BOP */
DPL_NONE, /* DVI_EOP */
DPL_NONE, /* DVI_PUSH */
DPL_NONE, /* DVI_POP */
SEQ_S, /* DVI_RIGHT1 through DVI_RIGHT4 */
DPL_NONE, /* DVI_W0 */
SEQ_S, /* DVI_W1 through DVI_W4 */
DPL_NONE, /* DVI_X0 */
SEQ_S, /* DVI_X1 through DVI_X4 */
SEQ_S, /* DVI_DOWN1 through DVI_DOWN4 */
DPL_NONE, /* DVI_Y0 */
SEQ_S, /* DVI_Y1 through DVI_Y4 */
DPL_NONE, /* DVI_Z0 */
SEQ_S, /* DVI_Z1 through DVI_Z4 */
sixty_four(DPL_NONE), /* DVI_FNTNUM0 through DVI_FNTNUM63 */
SEQ_U, /* DVI_FNT1 through DVI_FNT4 */
SEQ_U, /* DVI_XXX1 through DVI_XXX4 */
SEQ_U, /* DVI_FNTDEF1 through DVI_FNTDEF4 */
DPL_NONE, /* DVI_PRE */
DPL_NONE, /* DVI_POST */
DPL_NONE, /* DVI_POSTPOST */
six(DPL_NONE) /* 250 through 255 */
};
char dvi_dt[256] = {
one_twenty_eight(DT_CHAR),
/* characters 0 through 127 */
four(DT_SET), /* DVI_SET1 through DVI_SET4 */
DT_SETRULE, /* DVI_SETRULE */
four(DT_PUT), /* DVI_PUT1 through DVI_PUT4 */
DT_PUTRULE, /* DVI_PUTRULE */
DT_NOP, /* DVI_NOP */
DT_BOP, /* DVI_BOP */
DT_EOP, /* DVI_EOP */
DT_PUSH, /* DVI_PUSH */
DT_POP, /* DVI_POP */
four(DT_RIGHT), /* DVI_RIGHT1 through DVI_RIGHT4 */
DT_W0, /* DVI_W0 */
four(DT_W), /* DVI_W1 through DVI_W4 */
DT_X0, /* DVI_X0 */
four(DT_X), /* DVI_X1 through DVI_X4 */
four(DT_DOWN), /* DVI_DOWN1 through DVI_DOWN4 */
DT_Y0, /* DVI_Y0 */
four(DT_Y), /* DVI_Y1 through DVI_Y4 */
DT_Z0, /* DVI_Z0 */
four(DT_Z), /* DVI_Z1 through DVI_Z4 */
sixty_four(DT_FNTNUM), /* DVI_FNTNUM0 through DVI_FNTNUM63 */
four(DT_FNT), /* DVI_FNT1 through DVI_FNT4 */
four(DT_XXX), /* DVI_XXX1 through DVI_XXX4 */
four(DT_FNTDEF), /* DVI_FNTDEF1 through DVI_FNTDEF4 */
DT_PRE, /* DVI_PRE */
DT_POST, /* DVI_POST */
DT_POSTPOST, /* DVI_POSTPOST */
six(DT_UNDEF) /* 250 through 255 */
};
|