commit bd0bdd9c77b55e65f23535c3530a88cd83a6edae
parent 63e46f804ff19a077cd7232bcb2c46bb8ee81db7
Author: gracefu <81774659+gracefuu@users.noreply.github.com>
Date: Wed, 21 May 2025 13:00:04 +0800
Organise imports
Diffstat:
7 files changed, 50 insertions(+), 60 deletions(-)
diff --git a/src/Ast.zig b/src/Ast.zig
@@ -1,11 +1,10 @@
const std = @import("std");
-const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const tracy = @import("tracy");
-const utils = @import("utils.zig");
const str = @import("str.zig");
+const utils = @import("utils.zig");
const Ast = @This();
@@ -137,7 +136,7 @@ pub const Tagged = struct {
pub const empty: Tagged = .{ .nodes = &.{}, .errors = &.{}, .extra = &.{} };
};
-pub fn toTagged(self: Ast, gpa: Allocator) !Tagged {
+pub fn toTagged(self: Ast, gpa: std.mem.Allocator) !Tagged {
const nodes = try gpa.alloc(Node.Tagged, self.nodes.len);
const errors = try gpa.alloc(Error.Tagged, self.errors.len);
const extra = try gpa.dupe(u32, self.extra);
diff --git a/src/AstGen.zig b/src/AstGen.zig
@@ -1,14 +1,13 @@
const std = @import("std");
-const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const tracy = @import("tracy");
-const utils = @import("utils.zig");
-const str = @import("str.zig");
const Ast = @import("Ast.zig");
const Node = Ast.Node;
const Error = Ast.Error;
+const str = @import("str.zig");
+const utils = @import("utils.zig");
const AstGen = @This();
@@ -29,7 +28,7 @@ fn nextNodeIdx(self: AstGen) Node.Idx {
@setRuntimeSafety(true);
return @enumFromInt(self.nodes.items.len);
}
-fn appendNode(self: *AstGen, gpa: Allocator, node: Node.Tagged) !Node.Idx {
+fn appendNode(self: *AstGen, gpa: std.mem.Allocator, node: Node.Tagged) !Node.Idx {
if (self.nodes.items.len > std.math.maxInt(
@typeInfo(Node.Idx).@"enum".tag_type,
)) return error.OutOfNodeIdx;
@@ -38,7 +37,7 @@ fn appendNode(self: *AstGen, gpa: Allocator, node: Node.Tagged) !Node.Idx {
return @enumFromInt(idx);
}
-pub fn deinit(self: *AstGen, gpa: Allocator) void {
+pub fn deinit(self: *AstGen, gpa: std.mem.Allocator) void {
self.nodes.deinit(gpa);
self.errors.deinit(gpa);
self.extra.deinit(gpa);
@@ -51,8 +50,8 @@ pub fn deinit(self: *AstGen, gpa: Allocator) void {
/// and any allocations returned will be allocated on this.
/// input: The input slice to be parsed.
pub fn parse(
- gpa: Allocator,
- output_gpa: ?Allocator,
+ gpa: std.mem.Allocator,
+ output_gpa: ?std.mem.Allocator,
input: []const u8,
) error{
InputTooLarge, // When the input length exceeds 2^32 bytes
@@ -146,7 +145,7 @@ fn calcOffset(self: *AstGen, c: *u8) u32 {
return @intCast(c - self.input_base);
}
-fn findIndentedColumn(self: *AstGen, gpa: Allocator, lines_: [][]u8, node_idx: Node.Idx) ![][]u8 {
+fn findIndentedColumn(self: *AstGen, gpa: std.mem.Allocator, lines_: [][]u8, node_idx: Node.Idx) ![][]u8 {
const tracy_frame = tracy.trace(@src());
defer tracy_frame.end();
var lines = lines_;
@@ -188,7 +187,7 @@ fn findIndentedColumn(self: *AstGen, gpa: Allocator, lines_: [][]u8, node_idx: N
return lines;
}
-fn parseInlineBlock(self: *AstGen, gpa: Allocator, lines_: [][]u8, parent_idx: Node.Idx) !void {
+fn parseInlineBlock(self: *AstGen, gpa: std.mem.Allocator, lines_: [][]u8, parent_idx: Node.Idx) !void {
const tracy_frame = tracy.trace(@src());
defer tracy_frame.end();
var lines = lines_;
@@ -280,7 +279,7 @@ fn parseInlineBlock(self: *AstGen, gpa: Allocator, lines_: [][]u8, parent_idx: N
}
}
-fn parseColumn(self: *AstGen, gpa: Allocator, lines_: [][]u8, parent_idx: Node.Idx) !void {
+fn parseColumn(self: *AstGen, gpa: std.mem.Allocator, lines_: [][]u8, parent_idx: Node.Idx) !void {
const tracy_frame = tracy.trace(@src());
defer tracy_frame.end();
var lines = lines_;
@@ -479,7 +478,7 @@ const block_specs = blockSpecs(struct {
/// Appends the suitable block node to the ast,
/// then returns how parsing should proceed for the children of this block.
/// Also returns the idx of the container node created.
-fn parseBlockStart(self: *AstGen, gpa: Allocator, line: []u8) !struct { ParseMode, Node.Idx } {
+fn parseBlockStart(self: *AstGen, gpa: std.mem.Allocator, line: []u8) !struct { ParseMode, Node.Idx } {
const tracy_frame = tracy.trace(@src());
defer tracy_frame.end();
if (block_specs[line[0]] == null) {
diff --git a/src/AstGen2.zig b/src/AstGen2.zig
@@ -1,23 +1,20 @@
const std = @import("std");
-const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const tracy = @import("tracy");
-const utils = @import("utils.zig");
-const str = @import("str.zig");
const Ast = @import("Ast.zig");
const StrOffset = Ast.StrOffset;
const StrLen = Ast.StrLen;
const Node = Ast.Node;
const Error = Ast.Error;
-
-const Column = u10;
+const str = @import("str.zig");
+const utils = @import("utils.zig");
const AstGen = @This();
-gpa: Allocator,
-output_gpa: Allocator,
+gpa: std.mem.Allocator,
+output_gpa: std.mem.Allocator,
output_gpa_same_as_gpa: bool,
input: []const u8,
cursor: []const u8, // suffix of input
@@ -26,6 +23,8 @@ nodes: std.ArrayListUnmanaged(Node),
errors: std.ArrayListUnmanaged(Error),
extra: std.ArrayListUnmanaged(u32),
+const Column = u10;
+
fn cursorOffset(self: *AstGen) StrOffset {
return @intCast(self.cursor.ptr - self.input.ptr);
}
@@ -138,8 +137,8 @@ pub fn deinit(self: *AstGen) void {
/// : `IndentationTooLong`
/// + This implementation of mymarkdown supports up to 1023 characters of indentation.
pub fn parse(
- gpa: Allocator,
- output_gpa: ?Allocator,
+ gpa: std.mem.Allocator,
+ output_gpa: ?std.mem.Allocator,
input: []const u8,
) !Ast {
const tracy_frame = tracy.trace(@src());
diff --git a/src/AstGen3.zig b/src/AstGen3.zig
@@ -1,25 +1,24 @@
const std = @import("std");
-const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const tracy = @import("tracy");
-const utils = @import("utils.zig");
-const str = @import("str.zig");
const Ast = @import("Ast.zig");
const StrOffset = Ast.StrOffset;
const StrLen = Ast.StrLen;
const Node = Ast.Node;
const Error = Ast.Error;
-const PaddedSlice = @import("padded_str.zig").PaddedSlice;
-const PaddedMany = @import("padded_str.zig").PaddedMany;
const IndentationScanner = @import("IndentationScanner.zig");
const IndentAlignment = IndentationScanner.IndentAlignment;
+const PaddedMany = @import("padded_str.zig").PaddedMany;
+const PaddedSlice = @import("padded_str.zig").PaddedSlice;
+const str = @import("str.zig");
+const utils = @import("utils.zig");
const AstGen = @This();
-gpa: Allocator,
-output_gpa: Allocator,
+gpa: std.mem.Allocator,
+output_gpa: std.mem.Allocator,
output_gpa_same_as_gpa: bool,
input: PaddedSlice,
scanner: IndentationScanner,
@@ -126,8 +125,8 @@ pub fn deinit(self: *AstGen) void {
/// : `IndentationTooLong`
/// + This implementation of mymarkdown supports up to 1023 characters of indentation.
pub fn parse(
- gpa: Allocator,
- output_gpa: ?Allocator,
+ gpa: std.mem.Allocator,
+ output_gpa: ?std.mem.Allocator,
input_: []const u8,
) !Ast {
const tracy_frame = tracy.trace(@src());
@@ -194,7 +193,7 @@ fn parseColumn(
MarkerTooLong,
OutOfNodeIdx,
OutOfErrorIdx,
-} || Allocator.Error)!void {
+} || std.mem.Allocator.Error)!void {
return self.parseColumnImpl(parent_idx);
}
diff --git a/src/IndentationScanner.zig b/src/IndentationScanner.zig
@@ -166,6 +166,18 @@
//! line 3
//! ==
+const std = @import("std");
+const maxInt = std.math.maxInt;
+const assert = std.debug.assert;
+const testing = std.testing;
+
+const padded_str = @import("padded_str.zig");
+const PaddedMany = @import("padded_str.zig").PaddedMany;
+const PaddedSlice = @import("padded_str.zig").PaddedSlice;
+const str = @import("str.zig");
+
+const IndentationScanner = @This();
+
// ==================================
// Fields Fields Fields Fields Fields
@@ -302,22 +314,8 @@ fn curExpectedIndents(it: *const IndentationScanner) ExpectedIndent {
return it._expected_indents.buffer[it._expected_indents.len - 1];
}
-// =======================================
-// Imports Imports Imports Imports Imports
-// Types Types Types Types Types Types
-
-const std = @import("std");
-const maxInt = std.math.maxInt;
-const assert = std.debug.assert;
-const Allocator = std.mem.Allocator;
-
-const str = @import("str.zig");
-const padded_str = @import("padded_str.zig");
-
-const IndentationScanner = @This();
-
-const PaddedSlice = @import("padded_str.zig").PaddedSlice;
-const PaddedMany = @import("padded_str.zig").PaddedMany;
+// ===================================
+// Types Types Types Types Types Types
const NumSpaces = usize;
const MAX_SPACES = maxInt(NumSpaces);
@@ -357,7 +355,6 @@ pub const PeekResult = ?struct { IndentAlignment, PaddedSlice };
// =======================================
// Testing Testing Testing Testing Testing
-const testing = std.testing;
inline fn expectEqualDeep(comptime T: type, expected: T, actual: T) !void {
try testing.expectEqualDeep(expected, actual);
}
diff --git a/src/main.zig b/src/main.zig
@@ -1,10 +1,7 @@
const std = @import("std");
-const tracy = @import("tracy");
const mymarkdown = @import("mymarkdown");
-const Ast = mymarkdown.Ast;
-
-const ArenaAllocator = std.heap.ArenaAllocator;
+const tracy = @import("tracy");
fn readInput(gpa: std.mem.Allocator, arena: std.mem.Allocator) !std.ArrayList(u8) {
const stdin = std.io.getStdIn();
@@ -35,7 +32,7 @@ pub fn main() !void {
};
};
defer _ = if (is_debug) debug_allocator.deinit();
- var arena_instance: ArenaAllocator = .init(gpa);
+ var arena_instance: std.heap.ArenaAllocator = .init(gpa);
defer arena_instance.deinit();
const arena = arena_instance.allocator();
@@ -123,7 +120,7 @@ pub fn main() !void {
}
if (!bench1 and !bench2 and !bench3) {
- const ast: Ast = if (run1) blk: {
+ const ast: mymarkdown.Ast = if (run1) blk: {
const tracy_frame = tracy.namedFrame("parse 1");
defer tracy_frame.end();
break :blk try mymarkdown.parse(
@@ -132,7 +129,7 @@ pub fn main() !void {
input,
);
} else .empty;
- const ast2: Ast = if (run2) blk: {
+ const ast2: mymarkdown.Ast = if (run2) blk: {
const tracy_frame = tracy.namedFrame("parse 2");
defer tracy_frame.end();
break :blk try mymarkdown.parse2(
@@ -141,7 +138,7 @@ pub fn main() !void {
input,
);
} else .empty;
- const ast3: Ast = if (run3) blk: {
+ const ast3: mymarkdown.Ast = if (run3) blk: {
const tracy_frame = tracy.namedFrame("parse 3");
defer tracy_frame.end();
break :blk try mymarkdown.parse3(
diff --git a/src/root.zig b/src/root.zig
@@ -2,10 +2,10 @@ const std = @import("std");
pub const Ast = @import("Ast.zig");
pub const AstGen = @import("AstGen.zig");
-pub const AstGen2 = @import("AstGen2.zig");
-pub const AstGen3 = @import("AstGen3.zig");
pub const parse = AstGen.parse;
+pub const AstGen2 = @import("AstGen2.zig");
pub const parse2 = AstGen2.parse;
+pub const AstGen3 = @import("AstGen3.zig");
pub const parse3 = AstGen3.parse;
test {