私はこのパーサーhttp://mapage.noos.fr/~bpinon/cobol.jjから作業しており、画像をコンマで機能させるようにしています。区切り文字として画像文字列からのコンマをサポートしているようです。Cobolで他にどこでコンマが使用されているのか疑問に思っています。
乾杯
私はこのパーサーhttp://mapage.noos.fr/~bpinon/cobol.jjから作業しており、画像をコンマで機能させるようにしています。区切り文字として画像文字列からのコンマをサポートしているようです。Cobolで他にどこでコンマが使用されているのか疑問に思っています。
乾杯
COBOLにはいくつかの区切り文字があります。スペースが後に続くコンマはそれらの1つです。ただし、PICTURE文字列に見られるように、スペースが後に続かないコンマは区切り文字ではなく、PICTURE文字列の一部です。COBOLセパレーターの規則 は、それほど複雑ではありません。ピリオド、コンマ、セミコロンの後にスペースが続く場合は、常に区切り文字であることに注意してください。厳密に言えば、スペースは必要ですが、いくつかのコンパイラー(IBM Enterprise COBOL for z / OSなど)は、コンマ、ピリオド、セミコロンの後にスペースがない場合、それらが表示されるコンテキストに基づいて区切り文字として認識できることがよくあります(警告発行されますが、有効なオブジェクトモジュールは引き続き生成されます)。
特定の質問に答えるには:区切り文字のコンマは、空白が表示される可能性のある場所であればどこにでも表示できます。PICTURE文字列のコンテキスト内のコンマは重要であり、スピアレーターとしては扱われません(つまり、その後に空白スペースを続けることはできません)。
COBOL PICTURE文字列は、区切り文字スペース、区切り文字のコンマ、区切り文字のセミコロン、または区切り文字のピリオドによってのみ区切られることに注意してください。
堅牢なCOBOLパーサーを構築する場合、特別な注意が必要なCOBOLソーステキストの3つの領域(「テキスト操作」フェーズが完了した後)があることにすぐに気付くでしょう。
「その他すべて」のチャンクはソースファイルの大部分を構成しますが、他の2つの項目をほとんど無視しながら、それを解析することに焦点を当てる傾向があります。ただし、PICTURE文字列は、実際には処理するのにかなり複雑なエンティティです。コメントエントリはばかげているだけで、テキスト操作中に削除される可能性があります。
これを深く理解する前に、使用している文法は、一般に「テキスト操作」と呼ばれるものが完了した後にのみCOBOLソーステキストを認識するように設計されていることを認識してください。これは、COPY / REPLACEディレクティブが展開され、継続行が処理され、他の多くのCOMPILER指示ステートメントが処理される前段階です。このステップを実行するために必要な作業を過小評価しないでください。
COBOL用の堅牢なパーサーを構築することは、本当に困難な作業です。正しくなるまでには何年もかかる場合があります。言語が「業界」の標準解析手法を使用して解析されるように設計されていないことと、すべてのCOBOLコンパイラベンダーが標準に対して独自の固有の差異を持っていることが理由の1つです。