| ... | @@ -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 name | 934 | 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}) + ";"; |