このディレクトリの索引
%
%  文字列検索/8
%

文字列検索(_文字列,_切り取り開始文字列ならび,_切り取り終了文字列ならび,_切り取り開始以前文字列,_切り取り開始文字列,_切り取り文字列,_切り取り終了文字列,_残り文字列) :-
        atom_chars(_文字列,_文字ならび),
        切り取り文字列ならびを文字ならびのならびに変換(_切り取り開始文字列ならび,_切り取り終了文字列ならび,_切り取り開始文字ならび候補,_切り取り終了文字ならび候補),
        切り取り文字列まで読み飛ばし(_文字ならび,_切り取り開始文字ならび候補,_切り取り開始以前文字ならび,_切り取り開始文字ならび,_残り文字ならびの一),
        文字ならび切り取り(_残り文字ならびの一,_切り取り終了文字ならび候補,_切り取り文字ならび,_切り取り終了文字ならび,_残り文字ならび),
        切り取り文字列文字ならび変換(_切り取り開始以前文字ならび,_切り取り文字ならび,_切り取り終了文字ならび,_残り文字ならび,_切り取り開始文字ならび,_切り取り開始以前文字列,_切り取り文字列,_切り取り終了文字列,_残り文字列,_切り取り開始文字列).


切り取り文字列ならびを文字ならびのならびに変換(_切り取り開始文字列ならび,_切り取り終了文字列ならび,_切り取り開始文字ならび候補,_切り取り終了文字ならび候補) :-
        findall(_切り取り開始文字ならびの一,(
                    member(_切り取り開始文字列の一,_切り取り開始文字列ならび) ,
                    atom_chars(_切り取り開始文字列の一,_切り取り開始文字ならびの一)),
                _切り取り開始文字ならび候補),
        findall(_切り取り終了文字ならびの一,(
                    member(_切り取り終了文字列の一,_切り取り終了文字列ならび),
                    atom_chars(_切り取り終了文字列の一,_切り取り終了文字ならびの一)),
                _切り取り終了文字ならび候補).

切り取り文字列文字ならび変換(_切り取り開始以前文字ならび,_切り取り文字ならび,_切り取り終了文字ならび,_残り文字ならび,_切り取り開始文字ならび,_切り取り開始以前文字列,_切り取り文字列,_切り取り終了文字列,_残り文字列,_切り取り開始文字列) :-
        atom_chars(_切り取り開始以前文字列,_切り取り開始以前文字ならび),
        atom_chars(_切り取り文字列,_切り取り文字ならび),
        atom_chars(_切り取り終了文字列,_切り取り終了文字ならび),
        atom_chars(_残り文字列,_残り文字ならび),
        atom_chars(_切り取り開始文字列,_切り取り開始文字ならび).


切り取り文字列まで読み飛ばし(_文字ならび,[],[],[],_文字ならび) :- !.
切り取り文字列まで読み飛ばし(_文字ならび,_切り取り開始文字ならび候補,[],_切り取り開始文字ならび,_残り文字ならび) :-
        member(_切り取り開始文字ならび,_切り取り開始文字ならび候補),
        append(_切り取り開始文字ならび,_残り文字ならび,_文字ならび).
切り取り文字列まで読み飛ばし([A|R1],_切り取り開始文字ならび候補,[A|R2],_切り取り開始文字ならび,R3) :-
        切り取り文字列まで読み飛ばし(R1,_切り取り開始文字ならび候補,R2,_切り取り開始文字ならび,R3).


文字ならび切り取り([],_,[],[],[]) :- !.
文字ならび切り取り(_文字ならび,[],_文字ならび,[],[]) :- !.
文字ならび切り取り(_残り文字ならびの一,_終了文字ならび候補,_切り取り文字ならび,_終了文字ならび,_残り文字ならび) :-
        member(_終了文字ならび,_終了文字ならび候補),
        append(_終了文字ならび,_残り文字ならび,_終了文字ならびの二),
        append(_切り取り文字ならび,_終了文字ならびの二,_残り文字ならびの一).