マクロ呼び出しで構成されたユーザー入力ファイルを処理するプログラムを作成しました(ほとんどはデバッグしました)。私は今、ユーザー入力ファイルの完全なエラーチェックを追加したいと思います。このようなファイルで構文エラー&のセマンティックエラーチェックを実行するための一般的なベストプラクティスアプローチはありますか?私が考えることができる3つの基本的なアプローチは、1)ファイルを検証するための別々の前処理プログラムを書くこと、2)BNFを指定して市販のコンパイラコンパイラをプリプロセッサとして使うこと、3)エラーチェックを既存のプログラム3番目のアプローチは、セマンティックチェックを深めることができるため、より良いかもしれないようです。これらのアプローチや他のアプローチについては、賛否両論を知りたいです。&ユーザー入力ファイルのエラーチェック
0
A
答えて
0
ご協力ありがとうございました&あなたの経験のためにBRFennPocockをご利用ください。私はあなたのアドバイスを取って、既存のプログラムにエラーチェックを埋め込みますが、すべてをキャッチしようとするとエラー2となる傾向があります。事前ホワイトリストはありませんが、ユーザーの入力から1つ作成し、すべての用途の間で一貫性を確認できます(スペルミスなど)。大文字のアサートの&チェック・タイプは、ロード時に発生するように見えます。再度、感謝します。
関連する問題
- 1. Javaのテキストファイルを使用したユーザー入力のエラーチェック
- 2. ユーザー入力ファイル名を開くファイル
- 3. phpフォーム - エラーチェックと出力
- 4. ファイルCへのユーザー入力プログラミング
- 5. YAMLファイルのユーザー入力をエスケープする
- 6. ユーザー入力をtxtファイルにエクスポート
- 7. C - ユーザー入力ファイル名を使用
- 8. ユーザー入力のパスインジェクション
- 9. スカラ:ユーザーの入力
- 10. タイマーカウントダウンのユーザー入力
- 11. ユーザー入力
- 12. ユーザー入力
- 13. ユーザー入力
- 14. コマンドラインからのファイル入力とユーザー入力を結合する方法
- 15. ユーザー入力をCXに入力
- 16. モノデベロッパーC#ユーザー入力
- 17. Talendユーザー入力フォーム
- 18. C#XNA - ユーザー入力
- 19. Qt3d qmlユーザー入力
- 20. 取得ユーザー入力
- 21. カプセル化(ユーザー入力)
- 22. NSISユーザー入力ページ
- 23. ファイル入力にファイルを入力
- 24. ユーザー入力のユニットテスト - Java
- 25. C#の後藤ユーザー入力
- 26. forloopのユーザー確認入力
- 27. ユーザー入力エラーの回避
- 28. TextAreaコントロールのユーザー入力
- 29. コンセプトNへのユーザー入力
- 30. Python - ユーザーからの入力
あなたの入力は、連続したLispフォームとして読み込むことができますか、パーサーが必要ですか? – coredump
入力ファイルがリスフォーム(依存関係のために順序どおりに処理する必要のある個々のマクロ呼び出し)の一覧にすぎないので、トップレベル(通常のコンパイル以外)の独立した解析が便利かどうかはわかりません。しかし、いくつかのマクロ呼び出しで提供されるユーザー情報は、ユーザーの指定された問題を解決するためにベースラインプログラムによって使用される短い言語的なロジックの「プログラム」で構成されています。だから、いくつかの解析が含まれています。しかし、さまざまなロジックプログラム要素を処理するためのコードは、既に、lispでコード化された作業ベースラインの一部です。 – davypough
これはStack Overflow形式で「答える」かどうか分かりませんが、ちょっとした例が必要になりますが、いくつか似たようなことをして、検証でマクロ拡張を散らばってしまいました。呼び出し元がそれほど「洗練されていない」ほど、入力の検証はより多く、冗長になります。通常は 'Assert'と' Check-Type'がたくさんあり、冗長で詳細なエラーメッセージがあります。 – BRFennPocock