Releases: actbit/AstFirst
Releases · actbit/AstFirst
Release list
0.2.2 - README 整備 + NuGet Description 英語化
ドキュメント・メタデータの整備(機能・依存関係の変更はなし)。
📝 README 修正
- Architecture 図:
AstFirst.Runtimeの target framework をnet10.0→netstandard2.0(実際のパッケージ構成に合わせる)。AstFirst.Coreへの依存を明記。 - Tests 数: 279 → 293 (AstFirst.Tests 247 + Generator.Tests 46) に更新。
🌐 NuGet Description 英語化
AstFirst / AstFirst.Runtime / AstFirst.Core の Description(短説明)を英語化しました。nuget.org の検索結果・パッケージ一覧で英語表示になります。
AstFirst: "Parser generator: write grammar in plain C# classes and attributes; a Source Generator emits a Lexer, an LALR(1) Parser, partial AST nodes, and an OnSecondPass traversal at compile time."AstFirst.Runtime: "AstFirst runtime: grammar attributes ([Grammar]/[Pattern]/[Precedence]/[Skip]), AstNode, Token, ParseResult, and semantic-analysis helpers."AstFirst.Core: "AstFirst core: pure lexer (DFA) and LALR(1) parsing logic. No Roslyn dependency."
Full Changelog: v0.2.1...v0.2.2
0.2.1 - パッケージ構成修正 + .NET 6/8/10 互換性
🔧 パッケージ構成の修正
nuget.org 利用者が生成コード(AstFirst.Core.Lexing/Parsing)を参照できない問題を解決。
AstFirst.Coreを独立パッケージ化AstFirst.RuntimeがAstFirst.Coreに依存(パッケージ依存)AstFirst(Generator)がAstFirst.Runtimeに依存 → 推移で Core も
利用者は AstFirst をインストールするだけで、Runtime → Core が自動で入ります。
✅ .NET 6/8/10 互換性検証
- CI(
compatibility.yml)で .NET 6/8/10 SDK の matrix で動作確認(すべて pass) AstFirst.Generator(Microsoft.CodeAnalysis 4.13.0 ビルド)が .NET 6 SDK(Roslyn 4.x)でも動作することを確認AstFirst.Compat(net6/8/10 マルチターゲット)で最小文法のパースを検証
パッケージ
| パッケージ | バージョン |
|---|---|
AstFirst(Generator/analyzer) |
0.2.1 |
AstFirst.Runtime |
0.2.1 |
AstFirst.Core |
0.2.1(新規公開) |
Full Changelog: v0.2.0...v0.2.1
0.2.0 - 複数[Rule]・中間抽象・[Repeat] リスト表現
クラス構造の制約を緩和し、文法定義をより簡潔に。
✨ 機能追加
- 1クラス複数
[Rule]— 同じクラスに複数の[Rule]を定義可能。どの規則で reduce されたかはRuleNameプロパティで判定しOnReduceでswitch。 - 中間抽象クラス — 抽象基底クラスに共通プロパティを
[Rule]で宣言し、具象サブクラスが: base(...)で初期化(readonly維持・immutable)。 [Repeat]リスト表現 —[Repeat]でIReadOnlyList<T>に展開。Min=1(既定・1回以上)/Min=0(0回以上・空リスト可)。
📝 ドキュメント
- README / grammar-reference.md を現行
[Rule]static モデルに全面更新 - NuGet 英語 README: 相対リンクを GitHub 絶対 URL に変換(publish-nuget.yml に変換ステップ追加)
🔧 サンプル
- MiniC: Cons セル(
ConsStmt/NilProgram)→[Repeat(Min=0)]に移行
✅ テスト
- 全 293 テスト合格(Plus / Star / 中間抽象 / 多段階中間抽象 /
[Repeat]+中間抽象)
Full Changelog: v0.1.0...v0.2.0