Support struct-like variants in `parser.py`
まだ誰も着手していません。
評価
調査の方向性
parser.py から始め、既存の enum variants の処理を issue の VariantsShape の例と比較します。Single フィールドと Multiple フィールドが parser の K syntax にどのようにマッピングされるかを確認し、そのうえで両方の struct-like 形式が受け付けられ、正しく表現されることを検証します。理想的な実装では、可能な場合に中間の mk constructors を削除します。
索引モデルが issue の本文から書いたものです。
説明
Consider
pub enum VariantsShape {
Single { index: VariantIdx },
Multiple {
tag: Scalar,
tag_encoding: TagEncoding,
tag_field: usize,
variants: Vec<LayoutShape>,
},
}
This can be modeled with proper parser support in K as follows:
syntax VariantsShape ::= variantsShapeSingle(VariantsShapeSingle) [group(mir-enum), symbol(VariantsShape::Single)]
| variantsShapeMultiple(VariantsShapeMultiple) [group(mir-enum), symbol(VariantsShape::Multiple)]
syntax VariantsShapeSingle ::= mk(index: VariantIdx) [group(mir---index)]
syntax VariantsShapeMultiple ::= mk ( tag: Scalar
, tagEncoding: TagEncoding
, tagField: MIRInt
, variants: LayoutShapes
) [group(mir---tag--tag-encoding--tag-field--variants)]
The ideal solution would be to eliminate the mk constructors, and model the struct-like variants directly, e.g.:
syntax VariantsShape ::= variantsShapeSingle(index: VariantIdx) [group(mir-enum---index), symbol(VariantsShape::Single)]
| variantsShapeMultiple ( tag: Scalar
, tagEncoding: TagEncoding
, tagField: MIRInt
, variants: LayoutShapes
) [group(mir-enum---tag--tag-encoding--tag-field--variants), symbol(VariantsShape::Multiple)]
- 主要言語
- Python
- スター
- 55
- フォーク
- 5
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
runtimeverification/mir-semantics のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 65/100
-
Inconsistent KMIR versions across project対応中かも @dkcumming が 103 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
runtimeverification/mir-semantics#1078 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
runtimeverification/mir-semantics#1070 · コメント 2 件 ·
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
runtimeverification/mir-semantics#1067 ·
-
area:semantics kind:refactor priority:p1 status:triage type:task
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
runtimeverification/mir-semantics#1011 · コメント 1 件 ·
runtimeverification/mir-semantics の issue をすべて見る
似ている issue
-
bug P2 rust
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
jscott3201/rusty-bacnet#2085 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
evarness-ai/iris-harness#401 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
sistemicorp/scripts#62 ·
-
area/mac help wanted needs-qa
難易度 1/5 1時間未満 初心者へのやさしさ 76/100