Skip to content

Feature request: JMESPath lexer #2205

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

Closed
1 of 2 tasks
dreamorosi opened this issue Mar 12, 2024 · 2 comments · Fixed by #2214
Closed
1 of 2 tasks

Feature request: JMESPath lexer #2205

dreamorosi opened this issue Mar 12, 2024 · 2 comments · Fixed by #2214
Assignees
Labels
completed This item is complete and has been merged/shipped feature-request This item refers to a feature request for an existing or new utility jmespath This item relates to the JMESPath Utility

Comments

@dreamorosi
Copy link
Contributor

Use case

As part of the JMESPath utility implementation we need to define a lexer (short for lexical analyzer).

The purpose of a lexer is to break down the input JMESPath expression into smaller meaningful units (tokens). These tokens represent the building blocks of the JMESPath language and are defined in the language grammar (#2192).

The lexer covers the first step of parsing and applying a JMESPath expression, its output is then used by the Parser that converts the tokens into an abstract syntax tree.

Solution/User Experience

The lexer should be able to tokenize the JMESPath expression walking it character by character and identify sequences of characters that form valid tokens (i.e. a string literal (max) followed by opening and closing parentheses (( )) should be interpreted as a function expression).

The lexer should also be able to detect lexical errors like invalid characters or sequences of characters that don't conform to the JMESPath syntax.

All types, classes, and functions should be documented and exposed to customers via API docs.

Alternative solutions

No response

Acknowledgment

Future readers

Please react with 👍 and your use case to help us understand customer demand.

@dreamorosi dreamorosi added feature-request This item refers to a feature request for an existing or new utility confirmed The scope is clear, ready for implementation jmespath This item relates to the JMESPath Utility labels Mar 12, 2024
@dreamorosi dreamorosi self-assigned this Mar 12, 2024
@dreamorosi dreamorosi moved this from Triage to Backlog in Powertools for AWS Lambda (TypeScript) Mar 12, 2024
@dreamorosi dreamorosi moved this from Backlog to Pending review in Powertools for AWS Lambda (TypeScript) Mar 12, 2024
@dreamorosi dreamorosi linked a pull request Mar 12, 2024 that will close this issue
9 tasks
@github-project-automation github-project-automation bot moved this from Pending review to Coming soon in Powertools for AWS Lambda (TypeScript) Mar 19, 2024
Copy link
Contributor

⚠️ COMMENT VISIBILITY WARNING ⚠️

This issue is now closed. Please be mindful that future comments are hard for our team to see.

If you need more assistance, please either tag a team member or open a new issue that references this one.

If you wish to keep having a conversation with other community members under this issue feel free to do so.

@github-actions github-actions bot added pending-release This item has been merged and will be released soon and removed confirmed The scope is clear, ready for implementation labels Mar 19, 2024
Copy link
Contributor

This is now released under v2.0.4 version!

@github-actions github-actions bot added completed This item is complete and has been merged/shipped and removed pending-release This item has been merged and will be released soon labels Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
completed This item is complete and has been merged/shipped feature-request This item refers to a feature request for an existing or new utility jmespath This item relates to the JMESPath Utility
Projects
Development

Successfully merging a pull request may close this issue.

1 participant