Graphviz
14.0.5~dev.20251117.1017
Loading...
Searching...
No Matches
sftable.c
Go to the documentation of this file.
1
/*************************************************************************
2
* Copyright (c) 2011 AT&T Intellectual Property
3
* All rights reserved. This program and the accompanying materials
4
* are made available under the terms of the Eclipse Public License v1.0
5
* which accompanies this distribution, and is available at
6
* https://www.eclipse.org/legal/epl-v10.html
7
*
8
* Contributors: Details at https://graphviz.org
9
*************************************************************************/
10
11
#include <limits.h>
12
#include <
sfio/sfhdr.h
>
13
#include <stddef.h>
14
#include <
util/gv_ctype.h
>
15
16
/* Dealing with $ argument addressing stuffs.
17
**
18
** Written by Kiem-Phong Vo.
19
*/
20
21
static
const
char
*
sffmtint
(
const
char
*
str
) {
22
for
(;
gv_isdigit
(*
str
); ++
str
)
23
;
24
return
str
;
25
}
26
27
/* table for floating point and integer conversions */
28
Sftab_t
_Sftable
= {
29
.
sf_pos10
= {1e1, 1e2, 1e4, 1e8, 1e16, 1e32},
30
.sf_neg10 = {1e-1, 1e-2, 1e-4, 1e-8, 1e-16, 1e-32},
31
32
.sf_dec =
33
{
'0'
,
'0'
,
'0'
,
'1'
,
'0'
,
'2'
,
'0'
,
'3'
,
'0'
,
'4'
,
34
'0'
,
'5'
,
'0'
,
'6'
,
'0'
,
'7'
,
'0'
,
'8'
,
'0'
,
'9'
,
35
'1'
,
'0'
,
'1'
,
'1'
,
'1'
,
'2'
,
'1'
,
'3'
,
'1'
,
'4'
,
36
'1'
,
'5'
,
'1'
,
'6'
,
'1'
,
'7'
,
'1'
,
'8'
,
'1'
,
'9'
,
37
'2'
,
'0'
,
'2'
,
'1'
,
'2'
,
'2'
,
'2'
,
'3'
,
'2'
,
'4'
,
38
'2'
,
'5'
,
'2'
,
'6'
,
'2'
,
'7'
,
'2'
,
'8'
,
'2'
,
'9'
,
39
'3'
,
'0'
,
'3'
,
'1'
,
'3'
,
'2'
,
'3'
,
'3'
,
'3'
,
'4'
,
40
'3'
,
'5'
,
'3'
,
'6'
,
'3'
,
'7'
,
'3'
,
'8'
,
'3'
,
'9'
,
41
'4'
,
'0'
,
'4'
,
'1'
,
'4'
,
'2'
,
'4'
,
'3'
,
'4'
,
'4'
,
42
'4'
,
'5'
,
'4'
,
'6'
,
'4'
,
'7'
,
'4'
,
'8'
,
'4'
,
'9'
,
43
'5'
,
'0'
,
'5'
,
'1'
,
'5'
,
'2'
,
'5'
,
'3'
,
'5'
,
'4'
,
44
'5'
,
'5'
,
'5'
,
'6'
,
'5'
,
'7'
,
'5'
,
'8'
,
'5'
,
'9'
,
45
'6'
,
'0'
,
'6'
,
'1'
,
'6'
,
'2'
,
'6'
,
'3'
,
'6'
,
'4'
,
46
'6'
,
'5'
,
'6'
,
'6'
,
'6'
,
'7'
,
'6'
,
'8'
,
'6'
,
'9'
,
47
'7'
,
'0'
,
'7'
,
'1'
,
'7'
,
'2'
,
'7'
,
'3'
,
'7'
,
'4'
,
48
'7'
,
'5'
,
'7'
,
'6'
,
'7'
,
'7'
,
'7'
,
'8'
,
'7'
,
'9'
,
49
'8'
,
'0'
,
'8'
,
'1'
,
'8'
,
'2'
,
'8'
,
'3'
,
'8'
,
'4'
,
50
'8'
,
'5'
,
'8'
,
'6'
,
'8'
,
'7'
,
'8'
,
'8'
,
'8'
,
'9'
,
51
'9'
,
'0'
,
'9'
,
'1'
,
'9'
,
'2'
,
'9'
,
'3'
,
'9'
,
'4'
,
52
'9'
,
'5'
,
'9'
,
'6'
,
'9'
,
'7'
,
'9'
,
'8'
,
'9'
,
'9'
,
53
},
54
55
.sf_digits =
"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@_"
,
56
57
.sf_fmtintf =
sffmtint
,
58
.sf_cv36 =
59
{
60
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
61
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
62
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
63
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
64
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
65
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
66
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
67
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
68
0, 1, 2, 3, 4, 5,
69
6, 7, 8, 9,
SF_RADIX
,
SF_RADIX
,
70
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
, 62, 10,
71
11, 12, 13, 14, 15, 16,
72
17, 18, 19, 20, 21, 22,
73
23, 24, 25, 26, 27, 28,
74
29, 30, 31, 32, 33, 34,
75
35,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
, 63,
76
SF_RADIX
, 10, 11, 12, 13, 14,
77
15, 16, 17, 18, 19, 20,
78
21, 22, 23, 24, 25, 26,
79
27, 28, 29, 30, 31, 32,
80
33, 34, 35,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
81
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
82
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
83
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
84
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
85
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
86
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
87
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
88
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
89
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
90
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
91
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
92
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
93
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
94
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
95
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
96
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
97
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
98
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
99
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
100
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
101
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
102
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
103
},
104
.sf_cv64 =
105
{
106
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
107
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
108
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
109
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
110
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
111
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
112
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
113
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
114
0, 1, 2, 3, 4, 5,
115
6, 7, 8, 9,
SF_RADIX
,
SF_RADIX
,
116
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
, 62, 36,
117
37, 38, 39, 40, 41, 42,
118
43, 44, 45, 46, 47, 48,
119
49, 50, 51, 52, 53, 54,
120
55, 56, 57, 58, 59, 60,
121
61,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
, 63,
122
SF_RADIX
, 10, 11, 12, 13, 14,
123
15, 16, 17, 18, 19, 20,
124
21, 22, 23, 24, 25, 26,
125
27, 28, 29, 30, 31, 32,
126
33, 34, 35,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
127
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
128
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
129
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
130
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
131
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
132
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
133
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
134
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
135
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
136
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
137
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
138
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
139
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
140
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
141
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
142
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
143
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
144
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
145
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
146
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
147
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
148
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
SF_RADIX
,
149
},
150
.sf_type = {
151
[
'd'
] =
SFFMT_INT
,
152
[
'i'
] =
SFFMT_INT
,
153
[
'u'
] =
SFFMT_UINT
,
154
[
'o'
] =
SFFMT_UINT
,
155
[
'x'
] =
SFFMT_UINT
,
156
[
'X'
] =
SFFMT_UINT
,
157
[
'e'
] =
SFFMT_FLOAT
,
158
[
'E'
] =
SFFMT_FLOAT
,
159
[
'g'
] =
SFFMT_FLOAT
,
160
[
'G'
] =
SFFMT_FLOAT
,
161
[
'f'
] =
SFFMT_FLOAT
,
162
[
's'
] =
SFFMT_POINTER
,
163
[
'n'
] =
SFFMT_POINTER
,
164
[
'p'
] =
SFFMT_POINTER
,
165
[
'!'
] =
SFFMT_POINTER
,
166
[
'c'
] =
SFFMT_BYTE
,
167
[
'['
] =
SFFMT_CLASS
,
168
}
169
};
gv_ctype.h
replacements for ctype.h functions
gv_isdigit
static bool gv_isdigit(int c)
Definition
gv_ctype.h:41
str
textitem scanner parser str
Definition
htmlparse.y:218
sfhdr.h
SFFMT_CLASS
#define SFFMT_CLASS
Definition
sfhdr.h:114
SFFMT_POINTER
#define SFFMT_POINTER
Definition
sfhdr.h:113
SFFMT_BYTE
#define SFFMT_BYTE
Definition
sfhdr.h:112
SF_RADIX
#define SF_RADIX
Definition
sfhdr.h:116
SFFMT_INT
#define SFFMT_INT
Definition
sfhdr.h:109
SFFMT_UINT
#define SFFMT_UINT
Definition
sfhdr.h:110
SFFMT_FLOAT
#define SFFMT_FLOAT
Definition
sfhdr.h:111
sffmtint
static const char * sffmtint(const char *str)
Definition
sftable.c:21
_Sftable
Sftab_t _Sftable
Definition
sftable.c:28
_sftab_
Definition
sfhdr.h:133
_sftab_::sf_pos10
long double sf_pos10[SF_MAXEXP10]
positive powers of 10
Definition
sfhdr.h:134
lib
sfio
sftable.c
Generated by
1.9.8