Expand description
syn::Expr ベースの Rust コード生成モジュール
C AST (crate::ast::Expr) から syn::Expr を構築し、 優先順位に基づく括弧挿入パスを経て正確な Rust コードを生成する。
Functions§
- addr_
of_ mut &raw mut exprを構築(C の&演算子に対応する生ポインタ取得)。- as_ptr
.as_ptr()メソッド呼び出しを付加- assign_
expr lhs = rhsを式として構築(plain assign)- assign_
op_ expr lhs op= rhsを式として構築(複合代入)- block_
with_ value { stmts...; value }ブロック式を構築- c_
assign_ op_ to_ syn_ compound AssignOp(C AST) → 複合代入用のsyn::BinOpを返す。- call
- 関数呼び出し
func(args...)を構築 - cast_
syn_ expr - 型名文字列から
as Tキャストを挿入(parse_type + insert_cast の統合版) - deref
- Deref
*exprを構築 - expr_
to_ string - syn::Expr を文字列に変換
- field_
access - フィールドアクセス
expr.fieldを構築 - ident
- syn::Ident を作成するヘルパー
- ident_
expr - 識別子を
syn::Expr::Pathとして構築(nameを式コンテキストで参照する) - if_else
- if-else 式を構築
- insert_
cast as Tキャストを挿入- int_lit
- 整数リテラルを作成
- is_
bool_ syn_ expr - syn::Expr が bool を返すかどうかを判定
- let_
stmt let name = value;文を構築- looks_
like_ pointer - syn::Expr がポインタっぽいかを文字列ヒントで判定 (syn::Expr には型情報がないため、メソッド名やキャストの型名で推定)
- method_
call - メソッド呼び出し
receiver.method(args...)を構築 - normalize_
parens - 式文字列の括弧を正規化する。
- null_
for_ type - null ポインタ式を型に合わせて生成
- parenthesize
- syn::Expr 木に必要な括弧 (Expr::Paren) を挿入する。
- parse_
type - 型名文字列から syn::Type をパース
- semi_
stmt - 式を
Stmt::Expr(_, Some(Semi))の文として構築 - strip_
all_ parens - syn::Expr ツリーからすべての Paren ラッパーノードを除去する。
- to_
syn_ binop - C の BinOp を syn::BinOp に変換
- wrap_
as_ bool - 式を bool に変換する