fix: add namespace keyword, object literal parsing, and namespace body syntax#2
Open
shx20140617 wants to merge 5 commits into
Open
fix: add namespace keyword, object literal parsing, and namespace body syntax#2shx20140617 wants to merge 5 commits into
shx20140617 wants to merge 5 commits into
Conversation
…ions
- Update src/parser.ts to correctly handle curly brace tokens ('{') following primary expressions, specifically addressing the scenario where a '{' appears immediately after a primary token which previously caused an "Unexpected token Punctuation: {" error
- Refactor parseCall method to properly manage cases where a block statement follows a primary expression without parentheses
- Introduce parsePrimary method to enhance the parsing logic for primary expressions, improving error handling and token consumption flow
- Adjust .gitignore to ensure source files are correctly tracked (no functional change)
Update from task 229262f4-74dd-4cd4-984d-d3a1efbf947b
…y syntax support
- Add 'namespace' to lexer keyword set
- Add parseObjectLiteral() method for { key: value } expressions in parsePrimary
- Handle 'namespace name = { body }' syntax in parseModuleDeclaration
- Add 'namespace' as alias for 'module' in statement parsing
- Add ObjectExpression case in toSource for code generation
- Add CommentStatement interface and leadingComments to Statement - Modify loadNextToken to capture comments instead of skipping - Attach pending comments to statements in parseStatement - Update toSource to emit leading comments and CommentStatement nodes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary: Add namespace to lexer keyword set, add parseObjectLiteral() method for { key: value } expressions, handle namespace name = { body } syntax in parseModuleDeclaration(), add ObjectExpression case in toSource(). Motivation: The builtins package uses namespace motion = { ... } syntax to define Scratch block definitions.