feat: improved parsing and regression test suite
This commit is contained in:
parent
4ebdd3c66e
commit
619eb3b338
39 changed files with 1116 additions and 339 deletions
|
|
@ -208,15 +208,15 @@ fn writeType(r: *Render, writer: *std.Io.Writer, node: *const Ast.Node) !void {
|
|||
|
||||
fn writeLexeme(r: *Render, writer: *std.Io.Writer, node: *const Ast.Node) !void {
|
||||
const bytes = r.tree.source;
|
||||
const lexeme = bytes[node.source_start..node.source_end];
|
||||
const lexeme = bytes[node.loc.start..node.loc.end];
|
||||
try r.tty_config.setColor(writer, .yellow);
|
||||
try writer.print("`{s}`", .{lexeme});
|
||||
try r.tty_config.setColor(writer, .reset);
|
||||
}
|
||||
|
||||
fn writeLineSpan(r: *Render, writer: *std.Io.Writer, node: *const Ast.Node) !void {
|
||||
const line_start = r.lines.calculateLine(node.source_start);
|
||||
const line_end = r.lines.calculateLine(node.source_end);
|
||||
const line_start = r.lines.calculateLine(node.loc.start);
|
||||
const line_end = r.lines.calculateLine(node.loc.end);
|
||||
|
||||
try r.tty_config.setColor(writer, .white);
|
||||
try writer.writeByte('<');
|
||||
|
|
@ -242,10 +242,10 @@ fn writeLineSpan(r: *Render, writer: *std.Io.Writer, node: *const Ast.Node) !voi
|
|||
}
|
||||
|
||||
fn writeColumnSpan(r: *Render, writer: *std.Io.Writer, node: *const Ast.Node) !void {
|
||||
const line_start = r.lines.calculateLine(node.source_start);
|
||||
const line_start = r.lines.calculateLine(node.loc.start);
|
||||
const line_range = r.lines.ranges.items[line_start];
|
||||
const column_start = (node.source_start - line_range.start);
|
||||
const column_end = (node.source_end - line_range.start);
|
||||
const column_start = (node.loc.start - line_range.start);
|
||||
const column_end = (node.loc.end - line_range.start);
|
||||
|
||||
try r.tty_config.setColor(writer, .white);
|
||||
try writer.writeByte('<');
|
||||
|
|
@ -271,10 +271,10 @@ fn writeColumnSpan(r: *Render, writer: *std.Io.Writer, node: *const Ast.Node) !v
|
|||
}
|
||||
|
||||
fn writeLineColumnSpan(r: *Render, writer: *std.Io.Writer, node: *const Ast.Node) !void {
|
||||
const line_start = r.lines.calculateLine(node.source_start);
|
||||
const line_start = r.lines.calculateLine(node.loc.start);
|
||||
const line_range = r.lines.ranges.items[line_start];
|
||||
const column_start = (node.source_start - line_range.start);
|
||||
const column_end = (node.source_end - line_range.start);
|
||||
const column_start = (node.loc.start - line_range.start);
|
||||
const column_end = (node.loc.end - line_range.start);
|
||||
|
||||
try r.tty_config.setColor(writer, .white);
|
||||
try writer.writeByte('<');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue