Merge pull request #4976 from xackus/std-lib-docs

std lib docs: fix null and int values
This commit is contained in:
Veikka Tuominen
2020-06-01 14:50:05 +03:00
committed by GitHub
2 changed files with 59 additions and 104 deletions

View File

@@ -49,6 +49,16 @@
var typeKinds = indexTypeKinds();
var typeTypeId = findTypeTypeId();
var pointerSizeEnum = { One: 0, Many: 1, Slice: 2, C: 3 };
var tokenKinds = {
Keyword: 'tok-kw',
String: 'tok-str',
Builtin: 'tok-builtin',
Comment: 'tok-comment',
Function: 'tok-fn',
Null: 'tok-null',
Number: 'tok-number',
Type: 'tok-type',
};
// for each package, is an array with packages to get to this one
var canonPkgPaths = computeCanonicalPackagePaths();
@@ -532,13 +542,17 @@
var fnObj = zigAnalysis.fns[value];
return typeIndexName(fnObj.type, wantHtml, wantLink);
case typeKinds.Int:
if (wantHtml) {
return '<span class="tok-number">' + value + '</span>';
return token(value, tokenKinds.Number, wantHtml);
case typeKinds.Optional:
if(value === 'null'){
return token(value, tokenKinds.Null, wantHtml);
} else {
return value + "";
console.trace("TODO non-null optional value printing");
return "TODO";
}
default:
console.trace("TODO implement getValueText for this type:", zigAnalysis.typeKinds[typeObj.kind]);
return "TODO";
}
}
@@ -546,11 +560,7 @@
switch (typeObj.kind) {
case typeKinds.Array:
var name = "[";
if (wantHtml) {
name += '<span class="tok-number">' + typeObj.len + '</span>';
} else {
name += typeObj.len;
}
name += token(typeObj.len, tokenKinds.Number, wantHtml);
name += "]";
name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null);
return name;
@@ -574,111 +584,48 @@
break;
}
if (typeObj['const']) {
if (wantHtml) {
name += '<span class="tok-kw">const</span> ';
} else {
name += "const ";
}
name += token('const', tokenKinds.Keyword, wantHtml) + ' ';
}
if (typeObj['volatile']) {
if (wantHtml) {
name += '<span class="tok-kw">volatile</span> ';
} else {
name += "volatile ";
}
name += token('volatile', tokenKinds.Keyword, wantHtml) + ' ';
}
if (typeObj.align != null) {
if (wantHtml) {
name += '<span class="tok-kw">align</span>(';
} else {
name += "align(";
}
if (wantHtml) {
name += '<span class="tok-number">' + typeObj.align + '</span>';
} else {
name += typeObj.align;
}
name += token('align', tokenKinds.Keyword, wantHtml) + '(';
name += token(typeObj.align, tokenKinds.Number, wantHtml);
if (typeObj.hostIntBytes != null) {
name += ":";
if (wantHtml) {
name += '<span class="tok-number">' + typeObj.bitOffsetInHost + '</span>';
} else {
name += typeObj.bitOffsetInHost;
}
name += token(typeObj.bitOffsetInHost, tokenKinds.Number, wantHtml);
name += ":";
if (wantHtml) {
name += '<span class="tok-number">' + typeObj.hostIntBytes + '</span>';
} else {
name += typeObj.hostIntBytes;
}
name += token(typeObj.hostIntBytes, tokenKinds.Number, wantHtml);
}
name += ") ";
}
name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null);
return name;
case typeKinds.Float:
if (wantHtml) {
return '<span class="tok-type">f' + typeObj.bits + '</span>';
} else {
return "f" + typeObj.bits;
}
return token('f' + typeObj.bits, tokenKinds.Type, wantHtml);
case typeKinds.Int:
var signed = (typeObj.i != null) ? 'i' : 'u';
var bits = typeObj[signed];
if (wantHtml) {
return '<span class="tok-type">' + signed + bits + '</span>';
} else {
return signed + bits;
}
return token(signed + bits, tokenKinds.Type, wantHtml);
case typeKinds.ComptimeInt:
if (wantHtml) {
return '<span class="tok-type">comptime_int</span>';
} else {
return "comptime_int";
}
return token('comptime_int', tokenKinds.Type, wantHtml);
case typeKinds.ComptimeFloat:
if (wantHtml) {
return '<span class="tok-type">comptime_float</span>';
} else {
return "comptime_float";
}
return token('comptime_float', tokenKinds.Type, wantHtml);
case typeKinds.Type:
if (wantHtml) {
return '<span class="tok-type">type</span>';
} else {
return "type";
}
return token('type', tokenKinds.Type, wantHtml);
case typeKinds.Bool:
if (wantHtml) {
return '<span class="tok-type">bool</span>';
} else {
return "bool";
}
return token('bool', tokenKinds.Type, wantHtml);
case typeKinds.Void:
if (wantHtml) {
return '<span class="tok-type">void</span>';
} else {
return "void";
}
return token('void', tokenKinds.Type, wantHtml);
case typeKinds.EnumLiteral:
if (wantHtml) {
return '<span class="tok-type">(enum literal)</span>';
} else {
return "(enum literal)";
}
return token('(enum literal)', tokenKinds.Type, wantHtml);
case typeKinds.NoReturn:
if (wantHtml) {
return '<span class="tok-type">noreturn</span>';
} else {
return "noreturn";
}
return token('noreturn', tokenKinds.Type, wantHtml);
case typeKinds.ErrorSet:
if (typeObj.errors == null) {
if (wantHtml) {
return '<span class="tok-type">anyerror</span>';
} else {
return "anyerror";
}
return token('anyerror', tokenKinds.Type, wantHtml);
} else {
if (wantHtml) {
return escapeHtml(typeObj.name);
@@ -739,19 +686,11 @@
}
if (paramNode.noalias) {
if (wantHtml) {
payloadHtml += '<span class="tok-kw">noalias</span> ';
} else {
payloadHtml += 'noalias ';
}
payloadHtml += token('noalias', tokenKinds.Keyword, wantHtml) + ' ';
}
if (paramNode.comptime) {
if (wantHtml) {
payloadHtml += '<span class="tok-kw">comptime</span> ';
} else {
payloadHtml += 'comptime ';
}
payloadHtml += token('comptime', tokenKinds.Keyword, wantHtml) + ' ';
}
var paramName = paramNode.name;
@@ -767,10 +706,8 @@
payloadHtml += '...';
} else if (argTypeIndex != null) {
payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink);
} else if (wantHtml) {
payloadHtml += '<span class="tok-kw">var</span>';
} else {
payloadHtml += 'var';
payloadHtml += token('var', tokenKinds.Keyword, wantHtml);
}
}
}
@@ -778,10 +715,8 @@
payloadHtml += ') ';
if (typeObj.ret != null) {
payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl);
} else if (wantHtml) {
payloadHtml += '<span class="tok-kw">var</span>';
} else {
payloadHtml += 'var';
payloadHtml += token('var', tokenKinds.Keyword, wantHtml);
}
return payloadHtml;
default:
@@ -2032,4 +1967,12 @@
return key;
}
}
function token(value, tokenClass, wantHtml){
if(wantHtml){
return '<span class="' + tokenClass + '">' + value + '</span>';
} else {
return value + '';
}
}
})();

View File

@@ -693,6 +693,18 @@ static void anal_dump_value(AnalDumpCtx *ctx, AstNode *source_node, ZigType *ty,
}
return;
}
case ZigTypeIdOptional: {
if(optional_value_is_null(value)){
jw_string(&ctx->jw, "null");
} else {
jw_null(&ctx->jw);
}
return;
}
case ZigTypeIdInt: {
jw_bigint(&ctx->jw, &value->data.x_bigint);
return;
}
default:
jw_null(&ctx->jw);
return;