問題タブ [rust-decl-macros]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - コンパイル エラーの原因となっている展開されたマクロ コードを確認するにはどうすればよいですか?
マクロに関連するコンパイル エラーが発生しました。
残念ながら、このマクロは再帰的であるため、コンパイラが何に不満を持っているのかを理解するのは困難です。さらに、行番号は私のコードではなく、展開されたマクロのようです。
展開されたマクロを表示するにはどうすればよいですか? これを捨てるためにrustc(またはもっと良いのはカーゴ)に渡すことができるフラグはありますか?
(このマクロはrust-mdoからのものですが、重要ではないと思います。)
rust - 親モジュールからマクロをインポート
クレート内でマクロを再利用するのに問題があります。
でマクロが定義されている場合./src/macros.rs
:
で使用され./src/lib.rs
ます:
このマクロが に表示されません./src/submod/lib.rs
:
エラーメッセージが表示されますerror: macro undefined: 'my_macro!'
。
この子モジュールにこのマクロをインポートする方法はありますsubmod
か?
rust - マクロ マッチング トークンの再帰的展開
私はbrainfuckプログラムを拡張するマクロを実装しようとしています(いくつかの単純なコードから始めた後、すでに解決策を考え出すのに問題がありました: How to parse single tokens in rust macros )。問題は、再帰マッチングのある時点で、最後に一致することは決してないということです:
マクロコードは次のとおりです。
custom からメソッドを展開することに基づいていますstruct
。完全なコード コンパイルの問題は、このプレイグラウンドで再現できます
私はこのマッチングにあまり自信がありません:
[$($t:tt)*] $($ts:tt)*
これは、 で囲まれたコードの部分を、[]
トークンが内部にあるもので、その後にトークンが続くものと一致させると考えました。しかし、それが機能するかどうかはわかりません。
私はしばらくこれを扱ってきましたが、完全に立ち往生しています。どんな種類の助けも大歓迎です。前もって感謝します!