Skip to content

Commit

Permalink
Splice zig's parser into zls
Browse files Browse the repository at this point in the history
  • Loading branch information
llogick committed Oct 17, 2023
1 parent e4593da commit 43ab6ca
Show file tree
Hide file tree
Showing 6 changed files with 19,117 additions and 2 deletions.
13 changes: 11 additions & 2 deletions src/DocumentStore.zig
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const Config = @import("Config.zig");
const ZigVersionWrapper = @import("ZigVersionWrapper.zig");
const translate_c = @import("translate_c.zig");
const ComptimeInterpreter = @import("ComptimeInterpreter.zig");
const Parser = @import("stage2/Ast.zig");
const AstGen = @import("stage2/AstGen.zig");
const Zir = @import("stage2/Zir.zig");
const InternPool = @import("analyser/InternPool.zig");
Expand Down Expand Up @@ -754,8 +755,16 @@ fn createDocument(self: *DocumentStore, uri: Uri, text: [:0]const u8, open: bool
var duped_uri = try self.allocator.dupe(u8, uri);
errdefer self.allocator.free(duped_uri);

var tree = try Ast.parse(self.allocator, text, .zig);
errdefer tree.deinit(self.allocator);
// var tree = try Ast.parse(self.allocator, text, .zig);
var zls_ast = try Parser.parse(self.allocator, text, .zig);
errdefer zls_ast.deinit(self.allocator);
var tree = Ast{
.source = zls_ast.source,
.tokens = zls_ast.tokens,
.nodes = zls_ast.nodes,
.extra_data = zls_ast.extra_data,
.errors = zls_ast.errors,
};

// remove unused capacity
var nodes = tree.nodes.toMultiArrayList();
Expand Down
Loading

0 comments on commit 43ab6ca

Please sign in to comment.