問題タブ [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.

0 投票する
3 に答える
22974 参照

debugging - コンパイル エラーの原因となっている展開されたマクロ コードを確認するにはどうすればよいですか?

マクロに関連するコンパイル エラーが発生しました。

残念ながら、このマクロは再帰的であるため、コンパイラが何に不満を持っているのかを理解するのは困難です。さらに、行番号は私のコードではなく、展開されたマクロのようです。

展開されたマクロを表示するにはどうすればよいですか? これを捨てるためにrustc(またはもっと良いのはカーゴ)に渡すことができるフラグはありますか?

(このマクロはrust-mdoからのものですが、重要ではないと思います。)

0 投票する
1 に答える
2475 参照

rust - 親モジュールからマクロをインポート

クレート内でマクロを再利用するのに問題があります。

でマクロが定義されている場合./src/macros.rs:

で使用され./src/lib.rsます:

このマクロが に表示されません./src/submod/lib.rs:

エラーメッセージが表示されますerror: macro undefined: 'my_macro!'

この子モジュールにこのマクロをインポートする方法はありますsubmodか?

0 投票する
1 に答える
532 参照

rust - マクロ マッチング トークンの再帰的展開

私はbrainfuckプログラムを拡張するマクロを実装しようとしています(いくつかの単純なコードから始めた後、すでに解決策を考え出すのに問題がありました: How to parse single tokens in rust macros )。問題は、再帰マッチングのある時点で、最後に一致することは決してないということです:

マクロコードは次のとおりです。

custom からメソッドを展開することに基づいていますstruct完全なコード コンパイルの問題は、このプレイグラウンドで再現できます

私はこのマッチングにあまり自信がありません:

[$($t:tt)*] $($ts:tt)*これは、 で囲まれたコードの部分を、[]トークンが内部にあるもので、その後にトークンが続くものと一致させると考えました。しかし、それが機能するかどうかはわかりません。

私はしばらくこれを扱ってきましたが、完全に立ち往生しています。どんな種類の助けも大歓迎です。前もって感謝します!