Lang spec v3 - #106
Open
lm-sousa wants to merge 88 commits into
Open
Lang spec v3#106lm-sousa wants to merge 88 commits into
lm-sousa wants to merge 88 commits into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 84f61fe078
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…tion framework - Added DotGenerator for generating DOT files representing join point hierarchy. - Introduced EntityGenerator for creating user-defined entity and enum classes. - Created GeneratorConfig for managing code generation configurations. - Developed ProviderDefGenerator for generating provider definition interfaces. - Implemented RegistryGenerator for runtime provider lookup. - Added SpecMerger to merge base and weaver-specific specifications. - Created WeaverAbstractGenerator for generating abstract weaver classes. - Introduced JavaSourceBuilder for building Java source code with proper formatting. - Added TypeMapper for mapping LangSpec2 types to Java types. - Updated WeaverInterface with BaseJoinPointSpec and JoinPoint2 for new join point system. - Enhanced WeaverEngine to support the new provider registry pattern. - Updated build.gradle and settings.gradle to include LangSpec2 dependency.
…ed keywords and sanitizing Java identifiers
… with duplicate checks
…ture for attribute and action signatures
…ntinue the migration towards the new WeaverGen2
… proper type safety.
… handling and imports
…proved type handling
…s it was a fundamentally broken concept
…the concrete classes they extend in AbstractJpGenerator
… usage in AbstractJpGenerator
… joinpoint abstracts
Search recursively under config.basePackage() + ".joinpoints" for the expected concrete class name, derive the package from the matched source file, and fail if multiple matches are found.
…ect sources. Delete unused XML specification files and clean up DefaultWeaver implementation
…pecification and WeaverGenerator
…y treating it as an action instead of the attribute it is defined as.
…to the quirks of the AST enums
- Add recursive discovery for concrete joinpoint sources - Create missing concrete joinpoint classes from the spec model - Validate concrete class declarations against the expected CRTP form - Report extra, duplicate, or malformed Java sources without modifying them - Preserve nested joinpoint packages and imports - Resolve child abstract constructor node types from parent concrete constructors - Add CLI regressions for nested sources, duplicates, bad declarations, and inherited node types
…idate them by running all tests
compatibility-style forwarding APIs that had grown around the previous design. Key changes: - Introduce JoinPointMember, MemberSignature, and WrapperSignature primitives for member naming, signature comparison, and inherited wrapper suppression. - Move joinpoint member method emission and wrapper suppression into JoinPointMemberEmitter. - Add GeneratedArtifactFactory to centralize generated artifact identity and package-to-path handling. - Replace ConcreteJoinPointSources mutable created-file state with ConcreteSourceSync. - Simplify JoinPointTypeRenderer and TypeMapper by removing redundant forwarding helpers. - Store typed signature sets in GenerationProfile instead of raw strings. - Consolidate duplicated test filesystem utilities. - Add focused JoinPointMember tests. - Update the WeaverGen2 architecture notes.
…e nested maps - SpecValidator: run checkTypeRef over typedef fields so unknown jpRef/typeDefRef/enumRef references fail at build() instead of producing uncompilable generated code - EnumDefEmitter: escape display/value strings emitted into Java string literals (reuse escapeJavaString) - convert-joinpoint-specification.js: split map arguments on top-level commas only so nested generic arguments parse correctly
When a spec does not call rootJoinPoint, fall back to the global join point's name instead of the literal 'joinpoint'. The global always exists, so root/rootAlias now always name a real join point (restores 'LaraJoinPoint' in LaraJoinPointSpecification.json). Applied to both JsonSerializer and WeaverAbstractGenerator.getRoot(). Clava (program) and DefaultWeaver (workspace) output is unchanged.
|
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.



No description provided.