authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-02-27 13:32:49-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-02-28 14:51:55-05:00
log70bf8874d7b358545c3370d5e1ae71dfcdf55b93
treecedcc1f59543acde5e40e028a13d0b9c14fc3768
parent3c3316d4ba3ede6172fc0a92b6c4c9b8e601adde
signature Commit is signed but in an unrecognized format.

update docgen to new Target API


1 files changed, 41 insertions(+), 40 deletions(-)

doc/docgen.zig+41-40
...@@ -1,5 +1,5 @@...@@ -1,5 +1,5 @@
1const builtin = @import("builtin");
2const std = @import("std");1const std = @import("std");
2const builtin = std.builtin;
3const io = std.io;3const io = std.io;
4const fs = std.fs;4const fs = std.fs;
5const process = std.process;5const process = std.process;
...@@ -521,7 +521,7 @@ fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc {...@@ -521,7 +521,7 @@ fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc {
521 return parseError(tokenizer, code_kind_tok, "unrecognized code kind: {}", .{code_kind_str});521 return parseError(tokenizer, code_kind_tok, "unrecognized code kind: {}", .{code_kind_str});
522 }522 }
523523
524 var mode = builtin.Mode.Debug;524 var mode: builtin.Mode = .Debug;
525 var link_objects = std.ArrayList([]const u8).init(allocator);525 var link_objects = std.ArrayList([]const u8).init(allocator);
526 defer link_objects.deinit();526 defer link_objects.deinit();
527 var target_str: ?[]const u8 = null;527 var target_str: ?[]const u8 = null;
...@@ -533,9 +533,9 @@ fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc {...@@ -533,9 +533,9 @@ fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc {
533 const end_code_tag = try eatToken(tokenizer, Token.Id.TagContent);533 const end_code_tag = try eatToken(tokenizer, Token.Id.TagContent);
534 const end_tag_name = tokenizer.buffer[end_code_tag.start..end_code_tag.end];534 const end_tag_name = tokenizer.buffer[end_code_tag.start..end_code_tag.end];
535 if (mem.eql(u8, end_tag_name, "code_release_fast")) {535 if (mem.eql(u8, end_tag_name, "code_release_fast")) {
536 mode = builtin.Mode.ReleaseFast;536 mode = .ReleaseFast;
537 } else if (mem.eql(u8, end_tag_name, "code_release_safe")) {537 } else if (mem.eql(u8, end_tag_name, "code_release_safe")) {
538 mode = builtin.Mode.ReleaseSafe;538 mode = .ReleaseSafe;
539 } else if (mem.eql(u8, end_tag_name, "code_link_object")) {539 } else if (mem.eql(u8, end_tag_name, "code_link_object")) {
540 _ = try eatToken(tokenizer, Token.Id.Separator);540 _ = try eatToken(tokenizer, Token.Id.Separator);
541 const obj_tok = try eatToken(tokenizer, Token.Id.TagContent);541 const obj_tok = try eatToken(tokenizer, Token.Id.TagContent);
...@@ -1001,30 +1001,30 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var...@@ -1001,30 +1001,30 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
10011001
1002 for (toc.nodes) |node| {1002 for (toc.nodes) |node| {
1003 switch (node) {1003 switch (node) {
1004 Node.Content => |data| {1004 .Content => |data| {
1005 try out.write(data);1005 try out.write(data);
1006 },1006 },
1007 Node.Link => |info| {1007 .Link => |info| {
1008 if (!toc.urls.contains(info.url)) {1008 if (!toc.urls.contains(info.url)) {
1009 return parseError(tokenizer, info.token, "url not found: {}", .{info.url});1009 return parseError(tokenizer, info.token, "url not found: {}", .{info.url});
1010 }1010 }
1011 try out.print("<a href=\"#{}\">{}</a>", .{ info.url, info.name });1011 try out.print("<a href=\"#{}\">{}</a>", .{ info.url, info.name });
1012 },1012 },
1013 Node.Nav => {1013 .Nav => {
1014 try out.write(toc.toc);1014 try out.write(toc.toc);
1015 },1015 },
1016 Node.Builtin => |tok| {1016 .Builtin => |tok| {
1017 try out.write("<pre>");1017 try out.write("<pre>");
1018 try tokenizeAndPrintRaw(tokenizer, out, tok, builtin_code);1018 try tokenizeAndPrintRaw(tokenizer, out, tok, builtin_code);
1019 try out.write("</pre>");1019 try out.write("</pre>");
1020 },1020 },
1021 Node.HeaderOpen => |info| {1021 .HeaderOpen => |info| {
1022 try out.print(1022 try out.print(
1023 "<h{} id=\"{}\"><a href=\"#toc-{}\">{}</a> <a class=\"hdr\" href=\"#{}\">§</a></h{}>\n",1023 "<h{} id=\"{}\"><a href=\"#toc-{}\">{}</a> <a class=\"hdr\" href=\"#{}\">§</a></h{}>\n",
1024 .{ info.n, info.url, info.url, info.name, info.url, info.n },1024 .{ info.n, info.url, info.url, info.name, info.url, info.n },
1025 );1025 );
1026 },1026 },
1027 Node.SeeAlso => |items| {1027 .SeeAlso => |items| {
1028 try out.write("<p>See also:</p><ul>\n");1028 try out.write("<p>See also:</p><ul>\n");
1029 for (items) |item| {1029 for (items) |item| {
1030 const url = try urlize(allocator, item.name);1030 const url = try urlize(allocator, item.name);
...@@ -1035,10 +1035,10 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var...@@ -1035,10 +1035,10 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
1035 }1035 }
1036 try out.write("</ul>\n");1036 try out.write("</ul>\n");
1037 },1037 },
1038 Node.Syntax => |content_tok| {1038 .Syntax => |content_tok| {
1039 try tokenizeAndPrint(tokenizer, out, content_tok);1039 try tokenizeAndPrint(tokenizer, out, content_tok);
1040 },1040 },
1041 Node.Code => |code| {1041 .Code => |code| {
1042 code_progress_index += 1;1042 code_progress_index += 1;
1043 warn("docgen example code {}/{}...", .{ code_progress_index, tokenizer.code_node_count });1043 warn("docgen example code {}/{}...", .{ code_progress_index, tokenizer.code_node_count });
10441044
...@@ -1075,16 +1075,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var...@@ -1075,16 +1075,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
1075 });1075 });
1076 try out.print("<pre><code class=\"shell\">$ zig build-exe {}.zig", .{code.name});1076 try out.print("<pre><code class=\"shell\">$ zig build-exe {}.zig", .{code.name});
1077 switch (code.mode) {1077 switch (code.mode) {
1078 builtin.Mode.Debug => {},1078 .Debug => {},
1079 builtin.Mode.ReleaseSafe => {1079 .ReleaseSafe => {
1080 try build_args.append("--release-safe");1080 try build_args.append("--release-safe");
1081 try out.print(" --release-safe", .{});1081 try out.print(" --release-safe", .{});
1082 },1082 },
1083 builtin.Mode.ReleaseFast => {1083 .ReleaseFast => {
1084 try build_args.append("--release-fast");1084 try build_args.append("--release-fast");
1085 try out.print(" --release-fast", .{});1085 try out.print(" --release-fast", .{});
1086 },1086 },
1087 builtin.Mode.ReleaseSmall => {1087 .ReleaseSmall => {
1088 try build_args.append("--release-small");1088 try build_args.append("--release-small");
1089 try out.print(" --release-small", .{});1089 try out.print(" --release-small", .{});
1090 },1090 },
...@@ -1142,13 +1142,14 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var...@@ -1142,13 +1142,14 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
1142 try out.print("\n{}</code></pre>\n", .{colored_stderr});1142 try out.print("\n{}</code></pre>\n", .{colored_stderr});
1143 break :code_block;1143 break :code_block;
1144 }1144 }
1145 const exec_result = exec(allocator, &env_map, build_args.toSliceConst()) catch return parseError(tokenizer, code.source_token, "example failed to compile", .{});1145 const exec_result = exec(allocator, &env_map, build_args.toSliceConst()) catch
1146 return parseError(tokenizer, code.source_token, "example failed to compile", .{});
11461147
1147 if (code.target_str) |triple| {1148 if (code.target_str) |triple| {
1148 if (mem.startsWith(u8, triple, "wasm32") or1149 if ((mem.startsWith(u8, triple, "wasm32") or
1149 mem.startsWith(u8, triple, "riscv64-linux") or1150 mem.startsWith(u8, triple, "riscv64-linux") or
1150 mem.startsWith(u8, triple, "x86_64-linux") and1151 mem.startsWith(u8, triple, "x86_64-linux")) and
1151 (builtin.os != .linux or builtin.arch != .x86_64))1152 (std.Target.current.os.tag != .linux or std.Target.current.cpu.arch != .x86_64))
1152 {1153 {
1153 // skip execution1154 // skip execution
1154 try out.print("</code></pre>\n", .{});1155 try out.print("</code></pre>\n", .{});
...@@ -1207,16 +1208,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var...@@ -1207,16 +1208,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
1207 });1208 });
1208 try out.print("<pre><code class=\"shell\">$ zig test {}.zig", .{code.name});1209 try out.print("<pre><code class=\"shell\">$ zig test {}.zig", .{code.name});
1209 switch (code.mode) {1210 switch (code.mode) {
1210 builtin.Mode.Debug => {},1211 .Debug => {},
1211 builtin.Mode.ReleaseSafe => {1212 .ReleaseSafe => {
1212 try test_args.append("--release-safe");1213 try test_args.append("--release-safe");
1213 try out.print(" --release-safe", .{});1214 try out.print(" --release-safe", .{});
1214 },1215 },
1215 builtin.Mode.ReleaseFast => {1216 .ReleaseFast => {
1216 try test_args.append("--release-fast");1217 try test_args.append("--release-fast");
1217 try out.print(" --release-fast", .{});1218 try out.print(" --release-fast", .{});
1218 },1219 },
1219 builtin.Mode.ReleaseSmall => {1220 .ReleaseSmall => {
1220 try test_args.append("--release-small");1221 try test_args.append("--release-small");
1221 try out.print(" --release-small", .{});1222 try out.print(" --release-small", .{});
1222 },1223 },
...@@ -1249,16 +1250,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var...@@ -1249,16 +1250,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
1249 });1250 });
1250 try out.print("<pre><code class=\"shell\">$ zig test {}.zig", .{code.name});1251 try out.print("<pre><code class=\"shell\">$ zig test {}.zig", .{code.name});
1251 switch (code.mode) {1252 switch (code.mode) {
1252 builtin.Mode.Debug => {},1253 .Debug => {},
1253 builtin.Mode.ReleaseSafe => {1254 .ReleaseSafe => {
1254 try test_args.append("--release-safe");1255 try test_args.append("--release-safe");
1255 try out.print(" --release-safe", .{});1256 try out.print(" --release-safe", .{});
1256 },1257 },
1257 builtin.Mode.ReleaseFast => {1258 .ReleaseFast => {
1258 try test_args.append("--release-fast");1259 try test_args.append("--release-fast");
1259 try out.print(" --release-fast", .{});1260 try out.print(" --release-fast", .{});
1260 },1261 },
1261 builtin.Mode.ReleaseSmall => {1262 .ReleaseSmall => {
1262 try test_args.append("--release-small");1263 try test_args.append("--release-small");
1263 try out.print(" --release-small", .{});1264 try out.print(" --release-small", .{});
1264 },1265 },
...@@ -1306,16 +1307,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var...@@ -1306,16 +1307,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
1306 });1307 });
1307 var mode_arg: []const u8 = "";1308 var mode_arg: []const u8 = "";
1308 switch (code.mode) {1309 switch (code.mode) {
1309 builtin.Mode.Debug => {},1310 .Debug => {},
1310 builtin.Mode.ReleaseSafe => {1311 .ReleaseSafe => {
1311 try test_args.append("--release-safe");1312 try test_args.append("--release-safe");
1312 mode_arg = " --release-safe";1313 mode_arg = " --release-safe";
1313 },1314 },
1314 builtin.Mode.ReleaseFast => {1315 .ReleaseFast => {
1315 try test_args.append("--release-fast");1316 try test_args.append("--release-fast");
1316 mode_arg = " --release-fast";1317 mode_arg = " --release-fast";
1317 },1318 },
1318 builtin.Mode.ReleaseSmall => {1319 .ReleaseSmall => {
1319 try test_args.append("--release-small");1320 try test_args.append("--release-small");
1320 mode_arg = " --release-small";1321 mode_arg = " --release-small";
1321 },1322 },
...@@ -1386,20 +1387,20 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var...@@ -1386,20 +1387,20 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
1386 }1387 }
13871388
1388 switch (code.mode) {1389 switch (code.mode) {
1389 builtin.Mode.Debug => {},1390 .Debug => {},
1390 builtin.Mode.ReleaseSafe => {1391 .ReleaseSafe => {
1391 try build_args.append("--release-safe");1392 try build_args.append("--release-safe");
1392 if (!code.is_inline) {1393 if (!code.is_inline) {
1393 try out.print(" --release-safe", .{});1394 try out.print(" --release-safe", .{});
1394 }1395 }
1395 },1396 },
1396 builtin.Mode.ReleaseFast => {1397 .ReleaseFast => {
1397 try build_args.append("--release-fast");1398 try build_args.append("--release-fast");
1398 if (!code.is_inline) {1399 if (!code.is_inline) {
1399 try out.print(" --release-fast", .{});1400 try out.print(" --release-fast", .{});
1400 }1401 }
1401 },1402 },
1402 builtin.Mode.ReleaseSmall => {1403 .ReleaseSmall => {
1403 try build_args.append("--release-small");1404 try build_args.append("--release-small");
1404 if (!code.is_inline) {1405 if (!code.is_inline) {
1405 try out.print(" --release-small", .{});1406 try out.print(" --release-small", .{});
...@@ -1461,16 +1462,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var...@@ -1461,16 +1462,16 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
1461 });1462 });
1462 try out.print("<pre><code class=\"shell\">$ zig build-lib {}.zig", .{code.name});1463 try out.print("<pre><code class=\"shell\">$ zig build-lib {}.zig", .{code.name});
1463 switch (code.mode) {1464 switch (code.mode) {
1464 builtin.Mode.Debug => {},1465 .Debug => {},
1465 builtin.Mode.ReleaseSafe => {1466 .ReleaseSafe => {
1466 try test_args.append("--release-safe");1467 try test_args.append("--release-safe");
1467 try out.print(" --release-safe", .{});1468 try out.print(" --release-safe", .{});
1468 },1469 },
1469 builtin.Mode.ReleaseFast => {1470 .ReleaseFast => {
1470 try test_args.append("--release-fast");1471 try test_args.append("--release-fast");
1471 try out.print(" --release-fast", .{});1472 try out.print(" --release-fast", .{});
1472 },1473 },
1473 builtin.Mode.ReleaseSmall => {1474 .ReleaseSmall => {
1474 try test_args.append("--release-small");1475 try test_args.append("--release-small");
1475 try out.print(" --release-small", .{});1476 try out.print(" --release-small", .{});
1476 },1477 },