@nomicfoundation/slang
Advanced tools
Changelog
0.18.3
a97b27d
Thanks @OmarTawfik! - fix a bug where CST nodes are invalidated after using AST typesChangelog
0.18.2
#1126 e1d9748
Thanks @OmarTawfik! - fix wasm type exports for the npm package
#1122 bbb5323
Thanks @OmarTawfik! - support Solidity 0.8.28
release
Changelog
0.18.1
bdb0ef3
Thanks @OmarTawfik! - fix a minor issue with npm package ESM importsChangelog
0.18.0
#1120 25eef3e
Thanks @OmarTawfik! - migrate NAPI front-end to WASM and ESM
#1120 25eef3e
Thanks @OmarTawfik! - add TerminalKindExtensions.is_valid()
API to distinguish correctly-parsed and erroneous nodes
#1117 be7bb79
Thanks @OmarTawfik! - rename Language
API to Parser
, in preparation for introducing a multi-file compilation API.
#1116 c88f9b5
Thanks @OmarTawfik! - merge language
, parse_error
, parse_output
namespaces into the parser
namespace.
#1115 96df645
Thanks @OmarTawfik! - merge cursor
, kinds
, query
, and text_index
namespaces into the cst
namespace.
#1120 25eef3e
Thanks @OmarTawfik! - unify API methods on TerminalNode
and NonTerminalNode
, and add type assertions and guards to both types
#1120 25eef3e
Thanks @OmarTawfik! - expose edges and edge labels on CST nodes via Node.children()
method. This allows distinguishing between children of the same node based on their label/role in the parent, even if they have the same kind.
#1120 25eef3e
Thanks @OmarTawfik! - add TerminalNode.id
and Nonterminal.id
properties to get a numeric ID that can be used in indexing/comparison at runtime.
#1120 25eef3e
Thanks @OmarTawfik! - add TerminalKindExtensions.is_trivia()
API to distinguish between trivia nodes and other contentful nodes
#1096 15c437c
Thanks @OmarTawfik! - add support for Solidity 0.8.27
.
#1120 25eef3e
Thanks @OmarTawfik! - change Parser::new()
constructor to Parser::create()
static method.
#1097 e17af22
Thanks @OmarTawfik! - Fix the grammar of keywords (blobbasefee
, blobhash
, mcopy
, tload
, tstore
) added in 0.8.24
, as they were actually reserved in 0.8.25
.
Changelog
0.17.0
43b389e
Thanks @OmarTawfik! - Move the Rust CLI into a separate slang_solidity_cli
crate.f749e53
Thanks @AntonyBlakey! - The grammar for VersionExpressionSet
has changed to more accurately model the allowed structure.Changelog
0.16.0
#1030 7e467ce
Thanks @ggiraldez! - Tree Query Language: queries now ignore trivia nodes.
#1030 7e467ce
Thanks @ggiraldez! - Tree Query Language: remove the ellipsis query ...
operator making it implicit, add an adjacency operator .
.
#1015 369ee30
Thanks @OmarTawfik! - upgrade to rust 1.79.0
.
#1052 54c9067
Thanks @ggiraldez! - Tree Query Language: Compute row and column information for query parser errors.
#1048 c408caa
Thanks @OmarTawfik! - support Yul multiple variables declaration
#1047 2b32045
Thanks @OmarTawfik! - inline MemberAccess
enum into the parent MemberAccessExpression
#1062 6b05496
Thanks @OmarTawfik! - fix stack assignments operator =:
.
#1052 54c9067
Thanks @ggiraldez! - Tree Query Language: Improve reporting when an error occurs attempting to parse edge labels or node kinds.
#1037 2a74f91
Thanks @OmarTawfik! - fix ExponentiationExpression
associativity before 0.8.0
Changelog
0.15.0
#975 46b1dde
Thanks @OmarTawfik! - rename QueryResult
to QueryMatch
, and its bindings
to captures
.
#971 be943b7
Thanks @Xanewok! - Rename RuleKind
to NonterminalKind
, TokenKind
to TerminalKind
, and NodeLabel
to EdgeLabel
.
#963 a5593f9
Thanks @Xanewok! - Introduce a Diagnostic
API for compiler errors, warnings etc.
#996 cdc153d
Thanks @OmarTawfik! - add support for version 0.8.26
.
#983 ea31417
Thanks @ggiraldez! - Expose the language root non-terminal kind at Language.rootKind()
.
#965 61b6b06
Thanks @OmarTawfik! - refactor CST building and querying utilities into a separate metaslang_cst
crate.
#997 84ad856
Thanks @OmarTawfik! - Support stack assignments in Yul before 0.5.0
.