authorgravatar for vallahor91@gmail.comVallahor <vallahor91@gmail.com> 2022-06-10 15:56:17-03:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-07-19 19:10:12-07:00
log341431b15c4d271395a1f100f0c496e1e77a7533
treefd20c6c9ad7f4cff56c484dd472f9804fccdf9c7
parent24a79426ecebc5ef4cdc8d1f16dacfdf74497e07

autodoc: handling more values sections


2 files changed, 28 insertions(+), 13 deletions(-)

lib/docs/main.js+24-10
...@@ -819,6 +819,10 @@ var zigAnalysis;...@@ -819,6 +819,10 @@ var zigAnalysis;
819 case "&": {819 case "&": {
820 return "&" + exprName(zigAnalysis.exprs[expr["&"]]);820 return "&" + exprName(zigAnalysis.exprs[expr["&"]]);
821 }821 }
822 case "compileError": {
823 let compileError = expr.compileError;
824 return compileError;
825 }
822 case "enumLiteral": {826 case "enumLiteral": {
823 let literal = expr.enumLiteral;827 let literal = expr.enumLiteral;
824 return literal;828 return literal;
...@@ -916,7 +920,6 @@ var zigAnalysis;...@@ -916,7 +920,6 @@ var zigAnalysis;
916 return exprName(switchIndex, opts);920 return exprName(switchIndex, opts);
917 }921 }
918 case "refPath" : {922 case "refPath" : {
919 // const fieldRef = zigAnalysis.decls[expr.fieldRef.index];
920 const declRef = expr.refPath[0].declRef;923 const declRef = expr.refPath[0].declRef;
921 let name = zigAnalysis.decls[declRef].name;924 let name = zigAnalysis.decls[declRef].name;
922 for (let i = 1; i < expr.refPath.length; i++) {925 for (let i = 1; i < expr.refPath.length; i++) {
...@@ -925,10 +928,9 @@ var zigAnalysis;...@@ -925,10 +928,9 @@ var zigAnalysis;
925 return name;928 return name;
926 }929 }
927 case "fieldRef" : {930 case "fieldRef" : {
928 const fieldRef = zigAnalysis.decls[expr.fieldRef.index];
929 const enumObj = exprName({"type":expr.fieldRef.type} ,opts);931 const enumObj = exprName({"type":expr.fieldRef.type} ,opts);
930 // const name = zigAnalysis.astNodes[enumObj.ast + expr.fieldRef.index].name;932 const field = zigAnalysis.astNodes[enumObj.ast].fields[expr.fieldRef.index];
931 const name = zigAnalysis.astNodes[enumObj.ast + expr.fieldRef.index + 1].name;933 const name = zigAnalysis.astNodes[field].name;
932 return name934 return name
933 }935 }
934 case "enumToInt" : {936 case "enumToInt" : {
...@@ -1424,11 +1426,11 @@ var zigAnalysis;...@@ -1424,11 +1426,11 @@ var zigAnalysis;
1424 return payloadHtml;1426 return payloadHtml;
1425 }1427 }
1426 case "as": {1428 case "as": {
1427 // const typeRefArg = zigAnalysis.exprs[expr.as.typeRefArg];1429 const typeRefArg = zigAnalysis.exprs[expr.as.typeRefArg];
1428 const exprArg = zigAnalysis.exprs[expr.as.exprArg];1430 const exprArg = zigAnalysis.exprs[expr.as.exprArg];
1429 // return "@as(" + exprName(typeRefArg, opts) +1431 return "@as(" + exprName(typeRefArg, opts) +
1430 // ", " + exprName(exprArg, opts) + ")";1432 ", " + exprName(exprArg, opts) + ")";
1431 return exprName(exprArg, opts);1433 // return exprName(exprArg, opts);
1432 }1434 }
1433 case "declRef": {1435 case "declRef": {
1434 return zigAnalysis.decls[expr.declRef].name;1436 return zigAnalysis.decls[expr.declRef].name;
...@@ -1467,10 +1469,14 @@ var zigAnalysis;...@@ -1467,10 +1469,14 @@ var zigAnalysis;
1467 if (typeof typeObj === 'number') typeObj = zigAnalysis.types[typeObj];1469 if (typeof typeObj === 'number') typeObj = zigAnalysis.types[typeObj];
1468 switch (typeObj.kind) {1470 switch (typeObj.kind) {
1469 default: throw "TODO";1471 default: throw "TODO";
1472 case typeKinds.Struct:
1473 {
1474 let structObj = (typeObj);
1475 return structObj;
1476 }
1470 case typeKinds.Enum:1477 case typeKinds.Enum:
1471 {1478 {
1472 let enumObj = (typeObj);1479 let enumObj = (typeObj);
1473 console.log(enumObj)
1474 return enumObj;1480 return enumObj;
1475 }1481 }
1476 case typeKinds.Opaque:1482 case typeKinds.Opaque:
...@@ -2033,7 +2039,15 @@ var zigAnalysis;...@@ -2033,7 +2039,15 @@ var zigAnalysis;
2033 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +2039 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
2034 escapeHtml(decl.name) + ': ' + type.name +2040 escapeHtml(decl.name) + ': ' + type.name +
2035 " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";2041 " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
2036 } else {2042 } else if (resolvedValue.expr.string !== undefined || resolvedValue.expr.call !== undefined || resolvedValue.expr.comptimeExpr !== undefined) {
2043 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
2044 escapeHtml(decl.name) + ': ' + exprName(resolvedValue.expr, {wantHtml: true, wantLink:true}) +
2045 " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
2046 } else if (resolvedValue.expr.compileError) {
2047 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
2048 escapeHtml(decl.name) + " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
2049 }
2050 else {
2037 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +2051 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
2038 escapeHtml(decl.name) + ': ' + exprName(resolvedValue.typeRef, {wantHtml: true, wantLink:true}) +2052 escapeHtml(decl.name) + ': ' + exprName(resolvedValue.typeRef, {wantHtml: true, wantLink:true}) +
2039 " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";2053 " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
src/Autodoc.zig+4-3
...@@ -3360,9 +3360,10 @@ fn analyzeFunction(...@@ -3360,9 +3360,10 @@ fn analyzeFunction(
33603360
3361 // ret3361 // ret
3362 const ret_type_ref = blk: {3362 const ret_type_ref = blk: {
3363 const last_instr_index = fn_info.ret_ty_body[fn_info.ret_ty_body.len - 1];3363 // const last_instr_index = fn_info.ret_ty_body[fn_info.ret_ty_body.len - 1];
3364 const break_operand = data[last_instr_index].@"break".operand;3364 // const break_operand = data[last_instr_index].@"break".operand;
3365 const wr = try self.walkRef(file, scope, break_operand, false);3365 // const wr = try self.walkRef(file, scope, break_operand, false);
3366 const wr = try self.walkRef(file, scope, fn_info.ret_ty_ref, false);
33663367
3367 break :blk wr;3368 break :blk wr;
3368 };3369 };