Skip to content

Commit 2c30d19

Browse files
split into individual headers
1 parent 7dc46ac commit 2c30d19

File tree

4 files changed

+116
-114
lines changed

4 files changed

+116
-114
lines changed

libc/utils/docgen/api.yml

Lines changed: 0 additions & 107 deletions
This file was deleted.

libc/utils/docgen/ctype.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
functions:
2+
isalnum:
3+
returns: int
4+
params:
5+
- int
6+
isalpha:
7+
returns: int
8+
params:
9+
- int
10+
isblank:
11+
returns: int
12+
params:
13+
- int
14+
# TODO: fill me out!

libc/utils/docgen/docgen.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
import yaml
1414

1515

16-
def load_api():
17-
p = Path(Path(__file__).resolve().parent, "api.yml")
16+
def load_api(hname):
17+
p = Path(Path(__file__).parent, Path(hname).with_suffix(".yml"))
1818
api = p.read_text(encoding="utf-8")
1919
return yaml.load(api, Loader=yaml.FullLoader)
2020

@@ -64,14 +64,18 @@ def print_header(header, api):
6464
print_functions(header, api["functions"])
6565

6666

67-
def parse_args(header_choices):
67+
def get_possible_choices():
68+
return [p.with_suffix(".h").name for p in Path(__file__).parent.glob("*.yml")]
69+
70+
71+
def parse_args():
6872
parser = ArgumentParser()
69-
parser.add_argument("header_name", choices=header_choices)
73+
parser.add_argument("header_name", choices=get_possible_choices())
7074
return parser.parse_args()
7175

7276

7377
if __name__ == "__main__":
74-
api = load_api()
75-
args = parse_args(api.keys())
78+
args = parse_args()
79+
api = load_api(args.header_name)
7680

77-
print_header(args.header_name, api[args.header_name])
81+
print_header(args.header_name, api)

libc/utils/docgen/fenv.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
macros:
2+
- __STDC_VERSION_FENV_H__
3+
functions:
4+
feclearexcept:
5+
returns: int
6+
params:
7+
- int
8+
defined: '7.6.4.1'
9+
fegetexceptflag:
10+
returns: int
11+
params:
12+
- fexcept_t*
13+
- int
14+
defined: '7.6.4.2'
15+
feraiseexcept:
16+
returns: int
17+
params:
18+
- int
19+
defined: '7.6.4.3'
20+
fesetexcept:
21+
returns: int
22+
params:
23+
- int
24+
defined: '7.6.4.4'
25+
fesetexceptflag:
26+
returns: int
27+
params:
28+
- const fexcept_t*
29+
- int
30+
defined: '7.6.4.5'
31+
fetestexceptflag:
32+
returns: int
33+
params:
34+
- const fexcept_t*
35+
- int
36+
defined: '7.6.4.6'
37+
fetestexcept:
38+
returns: int
39+
params:
40+
- int
41+
defined: '7.6.4.7'
42+
fegetmode:
43+
returns: int
44+
params:
45+
- femode_t*
46+
defined: '7.6.5.1'
47+
fegetround:
48+
returns: int
49+
params: []
50+
defined: '7.6.5.2'
51+
fe_dec_getround:
52+
returns: int
53+
params: []
54+
defined: '7.6.5.3'
55+
fesetmode:
56+
returns: int
57+
params:
58+
- const femode_t*
59+
defined: '7.6.5.4'
60+
fesetround:
61+
returns: int
62+
params:
63+
- int
64+
defined: '7.6.5.5'
65+
fe_dec_setround:
66+
returns: int
67+
params:
68+
- int
69+
defined: '7.6.5.6'
70+
fegetenv:
71+
returns: int
72+
params:
73+
- fenv_t*
74+
defined: '7.6.6.1'
75+
feholdexcept:
76+
returns: int
77+
params:
78+
- fenv_t*
79+
defined: '7.6.6.2'
80+
fesetenv:
81+
returns: int
82+
params:
83+
- const fentv_t*
84+
defined: '7.6.6.3'
85+
feupdateenv:
86+
returns: int
87+
params:
88+
- const fenv_t*
89+
defined: '7.6.6.4'
90+
91+
# TODO: yay fill out moar stuff!!!1

0 commit comments

Comments
 (0)