Releases: NomicFoundation/slang
v0.14.0
Minor Changes
-
#753
b35c763
Thanks @AntonyBlakey! - Add tree query implementation asQuery::parse
andCursor::query
-
#755
8c260fc
Thanks @OmarTawfik! - support parsing NatSpec comments -
#908
ab3688b
Thanks @Xanewok! - Changed the cst.NodeType in TS to use more descriptive string values rather than 0/1 integers -
#887
dff1201
Thanks @Xanewok! - Add support for constant function modifier removed in 0.5.0 -
#885
a9bd8da
Thanks @Xanewok! - Flatten the trivia syntax nodes into sibling tokens -
#908
ab3688b
Thanks @Xanewok! - Add RuleNode/TokenNode::toJSON() in the TypeScript API
Patch Changes
-
#801
ecbba49
Thanks @OmarTawfik! - unreserve pragma keywords in all versions -
#869
951b58d
Thanks @OmarTawfik! - support dots in yul identifiers from0.5.8
till0.7.0
-
#890
1ff8599
Thanks @Xanewok! - Markoverride
as being a valid attribute only after 0.6.0 -
#800
d1827ff
Thanks @OmarTawfik! - support unicode characters in string literals up to0.7.0
-
#797
86f36d7
Thanks @OmarTawfik! - fix source locations for unicode characters in error reports -
#854
4b8970b
Thanks @OmarTawfik! - parse line breaks without newlines -
#844
f62de9e
Thanks @OmarTawfik! - fix parsing empty/**/
comments -
#799
303dda9
Thanks @OmarTawfik! - prevent parsing multiple literals underStringExpression
before0.5.14
-
#847
6b6f260
Thanks @OmarTawfik! - prioritize parsingMultiLineComment
overMultiLineNatSpecComment
-
#796
59e1e53
Thanks @OmarTawfik! - addpublic
andinternal
toUnnamedFunctionAttribute
till0.5.0
-
#756
e839817
Thanks @OmarTawfik! - fix parsingpayable
primary expressions -
#851
67dfde8
Thanks @OmarTawfik! - fix selection order of prefix/postfix AST fields -
#857
f677d5e
Thanks @OmarTawfik! - renameFieldName
toNodeLabel
-
#852
ca79eca
Thanks @OmarTawfik! - allow parsingColonEqual
as two separate tokens before0.5.5
-
#889
ce5050f
Thanks @Xanewok! - Supportdelete
as an expression rather than a statement -
#923
bb30fc1
Thanks @Xanewok! - Support arbitrary ASCII escape sequences in string literals until 0.4.25 -
#887
dff1201
Thanks @Xanewok! - Support view and pure function modifiers only from 0.4.16 -
#800
d1827ff
Thanks @OmarTawfik! - renameAsciiStringLiteral
toStringLiteral
-
#838
ad98d1c
Thanks @OmarTawfik! - upgrade to rust1.76.0
-
#849
5c42e0e
Thanks @OmarTawfik! - addoverride
andvirtual
toConstructorAttribute
-
#862
5e37ea0
Thanks @Xanewok! - allow call options as a post-fix expression -
#786
0bfa6b7
Thanks @OmarTawfik! - support Yul label statements before0.5.0
-
#839
2d698eb
Thanks @OmarTawfik! - support string literals in version pragmas -
#891
70c9d7d
Thanks @Xanewok! - Fix parsing<NUMBER>.member
member access expression -
#842
2069126
Thanks @OmarTawfik! - addprivate
toUnnamedFunctionAttribute
till0.5.0
-
#840
7fb0d20
Thanks @OmarTawfik! - allowvar
inTupleDeconstructionStatement
before0.5.0
v0.13.1
Patch Changes
- #748
c289cbf7
Thanks @OmarTawfik! - Properly parse EVM built-ins up till Paris/Solidity 0.8.18
v0.13.0
Minor Changes
-
#710
2025b6cb
Thanks @Xanewok! - CST children nodes are now named -
#723
b3dc6bcd
Thanks @Xanewok! - Properly parse unreserved keywords in an identifier position, i.e.from
,emit
,global
etc. -
#728
662a672c
Thanks @Xanewok! - Remove Language#scan API; use the parser API instead -
#719
1ad6bb37
Thanks @OmarTawfik! - introduce strong types for all Solidity non terminals in the TypeScript API.
Patch Changes
-
#719
1ad6bb37
Thanks @OmarTawfik! - unify Rust/TypeScript node helpers:*_with_kind()
,*_with_kinds()
,*_is_kind()
), ... -
#731
3deaea2e
Thanks @OmarTawfik! - addRuleNode.unparse()
to the TypeScript API
v0.12.0
Minor Changes
-
#699
ddfebfe9
Thanks @Xanewok! - RemoveProductionKind
in favor ofRuleKind
-
#699
ddfebfe9
Thanks @Xanewok! - Allow parsing individual precedence expressions, likeShiftExpression
-
#665
4b5f8b46
Thanks @Xanewok! - Remove the CST Visitor API in favor of the Cursor API -
#666
0434b68c
Thanks @Xanewok! - AddNode::unparse()
that allows to reconstruct the source code from the CST node -
#675
daea4b7f
Thanks @OmarTawfik! - renameCursor
'spathRuleNodes()
toancestors()
in the NodeJS API. -
#676
b496d361
Thanks @OmarTawfik! - Fix NAPIcursor
types and exposecursor.depth
.
Patch Changes
v0.11.0
Minor Changes
-
#625
7bb650b
Thanks @Xanewok! - The CST Cursor now implements the Iterator trait as part of the Rust API -
#647
b1dced3
Thanks @OmarTawfik! - Require specifying an initial offset when creating a CST cursor.
Patch Changes
-
#648
2327bf5
Thanks @OmarTawfik! - Support Solidity v0.8.22. -
#623
80114a8
Thanks @AntonyBlakey! - Correct the types in the TS api by adding the correct namespaces to type references
v0.10.1
Patch Changes
- #615
06cbbe8
Thanks @AntonyBlakey! -cursor
method is now exposed in Typescript API
v0.10.0
Minor Changes
-
#595
1a258c4
Thanks @Xanewok! - Attempt error recovery when parsing incomplete lists -
#564
e326a06
Thanks @AntonyBlakey! - Parsing operators with missing operands should no longer panic -
#564
e326a06
Thanks @AntonyBlakey! - Inline parse rules are no longer exposed to the API. -
#564
e326a06
Thanks @AntonyBlakey! - Scanners are no longer available as methods - use next_token instead -
#564
e326a06
Thanks @AntonyBlakey! - Scanners are now grouped into contexts to deal with contextual scanning
Patch Changes
-
#601
cbd2a79
Thanks @Xanewok! - Attempt parser error recovery between bracket delimiters -
#599
4bbad48
Thanks @Xanewok! - Use correct versions for therevert
andglobal
keywords -
#561
cb6a138
Thanks @Xanewok! - Add preliminary documentation for thesolidity_language
Rust package -
#603
be59a10
Thanks @OmarTawfik! - upgrade to rust 1.72.0
v0.9.0
0.9.0
Minor Changes
-
#540
0d04f95
Thanks @AntonyBlakey! - Add a Rust Cursor API and refactor the Rust Visitor API to run on top of it. -
#540
0d04f95
Thanks @AntonyBlakey! - Move Visitor et al to node:: namespace, which is where Cursor is. -
#540
0d04f95
Thanks @AntonyBlakey! - Renamerange
functions that return a TextRange totext_range
Patch Changes
-
#543
7a34599
Thanks @OmarTawfik! - Movesyntax::parser::ProductionKind
tosyntax::nodes
namespace. -
#540
0d04f95
Thanks @AntonyBlakey! - Add TokenNode.text to the TS API. -
#540
0d04f95
Thanks @AntonyBlakey! - Add first pass of Typescript binding to the Cursor API, but no TS Visitor yet. -
#545
e73658a
Thanks @OmarTawfik! - render EBNF grammar on top of eachProductionKind
,RuleKind
, andTokenKind
. -
#558
95bbc50
Thanks @OmarTawfik! - Correct versioning forSourceUnitMember
andContractMember
children.
v0.8.0
0.8.0
Minor Changes
- #513
7e01250
Thanks @AntonyBlakey! - Typescript API now has TextIndex and TextRange types that are returned from the appropriate methods rather than tuples.
Patch Changes
- #527
7ccca87
Thanks @AntonyBlakey! - Fix pratt parser behavior in the face of error correction - #531
e3450be4
Thanks @alcuadrado! - Make ESM named imports work in Node.js.
v0.7.0
0.7.0
Minor Changes
-
#502
c383238
Thanks @AntonyBlakey! - Added error recovery i.e. a CST is always produced, even if there are errors. The erroneous/skipped text is in the CST as aTokenKind::SKIPPED
token. -
#501
cb221fe
Thanks @OmarTawfik! - generate typescript string enums for CST kinds -
#517
8bd5446
Thanks @OmarTawfik! - extract inlined and sub-expressions in language grammar -
#518
b3b562b
Thanks @OmarTawfik! - fill in missing CST node names -
#515
f24e873
Thanks @OmarTawfik! - switch over the NPM package to use CommonJS modules instead of ES modules. -
#498
44f1ff7
Thanks @OmarTawfik! - flatten unnamed CST nodes into parent nodes -
#502
c383238
Thanks @AntonyBlakey! - Use the Rowan model for the CST i.e. TokenNodes contain the string content, and RuleNodes contain only the combined length of their children's text. -
#499
1582d60
Thanks @OmarTawfik! - preserve correct ranges on empty rule nodes -
#500
73ddac9
Thanks @OmarTawfik! - inlining CST nodes that offer no additional syntactic information -
#512
72dc3d3
Thanks @AntonyBlakey! - Expression productions now correctly wrap the recursive 'calls' in a rule node