- #1130
a97b27d
Thanks @OmarTawfik! - fix a bug where CST nodes are invalidated after using AST types
-
#1126
e1d9748
Thanks @OmarTawfik! - fix wasm type exports for the npm package -
#1122
bbb5323
Thanks @OmarTawfik! - support Solidity0.8.28
release
- #1123
bdb0ef3
Thanks @OmarTawfik! - fix a minor issue with npm package ESM imports
-
#1120
25eef3e
Thanks @OmarTawfik! - migrate NAPI front-end to WASM and ESM -
#1120
25eef3e
Thanks @OmarTawfik! - addTerminalKindExtensions.is_valid()
API to distinguish correctly-parsed and erroneous nodes -
#1117
be7bb79
Thanks @OmarTawfik! - renameLanguage
API toParser
, in preparation for introducing a multi-file compilation API. -
#1116
c88f9b5
Thanks @OmarTawfik! - mergelanguage
,parse_error
,parse_output
namespaces into theparser
namespace. -
#1115
96df645
Thanks @OmarTawfik! - mergecursor
,kinds
,query
, andtext_index
namespaces into thecst
namespace. -
#1120
25eef3e
Thanks @OmarTawfik! - unify API methods onTerminalNode
andNonTerminalNode
, and add type assertions and guards to both types -
#1120
25eef3e
Thanks @OmarTawfik! - expose edges and edge labels on CST nodes viaNode.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! - addTerminalNode.id
andNonterminal.id
properties to get a numeric ID that can be used in indexing/comparison at runtime. -
#1120
25eef3e
Thanks @OmarTawfik! - addTerminalKindExtensions.is_trivia()
API to distinguish between trivia nodes and other contentful nodes
-
#1096
15c437c
Thanks @OmarTawfik! - add support for Solidity0.8.27
. -
#1120
25eef3e
Thanks @OmarTawfik! - changeParser::new()
constructor toParser::create()
static method. -
#1097
e17af22
Thanks @OmarTawfik! - Fix the grammar of keywords (blobbasefee
,blobhash
,mcopy
,tload
,tstore
) added in0.8.24
, as they were actually reserved in0.8.25
.
- #1079
43b389e
Thanks @OmarTawfik! - Move the Rust CLI into a separateslang_solidity_cli
crate.
- #1086
f749e53
Thanks @AntonyBlakey! - The grammar forVersionExpressionSet
has changed to more accurately model the allowed structure.
-
#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 rust1.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! - inlineMemberAccess
enum into the parentMemberAccessExpression
-
#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! - fixExponentiationExpression
associativity before0.8.0
- #1012
9ca51b4
Thanks @OmarTawfik! - exposeQueryMatch
to public API
-
#975
46b1dde
Thanks @OmarTawfik! - renameQueryResult
toQueryMatch
, and itsbindings
tocaptures
. -
#971
be943b7
Thanks @Xanewok! - RenameRuleKind
toNonterminalKind
,TokenKind
toTerminalKind
, andNodeLabel
toEdgeLabel
. -
#963
a5593f9
Thanks @Xanewok! - Introduce aDiagnostic
API for compiler errors, warnings etc.
-
#996
cdc153d
Thanks @OmarTawfik! - add support for version0.8.26
. -
#983
ea31417
Thanks @ggiraldez! - Expose the language root non-terminal kind atLanguage.rootKind()
. -
#965
61b6b06
Thanks @OmarTawfik! - refactor CST building and querying utilities into a separatemetaslang_cst
crate. -
#997
84ad856
Thanks @OmarTawfik! - Support stack assignments in Yul before0.5.0
.
-
#948
ce88cb7
Thanks @Xanewok! - Restrict the grammar to correctly only allow an identifier in Yul variable declaration -
#945
e8f80d8
Thanks @Xanewok! - Support.address
built-in access in Yul paths
-
#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
-
#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
- #748
c289cbf7
Thanks @OmarTawfik! - Properly parse EVM built-ins up till Paris/Solidity 0.8.18
-
#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.
-
#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
-
#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
.
-
#685
b5fca94a
Thanks @Xanewok! -bytes
is now properly recognized as a reserved word -
#660
97028991
Thanks @Xanewok! - Drop List suffix from collection grammar rule names
-
#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.
-
#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
- #615
06cbbe8
Thanks @AntonyBlakey! -cursor
method is now exposed in Typescript API
-
#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
-
#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
-
#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
-
#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.
- #513
7e01250
Thanks @AntonyBlakey! - Typescript API now has TextIndex and TextRange types that are returned from the appropriate methods rather than tuples.
- #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.
-
#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
-
#490
ea8e7e7
Thanks @OmarTawfik! - provide API to list supported language versions -
#489
15c34a7
Thanks @OmarTawfik! - replace panics with JS exceptions in npm package
- #488
d7f171c
Thanks @DaniPopes! - introduce acli
Cargo feature to compile the CLI binary
-
#475
0cdfe86
Thanks @OmarTawfik! - match TypeScript and Rust API namespaces -
#477
13c85a2
Thanks @OmarTawfik! - move expression operators into separate nodes -
#481
0269f2b
Thanks @OmarTawfik! - fix grammar versions of individual keywords -
#473
11d8cb0
Thanks @OmarTawfik! - upgrade to rust 1.69.0
-
#458
c0fc7e9
Thanks @AntonyBlakey! - Record both character and byte offsets for input positions -
#463
0958d6b
Thanks @OmarTawfik! - usenumber
and getters in npm public API
-
#457
b7aae2a
Thanks @OmarTawfik! - minor grammar fixes -
#453
0f2f9ab
Thanks @OmarTawfik! - move Rust'ssyntax::Parser::Language
API to root module -
#454
85dec01
Thanks @OmarTawfik! - moving to Rust version 1.65.0 -
#456
c6d1041
Thanks @OmarTawfik! - exposeParseError
API -
#451
78f633c
Thanks @OmarTawfik! - renameVisitorExitResponse::StepIn
toVisitorExitResponse::Continue
- #444
a858e2c
Thanks @AntonyBlakey! - Fix HexLiteral cannot have NumberUnit
- #435
2a5b193
Thanks @OmarTawfik! - support user defined operators
-
#416
fb977a5
Thanks @OmarTawfik! - fix primary expressions parser order -
#434
beb3708
Thanks @OmarTawfik! - fix UnicodeStringLiteral versioning -
#430
8b7492e
Thanks @OmarTawfik! - update READMEs with links to packages and user guides. -
#425
9b49b3d
Thanks @OmarTawfik! - add user guides to rust crate and npm packages. -
#432
1d1a8bb
Thanks @OmarTawfik! - fix FunctionCallOptions versioning -
#427
1103916
Thanks @AntonyBlakey! - fix VariableDeclarationStatement versioning
- #412
9cac1a04
Thanks @OmarTawfik! - publish npm packages
- #396
621b338
Thanks @OmarTawfik! - Initial release.