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