Skip to content

Releases: actbit/AstFirst

0.2.2 - README 整備 + NuGet Description 英語化

Choose a tag to compare

@actbit actbit released this 28 Jun 06:56
7b9dbca

ドキュメント・メタデータの整備(機能・依存関係の変更はなし)。

📝 README 修正

  • Architecture 図: AstFirst.Runtime の target framework を net10.0netstandard2.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 互換性

Choose a tag to compare

@actbit actbit released this 28 Jun 02:38
0e8db6a

🔧 パッケージ構成の修正

nuget.org 利用者が生成コード(AstFirst.Core.Lexing/Parsing)を参照できない問題を解決。

  • AstFirst.Core を独立パッケージ化
  • AstFirst.RuntimeAstFirst.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] リスト表現

Choose a tag to compare

@actbit actbit released this 28 Jun 02:09
72d3276

クラス構造の制約を緩和し、文法定義をより簡潔に。

✨ 機能追加

  • 1クラス複数 [Rule] — 同じクラスに複数の [Rule] を定義可能。どの規則で reduce されたかは RuleName プロパティで判定し OnReduceswitch
  • 中間抽象クラス — 抽象基底クラスに共通プロパティを [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