]> git.draconx.ca Git - cdecl99.git/blob - src/strtab.sed
a24c6b26831dbe5803266b7c37817c71d99ac3ee
[cdecl99.git] / src / strtab.sed
1 1i\
2 /*\
3  * Copyright © 2011 Nick Bowler.\
4  *\
5  * License WTFPL2: Do What The Fuck You Want To Public License, version 2.\
6  * This is free software: you are free to do what the fuck you want to.\
7  * There is NO WARRANTY, to the extent permitted by law.\
8  */
9 1i\
10 /*\
11  * This file is automatically generated by strtab.sed.\
12  */
13 :clear
14 t clear
15 s/\([[:upper:]_][[:upper:]_]*\)[[:space:]]*\(".*"\)/\1@#@#@\2/
16 t string
17 p
18 b
19 :string
20 H
21 ${
22         g
23         i\
24 static const struct strtab {\
25         char _[1];
26         s/\n\([^\n]*\)@#@#@\([^\n]*\)/  char \1[sizeof \2];\
27 /g
28         s/\n$//
29         p
30         g
31         i\
32 } strtab = {
33         s/\n\([^\n]*\)@#@#@\([^\n]*\)/  .\1 = N_(\2),\
34 /g
35         s/$/};/
36         p
37         g
38         i\
39 static const size_t offtab[] = {
40         s/\n\([^\n]*\)@#@#@\([^\n]*\)/  [\1] = offsetof(struct strtab, \1),\
41 /g
42         s/$/};/
43         p
44 }