Skip to content

Migration to YarnSpinner 3.0#278

Draft
Galdormin wants to merge 2 commits into
YarnSpinnerTool:mainfrom
Galdormin:migration_3.0
Draft

Migration to YarnSpinner 3.0#278
Galdormin wants to merge 2 commits into
YarnSpinnerTool:mainfrom
Galdormin:migration_3.0

Conversation

@Galdormin
Copy link
Copy Markdown
Contributor

@Galdormin Galdormin commented Apr 1, 2026

YarnSpinnerTool/YarnSpinner@v2.5.0...v3.0.0

Compiler

  • ➕ YarnSpinner.Compiler/Analysis/BasicBlock.cs
  • ➕ YarnSpinner.Compiler/Analysis/InstructionCollectionExtensions.cs
  • ➖ YarnSpinner.Compiler/Builders/DeclarationBuilder.cs
  • ➕ YarnSpinner.Compiler/Builders/EnumTypeBuilder.cs
  • ➖ YarnSpinner.Compiler/Builders/FunctionTypeBuilder.cs
  • ❌ YarnSpinner.Compiler/CodeGenerationVisitor.cs
  • ➖ YarnSpinner.Compiler/CompilationJob.cs
  • ➖ YarnSpinner.Compiler/CompilationResult.cs
  • ➖ YarnSpinner.Compiler/Compiler.cs
  • ➖ YarnSpinner.Compiler/DebugInfo.cs
  • ➖ YarnSpinner.Compiler/Declaration.cs
  • ❌ YarnSpinner.Compiler/DeclarationVisitor.cs
  • ➖ YarnSpinner.Compiler/ErrorListener.cs
  • ➖ YarnSpinner.Compiler/ErrorStrategy.cs
  • ➕ YarnSpinner.Compiler/FileCompiler.cs
  • Antlr generation is in YarnSpinner.Compiler/Grammars
  • ➕ YarnSpinner.Compiler/ICodeEmitter.cs
  • ➖ YarnSpinner.Compiler/IndentAwareLexer.cs
  • ➖ YarnSpinner.Compiler/JumpGraphListener.cs
  • ➕ YarnSpinner.Compiler/NodeGroupCompiler.cs
  • ➖ YarnSpinner.Compiler/Project.cs
  • ➕ YarnSpinner.Compiler/SmartVariableCompiler.cs
  • ➖ YarnSpinner.Compiler/StringInfo.cs
  • ➖ YarnSpinner.Compiler/StringTableManager.cs
  • ➕ YarnSpinner.Compiler/StructuredCommandParser.cs
  • ❌ YarnSpinner.Compiler/TypeCheckVisitor.cs
  • ➕ YarnSpinner.Compiler/TypeCheckerListener.cs
  • ❌ YarnSpinner.Compiler/TypeDeclarationListener.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../ConjunctionConstraint.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../DisjunctionConstraint.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../EnumerablesExtension.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../FalseConstraint.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../TrueConstraint.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../TypeConstraint.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../TypeConvertibleConstraint.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../TypeEqualityConstraint.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../TypeHasMemberConstraint.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/.../TypeHasNameConstraint.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/Solver.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/Substitution.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/Terms/ITypeExtensions.cs
  • ➕ YarnSpinner.Compiler/TypeSolver/Terms/TypeVariable.cs
  • ➖ YarnSpinner.Compiler/Upgrader/LanguageUpgrader.cs
  • ❌ YarnSpinner.Compiler/Upgrader/V1toV2/*
  • ➖ YarnSpinner.Compiler/Utility.cs
  • ➕ YarnSpinner.Compiler/Visitors/CodeGenerationVisitor.cs
  • ➕ YarnSpinner.Compiler/Visitors/DiagnosticsGeneratorVisitor.cs
  • ➖ YarnSpinner.Compiler/Visitors/LiteralValueVisitor.cs
  • ➕ YarnSpinner.Compiler/Visitors/NodeGroupVisitor.cs
  • ➖ YarnSpinner.Compiler/Visitors/PreviewFeatureVisitor.cs
  • ➖ YarnSpinner.Compiler/Visitors/StringTableGeneratorVisitor.cs
  • ➕ YarnSpinner.Compiler/Visitors/StyleWarningsVisitor.cs

Tests

  • ➖ YarnSpinner.Tests/DialogueTests.cs
  • ➖ YarnSpinner.Tests/ErrorHandlingTests.cs
  • ➖ YarnSpinner.Tests/LanguageTests.cs
  • ➖ YarnSpinner.Tests/MarkupTests.cs
  • ➖ YarnSpinner.Tests/ProjectFileTests.cs
  • ➖ YarnSpinner.Tests/ProjectTests.cs
  • ➕ YarnSpinner.Tests/SaliencyTests.cs
  • ➕ YarnSpinner.Tests/SmartVariableTests.cs
  • ➖ YarnSpinner.Tests/TagTests.cs
  • ➖ YarnSpinner.Tests/TestBase.cs
  • ➖ YarnSpinner.Tests/TestPlan.cs
  • ANTlR TestPlan
  • ➖ YarnSpinner.Tests/TypeTests.cs
  • ➖ YarnSpinner.Tests/UpgraderTests.cs

Runtime

  • ➖ YarnSpinner/Analyser.cs
  • YarnSpinner/CRC32.cs (no need we use a library)
  • ➖ YarnSpinner/Dialogue.cs
  • ➖ YarnSpinner/Library.cs
  • ➕ YarnSpinner/NullableAttributes.cs
  • ➖ YarnSpinner/Program.cs
  • ➕ YarnSpinner/Saliency/BestLeastRecentlyViewedSaliencyStrategy.cs
  • ➕ YarnSpinner/Saliency/BestSaliencyStrategy.cs
  • ➕ YarnSpinner/Saliency/ContentSaliencyOption.cs
  • ➕ YarnSpinner/Saliency/FirstSaliencyStrategy.cs
  • ➕ YarnSpinner/Saliency/IContentSaliencyStrategy.cs
  • ➕ YarnSpinner/Saliency/RandomBestLeastRecentlyViewedSaliencyStrategy.cs
  • ➕ YarnSpinner/SmartVariableEvaluationVirtualMachine.cs
  • ➖ YarnSpinner/Types/AnyType.cs
  • ➖ YarnSpinner/Types/BooleanType.cs
  • ➕ YarnSpinner/Types/EnumType.cs
  • ➕ YarnSpinner/Types/ErrorType.cs
  • ➖ YarnSpinner/Types/FunctionType.cs
  • ❌ YarnSpinner/Types/IBridgeableType.cs
  • ➖ YarnSpinner/Types/IType.cs
  • ➖ YarnSpinner/Types/NumberType.cs
  • ➖ YarnSpinner/Types/StringType.cs
  • ➖ YarnSpinner/Types/TypeBase.cs
  • ➖ YarnSpinner/Types/TypeUtil.cs
  • ➕ YarnSpinner/Types/Types.cs
  • ➖ YarnSpinner/Value.cs
  • ➖ YarnSpinner/VirtualMachine.cs
  • (Unsure) YarnSpinner/YarnSpinner.Markup
    • ➖ YarnSpinner/YarnSpinner.Markup/IAttributeMarkerProcessor.cs
    • ➖ YarnSpinner/YarnSpinner.Markup/LineParser.cs
    • ➖ YarnSpinner/YarnSpinner.Markup/MarkupParseResult.cs
    • ➖ YarnSpinner/YarnSpinner.Markup/MarkupValueType.cs
    • ❌ YarnSpinner/YarnSpinner.Markup/NoMarkupTextProcessor.cs
    • ➖ YarnSpinner/YarnSpinner.Markup/TagType.cs
  • (auto) YarnSpinner/YarnSpinner.cs

@Galdormin
Copy link
Copy Markdown
Contributor Author

With the 3.0, YarnSpinner update its ANTLR version to 4.13.1. However, it seems that the rust version (not updated since 2022) is not enough to update it easily. Some functions are missing.

If someone can help me here, I'm not familiar with ANTLR and coulnd't find anything to create those functions.

Missing functions in yarnspinerlexer.rs:

  • SetInWhenClause
  • IsInWhenClause
  • IsEndOfCommandKeyword

@tacuna
Copy link
Copy Markdown

tacuna commented May 1, 2026

@Galdormin I've searched a bit and it seems like proper antlr (for) rust support is in an impasse as per this discussion antlr4rust/antlr4#24. This one seems the way to go https://crates.io/crates/antlr4rust and has been updated 6 month ago, that said the author redirects to https://github.com/antlr4rust/antlr4 (last commit March 2026) as per rrevenantt/antlr4rust#91 (comment) so not sure how long it will be maintained for but it might be a short term solution?

Not familiar with ANTLR at all, just chipping in.

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.

2 participants