私はBison文法ファイルを700行長く伸ばしています。私はそれを分裂させようと努力しましたが、私の言語に複雑さを加えると、すべてのルールを管理し整理するのが難しくなります。私は#include
などのバイソン相当物を何かする方法を探してみました。それで、少なくともテキスト的に分割して乾燥させることができました。メイクファイルのハックなどに頼らずに文法を小さなモジュールに分割する方法はありますか?Bison文法を小さな文法ファイルに分割する
0
A
答えて
2
Bisonには、Cの#include
と同様の機能がありません。
バイソンレシピにプリプロセッサステップを追加することは、メイクファイルのハックではなく、make
の予想されるユースケースです。
cpp
をbisonファイルに使用するのはちょっと難しいですが、プロローグに#define
というディレクティブを使用する傾向があるためですが、他のプリプロセッサもあります。簡単な場合は、cat
を使用してください。
0
代わりの分割アップ文法そのものを、あなたはルール体が関数を呼び出すことによってワンライナーのほとんどの配列にそれを凝縮することができます
foo : ID bar '{' whatever_list '}' { $$ = ast_node_foo($1, $2, $4); }
;
構文指向変換方式レストの詳細これらの機能では、モジュールに分割することができます。
0
btyaccは、複数のファイルから
%include bar.y /* inserts the contents of bar.y at this point */
を読むために%include
をサポートしているyaccの変異体であるbtyaccは、POSIXのYACCのすべてをサポートしていますが、それだけでしかし、バイソン拡張子のカップルをサポートしています。
+0
興味深い。 btyaccとbisonの違いについて書かれていますか?私は基本的にすべてのディストリビューションのためのパッケージを持っているものに固執したいと思います。 '%include'のサポートが私を船に乗せるのに十分であるとは確信していません。 –
関連する問題
- 1. C/Bison文法エラー
- 2. PHP文字列を小さなフォームファクタに分割する
- 3. Javaの文字列を小さなリストに分割するリスト?
- 4. 大きなtxtファイルを小さなtxtファイルに分割する方法
- 5. Bison文法の警告
- 6. リスト内の長い文字列を小さなリストに分割
- 7. 文字を分割する方法
- 8. 文字列を分割する方法
- 9. イメージを複数の小さなイメージに分割する方法
- 10. 配列を小さな配列に分割する方法は?
- 11. 大きなテキスト文書を複数の小さなテキストファイルに分割する
- 12. 大規模なXMLファイルを小さな塊に分割する
- 13. 25mb .txtファイルをテキスト区切り文字を使用して小さなファイルに分割する
- 14. 文字列を部分に分割する方法 - ローマ数字
- 15. 文字列を文字配列に分割する最も簡単な方法
- 16. boost :: split:文字列を文字と分割する方法は?
- 17. テキストを小さなファイルに分割するJavaライブラリ
- 18. ファイル内の接続された文字を分割する方法
- 19. スピリット文法文字数で文字列を分割するには
- 20. Swiftで小数点以下の文字列を分割する方法は?
- 21. 特殊文字と小文字/大文字のトークンを分割するカスタムアナライザ
- 22. PHPが異なる文字に分割された文字列
- 23. C#優雅な方法で文字列を分割する
- 24. 特別な文字を分割する方法
- 25. Bison/Lemonファイルの文法または仕様
- 26. 分割された文字列を重複しないセグメントに分割する
- 27. 大きなファイルをPHPで多数の小さなファイルに分割する
- 28. コンマで区切られた文字列を小さな文字列に分割する
- 29. 大規模なVSソリューションをより小さなソリューションに分割する方法
- 30. Gerritの大きなパッチを小さなパッチに分割する方法
私は、私のインタラクティブなコンパイルのフィードバックをvimで動作させたいと考えていましたが、それは行きます。 'cat'それはそうです。ありがとう! –