Commit d5c5824c80

pfg <pfg@pfg.pw>
2021-10-01 22:06:30
fix line numbers on multiline strings, add line numbers to peg grammar
1 parent de92925
Changed files (2)
doc/docgen.zig
@@ -313,6 +313,7 @@ const SyntaxBlock = struct {
     const SourceType = enum {
         zig,
         c,
+        peg,
         javascript,
     };
 };
@@ -666,6 +667,8 @@ fn genToc(allocator: *Allocator, tokenizer: *Tokenizer) !Toc {
                         source_type = SyntaxBlock.SourceType.zig;
                     } else if (mem.eql(u8, source_type_str, "c")) {
                         source_type = SyntaxBlock.SourceType.c;
+                    } else if (mem.eql(u8, source_type_str, "peg")) {
+                        source_type = SyntaxBlock.SourceType.c;
                     } else if (mem.eql(u8, source_type_str, "javascript")) {
                         source_type = SyntaxBlock.SourceType.javascript;
                     } else {
@@ -979,7 +982,6 @@ fn tokenizeAndPrintRaw(
             },
 
             .string_literal,
-            .multiline_string_literal_line,
             .char_literal,
             => {
                 try out.writeAll("<span class=\"tok-str\">");
@@ -987,6 +989,13 @@ fn tokenizeAndPrintRaw(
                 try out.writeAll("</span>");
             },
 
+            .multiline_string_literal_line,
+            => {
+                try out.writeAll("<span class=\"tok-str\">");
+                try writeEscaped(out, src[token.loc.start..token.loc.end - 1]);
+                try out.writeAll("</span>" ++ end_line ++ "\n" ++ start_line);
+            },
+
             .builtin => {
                 try out.writeAll("<span class=\"tok-builtin\">");
                 try writeEscaped(out, src[token.loc.start..token.loc.end]);
doc/langref.html.in
@@ -11644,7 +11644,7 @@ fn readU32Be() u32 {}
       {#header_close#}
 
       {#header_open|Grammar#}
-      <pre><code>Root &lt;- skip container_doc_comment? ContainerMembers eof
+      {#syntax_block|peg|zig.peg#}Root &lt;- skip container_doc_comment? ContainerMembers eof
 
 # *** Top level ***
 ContainerMembers &lt;- ContainerDeclarations (ContainerField COMMA)* (ContainerField / ContainerDeclarations)
@@ -12202,7 +12202,7 @@ keyword &lt;- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe
          / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_try
          / KEYWORD_union / KEYWORD_unreachable
          / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while
-</code></pre>
+{#end_syntax_block#}
       {#header_close#}
       {#header_open|Zen#}
       <ul>