mkxml

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· 代码 · 共 48 行

TXT
48
字号
#!/bin/rcecho \'#include "stdinc.h"#include "dat.h"#include "fns.h"#include "httpd.h"#include "xml.h"'sed -n '/<struct/,/<\/struct>/{	s/^[^<]+</</	t cleart:cleart	s/<struct name="(.*)" type="(.*)">.*/void xml\1(Hio *hout, \2s, char *tag, int indent){\n	xmlIndent(hout, indent);\n	hprint(hout, "<%s", tag);\n	hprint(hout, ">\\n");/	t start	s/<field name="(.*)" val="(.*)" type="(.*)"\/>.*/	xml\3(hout, \2, "\1");\n	hprint(hout, ">\\n");/	t field	s/<array name="(.*)" val="(.*)" elems="(.*)" type="(.*)"\/>.*/	xmlIndent(hout, indent + 1);\n	hprint(hout, "<\1s>\\n");\n	for(i = 0; i < \3; i++)\n		xml\4(hout, \2, "\1", indent + 2);\n	xmlIndent(hout, indent + 1);\n	hprint(hout, "<\/\1s>\\n");/	t array	s/<\/struct>/	xmlIndent(hout, indent);\n	hprint(hout, "<\/%s>\\n", tag);\n}\n/	t produce}b:start	h	b:field	x	s/	hprint\(hout, ">\\n"\);//g	x	H	b:array	H	x	s/{\n/&	int i;\n\n/	s/^	int i;\n\n	int i;\n/	int i;\n/	x	b:produce	H	g	s/\n\n/\n/g	s/	hprint.hout, ">\\n".;\n	xmlIndent.hout, indent.;\n	hprint.*/	hprint(hout, "\/>\\n");/	p' $1

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?