入力ファイル(ユーザによって変更されている場合もあれば変更されていない可能性もあります)から文字列を読み込みたいとします。私はこの文字列を、固定数の引数で呼び出されるフォーマット指令として扱いたいと思います。しかし、私はいくつかのフォーマット指令(特に~/
が頭に浮かぶ)が関数呼び出しを挿入するために潜在的に使用される可能性があることを理解しており、このアプローチは本質的に安全ではありません。Common Lispで書式指令を安全に解析する
Common Lispの中のデータを解析するread
を使用する場合、言語が#.
コードインジェクションを無効にするnil
に設定することができる*read-eval*
動的変数を提供します。私は、フォーマットインジケータの内部でコードインジェクションや任意の関数呼び出しを防ぐようなものを探しています。
ありがとうございました。私は無限ループ問題については考えていませんでした。このような問題があると、 'format'を微調整しようとするよりも、フォーマット指定子のために自分のマイクロ言語を書くことになるでしょう。 –
@SilvioMayoloこれも良いアプローチです。しかし、他のフォーマットが存在するかどうかを確認するのに時間をかけてください:私は 'cl-interpol'について考えていますが、他のフォーマットがあるかもしれません。がんばろう! – coredump
反復構造に関する素晴らしい点! –