| ... | @@ -47,6 +47,16 @@ | ... | @@ -47,6 +47,16 @@ |
| 47 | var typeKinds = indexTypeKinds(); | 47 | var typeKinds = indexTypeKinds(); |
| 48 | var typeTypeId = findTypeTypeId(); | 48 | var typeTypeId = findTypeTypeId(); |
| 49 | var pointerSizeEnum = { One: 0, Many: 1, Slice: 2, C: 3 }; | 49 | var pointerSizeEnum = { One: 0, Many: 1, Slice: 2, C: 3 }; |
| | 50 | var tokenKinds = { |
| | 51 | Keyword: 'tok-kw', |
| | 52 | String: 'tok-str', |
| | 53 | Builtin: 'tok-builtin', |
| | 54 | Comment: 'tok-comment', |
| | 55 | Function: 'tok-fn', |
| | 56 | Null: 'tok-null', |
| | 57 | Number: 'tok-number', |
| | 58 | Type: 'tok-type', |
| | 59 | }; |
| 50 | | 60 | |
| 51 | // for each package, is an array with packages to get to this one | 61 | // for each package, is an array with packages to get to this one |
| 52 | var canonPkgPaths = computeCanonicalPackagePaths(); | 62 | var canonPkgPaths = computeCanonicalPackagePaths(); |
| ... | @@ -537,18 +547,10 @@ | ... | @@ -537,18 +547,10 @@ |
| 537 | var fnObj = zigAnalysis.fns[value]; | 547 | var fnObj = zigAnalysis.fns[value]; |
| 538 | return typeIndexName(fnObj.type, wantHtml, wantLink); | 548 | return typeIndexName(fnObj.type, wantHtml, wantLink); |
| 539 | case typeKinds.Int: | 549 | case typeKinds.Int: |
| 540 | if (wantHtml) { | 550 | return token(value, tokenKinds.Number, wantHtml); |
| 541 | return '<span class="tok-number">' + value + '</span>'; | | |
| 542 | } else { | | |
| 543 | return value + ""; | | |
| 544 | } | | |
| 545 | case typeKinds.Optional: | 551 | case typeKinds.Optional: |
| 546 | if(value === 'null'){ | 552 | if(value === 'null'){ |
| 547 | if (wantHtml) { | 553 | return token(value, tokenKinds.Null, wantHtml); |
| 548 | return '<span class="tok-null">' + value + '</span>'; | | |
| 549 | } else { | | |
| 550 | return value + ""; | | |
| 551 | } | | |
| 552 | } else { | 554 | } else { |
| 553 | console.trace("TODO non-null optional value printing"); | 555 | console.trace("TODO non-null optional value printing"); |
| 554 | return "TODO"; | 556 | return "TODO"; |
| ... | @@ -563,11 +565,7 @@ | ... | @@ -563,11 +565,7 @@ |
| 563 | switch (typeObj.kind) { | 565 | switch (typeObj.kind) { |
| 564 | case typeKinds.Array: | 566 | case typeKinds.Array: |
| 565 | var name = "["; | 567 | var name = "["; |
| 566 | if (wantHtml) { | 568 | name += token(typeObj.len, tokenKinds.Number, wantHtml); |
| 567 | name += '<span class="tok-number">' + typeObj.len + '</span>'; | | |
| 568 | } else { | | |
| 569 | name += typeObj.len; | | |
| 570 | } | | |
| 571 | name += "]"; | 569 | name += "]"; |
| 572 | name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null); | 570 | name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null); |
| 573 | return name; | 571 | return name; |
| ... | @@ -591,111 +589,48 @@ | ... | @@ -591,111 +589,48 @@ |
| 591 | break; | 589 | break; |
| 592 | } | 590 | } |
| 593 | if (typeObj['const']) { | 591 | if (typeObj['const']) { |
| 594 | if (wantHtml) { | 592 | name += token('const', tokenKinds.Keyword, wantHtml) + ' '; |
| 595 | name += '<span class="tok-kw">const</span> '; | | |
| 596 | } else { | | |
| 597 | name += "const "; | | |
| 598 | } | | |
| 599 | } | 593 | } |
| 600 | if (typeObj['volatile']) { | 594 | if (typeObj['volatile']) { |
| 601 | if (wantHtml) { | 595 | name += token('volatile', tokenKinds.Keyword, wantHtml) + ' '; |
| 602 | name += '<span class="tok-kw">volatile</span> '; | | |
| 603 | } else { | | |
| 604 | name += "volatile "; | | |
| 605 | } | | |
| 606 | } | 596 | } |
| 607 | if (typeObj.align != null) { | 597 | if (typeObj.align != null) { |
| 608 | if (wantHtml) { | 598 | name += token('align', tokenKinds.Keyword, wantHtml) + '('; |
| 609 | name += '<span class="tok-kw">align</span>('; | 599 | name += token(typeObj.align, tokenKinds.Number, wantHtml); |
| 610 | } else { | 600 | |
| 611 | name += "align("; | | |
| 612 | } | | |
| 613 | if (wantHtml) { | | |
| 614 | name += '<span class="tok-number">' + typeObj.align + '</span>'; | | |
| 615 | } else { | | |
| 616 | name += typeObj.align; | | |
| 617 | } | | |
| 618 | if (typeObj.hostIntBytes != null) { | 601 | if (typeObj.hostIntBytes != null) { |
| 619 | name += ":"; | 602 | name += ":"; |
| 620 | if (wantHtml) { | 603 | name += token(typeObj.bitOffsetInHost, tokenKinds.Number, wantHtml); |
| 621 | name += '<span class="tok-number">' + typeObj.bitOffsetInHost + '</span>'; | | |
| 622 | } else { | | |
| 623 | name += typeObj.bitOffsetInHost; | | |
| 624 | } | | |
| 625 | name += ":"; | 604 | name += ":"; |
| 626 | if (wantHtml) { | 605 | name += token(typeObj.hostIntBytes, tokenKinds.Number, wantHtml); |
| 627 | name += '<span class="tok-number">' + typeObj.hostIntBytes + '</span>'; | | |
| 628 | } else { | | |
| 629 | name += typeObj.hostIntBytes; | | |
| 630 | } | | |
| 631 | } | 606 | } |
| 632 | name += ") "; | 607 | name += ") "; |
| 633 | } | 608 | } |
| 634 | name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null); | 609 | name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null); |
| 635 | return name; | 610 | return name; |
| 636 | case typeKinds.Float: | 611 | case typeKinds.Float: |
| 637 | if (wantHtml) { | 612 | return token('f' + typeObj.bits, tokenKinds.Type, wantHtml); |
| 638 | return '<span class="tok-type">f' + typeObj.bits + '</span>'; | | |
| 639 | } else { | | |
| 640 | return "f" + typeObj.bits; | | |
| 641 | } | | |
| 642 | case typeKinds.Int: | 613 | case typeKinds.Int: |
| 643 | var signed = (typeObj.i != null) ? 'i' : 'u'; | 614 | var signed = (typeObj.i != null) ? 'i' : 'u'; |
| 644 | var bits = typeObj[signed]; | 615 | var bits = typeObj[signed]; |
| 645 | if (wantHtml) { | 616 | return token(signed + bits, tokenKinds.Type, wantHtml); |
| 646 | return '<span class="tok-type">' + signed + bits + '</span>'; | | |
| 647 | } else { | | |
| 648 | return signed + bits; | | |
| 649 | } | | |
| 650 | case typeKinds.ComptimeInt: | 617 | case typeKinds.ComptimeInt: |
| 651 | if (wantHtml) { | 618 | return token('comptime_int', tokenKinds.Type, wantHtml); |
| 652 | return '<span class="tok-type">comptime_int</span>'; | | |
| 653 | } else { | | |
| 654 | return "comptime_int"; | | |
| 655 | } | | |
| 656 | case typeKinds.ComptimeFloat: | 619 | case typeKinds.ComptimeFloat: |
| 657 | if (wantHtml) { | 620 | return token('comptime_float', tokenKinds.Type, wantHtml); |
| 658 | return '<span class="tok-type">comptime_float</span>'; | | |
| 659 | } else { | | |
| 660 | return "comptime_float"; | | |
| 661 | } | | |
| 662 | case typeKinds.Type: | 621 | case typeKinds.Type: |
| 663 | if (wantHtml) { | 622 | return token('type', tokenKinds.Type, wantHtml); |
| 664 | return '<span class="tok-type">type</span>'; | | |
| 665 | } else { | | |
| 666 | return "type"; | | |
| 667 | } | | |
| 668 | case typeKinds.Bool: | 623 | case typeKinds.Bool: |
| 669 | if (wantHtml) { | 624 | return token('bool', tokenKinds.Type, wantHtml); |
| 670 | return '<span class="tok-type">bool</span>'; | | |
| 671 | } else { | | |
| 672 | return "bool"; | | |
| 673 | } | | |
| 674 | case typeKinds.Void: | 625 | case typeKinds.Void: |
| 675 | if (wantHtml) { | 626 | return token('void', tokenKinds.Type, wantHtml); |
| 676 | return '<span class="tok-type">void</span>'; | | |
| 677 | } else { | | |
| 678 | return "void"; | | |
| 679 | } | | |
| 680 | case typeKinds.EnumLiteral: | 627 | case typeKinds.EnumLiteral: |
| 681 | if (wantHtml) { | 628 | return token('(enum literal)', tokenKinds.Type, wantHtml); |
| 682 | return '<span class="tok-type">(enum literal)</span>'; | | |
| 683 | } else { | | |
| 684 | return "(enum literal)"; | | |
| 685 | } | | |
| 686 | case typeKinds.NoReturn: | 629 | case typeKinds.NoReturn: |
| 687 | if (wantHtml) { | 630 | return token('noreturn', tokenKinds.Type, wantHtml); |
| 688 | return '<span class="tok-type">noreturn</span>'; | | |
| 689 | } else { | | |
| 690 | return "noreturn"; | | |
| 691 | } | | |
| 692 | case typeKinds.ErrorSet: | 631 | case typeKinds.ErrorSet: |
| 693 | if (typeObj.errors == null) { | 632 | if (typeObj.errors == null) { |
| 694 | if (wantHtml) { | 633 | return token('anyerror', tokenKinds.Type, wantHtml); |
| 695 | return '<span class="tok-type">anyerror</span>'; | | |
| 696 | } else { | | |
| 697 | return "anyerror"; | | |
| 698 | } | | |
| 699 | } else { | 634 | } else { |
| 700 | if (wantHtml) { | 635 | if (wantHtml) { |
| 701 | return escapeHtml(typeObj.name); | 636 | return escapeHtml(typeObj.name); |
| ... | @@ -756,19 +691,11 @@ | ... | @@ -756,19 +691,11 @@ |
| 756 | } | 691 | } |
| 757 | | 692 | |
| 758 | if (paramNode.noalias) { | 693 | if (paramNode.noalias) { |
| 759 | if (wantHtml) { | 694 | payloadHtml += token('noalias', tokenKinds.Keyword, wantHtml) + ' '; |
| 760 | payloadHtml += '<span class="tok-kw">noalias</span> '; | | |
| 761 | } else { | | |
| 762 | payloadHtml += 'noalias '; | | |
| 763 | } | | |
| 764 | } | 695 | } |
| 765 | | 696 | |
| 766 | if (paramNode.comptime) { | 697 | if (paramNode.comptime) { |
| 767 | if (wantHtml) { | 698 | payloadHtml += token('comptime', tokenKinds.Keyword, wantHtml) + ' '; |
| 768 | payloadHtml += '<span class="tok-kw">comptime</span> '; | | |
| 769 | } else { | | |
| 770 | payloadHtml += 'comptime '; | | |
| 771 | } | | |
| 772 | } | 699 | } |
| 773 | | 700 | |
| 774 | var paramName = paramNode.name; | 701 | var paramName = paramNode.name; |
| ... | @@ -784,10 +711,8 @@ | ... | @@ -784,10 +711,8 @@ |
| 784 | payloadHtml += '...'; | 711 | payloadHtml += '...'; |
| 785 | } else if (argTypeIndex != null) { | 712 | } else if (argTypeIndex != null) { |
| 786 | payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink); | 713 | payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink); |
| 787 | } else if (wantHtml) { | | |
| 788 | payloadHtml += '<span class="tok-kw">var</span>'; | | |
| 789 | } else { | 714 | } else { |
| 790 | payloadHtml += 'var'; | 715 | payloadHtml += token('var', tokenKinds.Keyword, wantHtml); |
| 791 | } | 716 | } |
| 792 | } | 717 | } |
| 793 | } | 718 | } |
| ... | @@ -795,10 +720,8 @@ | ... | @@ -795,10 +720,8 @@ |
| 795 | payloadHtml += ') '; | 720 | payloadHtml += ') '; |
| 796 | if (typeObj.ret != null) { | 721 | if (typeObj.ret != null) { |
| 797 | payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl); | 722 | payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl); |
| 798 | } else if (wantHtml) { | | |
| 799 | payloadHtml += '<span class="tok-kw">var</span>'; | | |
| 800 | } else { | 723 | } else { |
| 801 | payloadHtml += 'var'; | 724 | payloadHtml += token('var', tokenKinds.Keyword, wantHtml); |
| 802 | } | 725 | } |
| 803 | return payloadHtml; | 726 | return payloadHtml; |
| 804 | default: | 727 | default: |
| ... | @@ -1973,4 +1896,12 @@ | ... | @@ -1973,4 +1896,12 @@ |
| 1973 | return key; | 1896 | return key; |
| 1974 | } | 1897 | } |
| 1975 | } | 1898 | } |
| | 1899 | |
| | 1900 | function token(value, tokenClass, wantHtml){ |
| | 1901 | if(wantHtml){ |
| | 1902 | return '<span class="' + tokenClass + '">' + value + '</span>'; |
| | 1903 | } else { |
| | 1904 | return value + ''; |
| | 1905 | } |
| | 1906 | } |
| 1976 | })(); | 1907 | })(); |