Skip to main content

Module syn_codegen

Module syn_codegen 

Source
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 に変換する