public class CommentLineParser
extends java.lang.Object
CommentLineParser.java は、ファイルを行単位に処理して、コメントを除去するクラスです。
1行分の文字列を読み取って、コメント部分を削除した文字列を返します。
ブロックコメントの状態や、コメント除外の状態を管理しています。
オブジェクト作成後、line( String ) メソッドに、ファイルから読み取った1行分の文字列を渡せば、
コメントが除外された形で返されます。
コメントが除去された行は、rTrim しますが、行の削除は行いません。
これは、Grep等で、文字列を発見した場合に、ファイルの行番号がずれるのを防ぐためです。
逆に、Diff等で、複数のコメント行は、1行の空行にしたい場合や、空行自体をなくして
比較したい場合は、戻ってきた行が、空行かどうかで判定して呼び出し元で処理してください。
引数の行文字列が、null の場合は、null を返します。(読み取り行がなくなった場合)
文字列くくり指定 は、例えば、ラインコメント(//) が、文字列指定("//") や、"http://xxxx" などの
プログラム本文で使用する場合のエスケープ処理になります。
つまり、文字列くくり指定についても、IN-OUT があり、その範囲内は、コメント判定外になります。
※ 6.3.1.1 (2015/07/10)
コメントセットを、add で、追加していく機能を用意します。
現状では、Java,ORACLE,HTML のコメントを意識せず処理したいので、すべてを
処理することを前提に考えておきます。
※ 6.4.0.2 (2015/12/11)
行コメントが先頭行のみだったのを修正します。
og:comment タグを除外できるようにします。そのため、
終了タグに、OR 条件を加味する必要があるため、CommentSet クラスを見直します。
可変長配列を使うため、文字列くくり指定を前に持ってきます。| 5.7.4.0 (2014/03/07) 新規追加 |
| 6.3.1.1 (2015/07/10) 内部構造大幅変更 |
| コンストラクタと説明 |
|---|
CommentLineParser(java.lang.String sufix)
処理するコメントの種類を拡張子で指定するコンストラクターです。
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
java.lang.String |
line(java.lang.String inLine)
1行分の文字列を読み取って、コメント部分を削除した文字列を返します。
|
static void |
main(java.lang.String[] args)
このクラスの動作確認用の、main メソッドです。
|
public CommentLineParser(java.lang.String sufix)
sufix - 拡張子| 6.4.0.2 (2015/12/11) sufix によるコメント処理方法の変更。 |
| 6.4.1.0 (2016/01/09) comment="***"のコメント処理方法の追加。 |
| 6.4.1.1 (2016/01/16) sufixを小文字化。 |
| 6.8.1.7 (2017/10/13) COMMENT ON で始まる行(大文字限定)は、コメントとして扱う |
public java.lang.String line(java.lang.String inLine)
inLine - 1行の文字列| 5.7.4.0 (2014/03/07) 新規追加 |
| 6.3.1.1 (2015/07/10) CommentSet で管理します。 |
public static void main(java.lang.String[] args)
args - コマンド引数配列| 6.3.1.0 (2015/06/28) nioを使用すると UTF-8とShuft-JISで、エラーになる。 |
| 6.5.0.1 (2016/10/21) CharacterCodingException は、OgCharacterException に変換する。 |
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.