-
Notifications
You must be signed in to change notification settings - Fork 32
Update War3Net to v6.0.0 #86
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
Merged
Merged
Conversation
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
This commit brings in the complete Roslyn-style syntax tree architecture for JASS from the vjass branch. This is a major architectural upgrade that provides: - Immutable syntax trees with full trivia support (whitespace, comments) - Strongly-typed syntax kinds (447+ JassSyntaxKind values) - Complete tree navigation (GetChild*/GetDescendant* methods) - Code formatting via NormalizeWhitespace() - Fluent builder API for programmatic code generation - Enhanced parser with better error handling - Performance optimizations Key changes: - New base classes: JassSyntaxNode, JassSyntaxToken, JassSyntaxTrivia - Parser refactored from Parser/ to JassParser/ directory - Converted from interfaces (IExpressionSyntax, etc.) to base classes - Added normalizer system for code formatting - Added syntax rewriter for code transformations - Updated all renderers and renamers Note: This introduces build errors due to missing War3Net.CodeAnalysis changes that will be applied in the next commit.
This commit applies the necessary changes from the vjass branch to the War3Net.CodeAnalysis project to support the new JASS syntax system. Changes: - Added SeparatedSyntaxList.IsEmpty property - Added SeparatedSyntaxList.Create(item) method - Added SeparatedSyntaxList.CreateBuilder(item, capacity) overload - Added SeparatedSyntaxList.Builder(item, capacity) constructor - Updated IfThenElseParser, SeparatedParser, and UntilWithLeadingParser
Changes to War3Net.CodeAnalysis.Jass: - Added FunctionDeclarationParser property that throws NotImplementedException The new JASS syntax system doesn't support parsing function declarations in isolation (they require context for the optional 'constant' keyword). Users should use TopLevelDeclarationParser instead. Changes to War3Net.TestTools.UnitTesting: - Updated SyntaxAssert from vjass branch to use new base classes instead of removed interfaces (IExpressionSyntax, IStatementSyntax, etc.) - Changed from NullableEquals() to NullableEquivalentTo() extension method - Commented out methods for removed "Line" syntax types - Updated TestDataProvider with improved error handling All 127 JASS tests now pass.
…eCharacter implementation.
…ncorrect implementations.
…ld(.Core) and War3Net.CodeAnalysis.Jass.
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.
No description provided.