Skip to content

Conversation

@keyboardDrummer
Copy link
Contributor

@keyboardDrummer keyboardDrummer commented Jan 8, 2026

Changes

  1. Move Laurel grammar from a .lean into a .st file, so it can be consumed by the javaGen command
  2. Do not let the Laurel grammar use fn or type, since those are not needed and are not supported by javaGen
  3. For source code positions, store byte code array offsets in the AST nodes, so that when parsing programs from Ion, these can be filled in without having access to original source files
  4. Enable the Ion deserialization code to deserialize multiple files where each file has a filepath and a program AST.
  5. Add a laurelAnalyze command to StrataMain that for now will serve as a root for Laurel related interactions. I can imagine that in the future we will introduce an analyze command that is agnostic to the dialect used.

Testing

  • Laurel pipeline changes (1-3) are covered by existing tests
  • (4) Added a test for the newly introduced Ion.fromIonFiles
  • (5) No test added, although I've successfully used this command from https://github.com/aws/jverify/pull/372

fabiomadge and others added 30 commits December 23, 2025 03:33
- Use writeJavaFiles helper in Test 11 (keyboardDrummer)
- Document Test 12's dependency on comprehensive.ion (keyboardDrummer)
- Fail if javac not found instead of skip (keyboardDrummer)
- Use panic! for malformed SyntaxCat (joehendrix)
- Add doc comments to GeneratedFiles and NameAssignments (joehendrix)
- Collect warnings for unsupported type/function declarations (joehendrix)
PR strata-org#293 added dots to valid identifier characters, which broke qualified
name resolution (e.g., 'Simple.Expr' was parsed as one identifier instead
of dialect 'Simple' + name 'Expr').

Fix: In translateQualifiedIdent, split dotted identifiers on the first
dot to extract dialect and name components. Also strip guillemets that
the parser adds around special identifiers.
- Fail on Init.TypeExpr (internal DDM machinery)
- Fail on type/function declarations instead of warning
- Remove warnings mechanism from GeneratedFiles
- Fix cross-dialect category collision (A.Num vs B.Num)
  - Track QualifiedIdent instead of String for refs
  - Prefix with dialect name when names collide
- Replace gradle with plain javac/java in regenerate script
- Add test for cross-dialect name collision
joscoh
joscoh previously approved these changes Jan 15, 2026
joehendrix
joehendrix previously approved these changes Jan 16, 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.

4 participants