-
Notifications
You must be signed in to change notification settings - Fork 42
API improvements #1223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
API improvements #1223
Conversation
🦋 Changeset detectedLatest commit: e6f6c7a The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
06ce958
to
8ec87b2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice changes! I'm just not convinced of the parse_file
name, but otherwise, this is good to go.
crates/codegen/runtime/cargo/crate/src/runtime/parser/parser.rs.jinja2
Outdated
Show resolved
Hide resolved
crates/testlang/outputs/npm/tests/src/language/language-facts.test.mts
Outdated
Show resolved
Hide resolved
8ec87b2
to
e0275fb
Compare
e0275fb
to
e6f6c7a
Compare
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @nomicfoundation/slang@0.19.0 ### Minor Changes - [#1156](#1156) [`3a82f06`](3a82f06) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add `node.descendants()` and `cursor.descendants()` APIs to allow iterating over all descendants of the current node in pre-order traversal. - [#1156](#1156) [`3a82f06`](3a82f06) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - fix `node.children()` and `parseOutput.errors()` return types - [#1194](#1194) [`7a25d63`](7a25d63) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - split `parser/Parser.supportedVersions()` into a new `utils/LanguageFacts` API, with `allVersions()`, `earliestVersion()`, and `latestVersion()` methods. - [#1194](#1194) [`7a25d63`](7a25d63) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - expose the `BingingGraph` API to allow querying definitions/references between source files. - [#1156](#1156) [`3a82f06`](3a82f06) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add `cursor.ancestors()` API to allow iterating over all ancestors of the current node, starting with the immediate parent, and moving upwards, ending with the root node. - [#1156](#1156) [`3a82f06`](3a82f06) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add `cursor.remainingNodes()` API to allow iterating over all the remaining nodes in the current tree, moving in pre-order traversal, until the tree is completed. - [#1223](#1223) [`3e85a14`](3e85a14) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - split `Parser.parse()` API into `parse_file_contents()` and `parse_nonterminal()`. - [#1194](#1194) [`7a25d63`](7a25d63) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add a `CompilationBuilder` API to incrementally load and resolve source files and their imports. - [#1223](#1223) [`3e85a14`](3e85a14) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - rename `Query.parse()` to `Query.create()`, and provide exact `TextRange` for any errors it returns. - [#1172](#1172) [`6102886`](6102886) Thanks [@beta-ziliani](https://github.com/beta-ziliani)! - Improved error recovery, where leading trivia are always parsed and included before an erroneous terminal. - [#1223](#1223) [`3e85a14`](3e85a14) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add `TerminalKindExtensions.is_identifier()` API to distinguish terminals like Solidity's `Identifier` and Yul's `YulIdentifier`. ### Patch Changes - [#1134](#1134) [`cfc62f2`](cfc62f2) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - remove `YulPathComponent` and just use `YulIdentifier` instead. - [#1138](#1138) [`44a706f`](44a706f) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add `ThisKeyword` and `SuperKeyword` to the grammar, instead of parsing them as identifiers. - [#1134](#1134) [`cfc62f2`](cfc62f2) Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - unreserve `AddressKeyword`, and let it be used for `MemberAccessExpression`, `StructMember`, etc... - [#1154](#1154) [`7b9b478`](7b9b478) Thanks [@beta-ziliani](https://github.com/beta-ziliani)! - Adding support for deprecated keywords `jump` and `jumpi` Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
TerminalKindExtensions.is_identifier()
API to distinguish terminals like Solidity'sIdentifier
and Yul'sYulIdentifier
.parser/Parser.supportedVersions()
into a newutils/LanguageFacts
API, withallVersions()
,earliestVersion()
, andlatestVersion()
methods.Query.parse()
toQuery.create()
, and provide exactTextRange
for any errors it returns.Parser.parse()
API intoparse_file_contents()
andparse_nonterminal()
.