Skip to content

Lang spec v3 - #106

Open
lm-sousa wants to merge 88 commits into
langspec-genericsfrom
langSpecV3
Open

lm-sousa wants to merge 88 commits into
langspec-genericsfrom
langSpecV3

Conversation

@lm-sousa

Copy link
Copy Markdown
Member

No description provided.

Copilot AI lite review requested due to automatic review settings August 28, 2026 20:53

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread LangSpec2/src/org/lara/langspec2/json/JsonSerializer.java Outdated
Comment thread LangSpec2/src/org/lara/langspec2/validation/SpecValidator.java
Comment thread WeaverGen2/src/org/lara/weavergen2/java/TypeMapper.java
Comment thread WeaverGen2/src/org/lara/weavergen2/emit/EnumDefEmitter.java Outdated
Comment thread Lara-JS/scripts/convert-joinpoint-specification.js Outdated
Comment thread WeaverGen2/src/org/lara/weavergen2/io/ArtifactWriter.java Dismissed
Comment thread WeaverGen2/src/org/lara/weavergen2/io/ArtifactWriter.java Dismissed
Comment thread WeaverGen2/src/org/lara/weavergen2/source/ConcreteJoinPointSources.java Dismissed
Comment thread WeaverGen2/src/org/lara/weavergen2/source/ConcreteJoinPointSources.java Dismissed
Comment thread WeaverGen2/src/org/lara/weavergen2/source/ConcreteSourceIndex.java Dismissed
Comment thread WeaverGen2/src/org/lara/weavergen2/source/ConcreteSourceParser.java Dismissed
Comment thread WeaverGen2/src/org/lara/weavergen2/source/ConcreteSourceParser.java Dismissed
Comment thread WeaverGen2/src/org/lara/weavergen2/source/ConcreteSourceStubFactory.java Dismissed
…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.
…ntinue the migration towards the new WeaverGen2
…the concrete classes they extend in AbstractJpGenerator
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
…y treating it as an action instead of the attribute it is defined as.
- 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
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.
@sonarqubecloud

sonarqubecloud Bot commented Sep 5, 2026

Copy link
Copy Markdown

@specs-feup specs-feup deleted a comment from sonarqubecloud Bot Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants