おはようございます。
約4、5年ぶりの質問投稿です。
環境は
win10
delphi10.1berlin
になります。
今作っている仕組みは、編集ファイルを読み取って、
それを単語化し、
更に[.]で繋がっている単語を関連づけて、
無理矢理補完が利くように作り込んでいます。
本題ですが、この方式だと、
完全一致した単語のみに補完リストが
出来上がるようになってしまいます。
何とかして、ソースを解釈して、
その単語がどのオブジェクト、
どのコンポーネントかを、
判別し、候補を列挙する仕組みは
ないでしょうか?
または、その様なライブラリのようなものは
ありますでしょうか?
ソースは後ほどアップ致します。
それではよろしくお願いいたします。
Lynaさんが詳しそうな話題ですが、ここは見てないだろうな…
多分こういうのを使うのだと思います。
RomanYankovsky/DelphiAST: Abstract syntax tree builder for Delphi
https://github.com/RomanYankovsky/DelphiAST
>通りすがり さん
ご返信ありがとうございます。
GItHubのリンク見てみました。
まだソースは動かしてはいませんが、すごく参考にはなりそうです。
因みに、以下の様なものを組んでいます。
「';:=''"!$%&+-*`@~^\|/><?()[]{}, '」の部分を差し替え可能にして、
多言語対応にして、多少緩いけれども、幅の広いコード補完を目指しています。
また、問題のオブジェクトとコンポーネントの認識は、
放り込んだソースの宣言部分を解釈し、あらかじめ登録しておいた予約語と
引っ掛ければ、抽出、分解、解釈は出来そうな気がしないでもないのですが・・・。やってみないとわからないですが。。。
function bunkatu(st,st2:TStringList):boolean;
var
i:integer;
st3:TStringList;
s:string;
begin
st3 := TStringList.Create;
st3.Clear;
s:= ';:=''"!$%&+-*`@~^\|/><?()[]{}, ';
//st.Text := StringReplace(st.Text, ',', char(13), [rfReplaceAll]);
for i := 0 to length(s) -1 do begin
st.Text := StringReplace(st.Text, s[i] , char(13), [rfReplaceAll]);
end;
for i := 0 to st.Count -1 do begin
if 0 < ansipos('.',' ' + st[i]) then begin
if -1 = st3.IndexOf(st[i]) then begin
st3.Add(st[i]);
end;
end;
end;
st2.text := st3.Text;
st3.Free;
end;
function bunkatu2(st:string;st2:TStringList):boolean;
var
i,i1:integer;
st3:TStringList;
s:string;
begin
st3 := TStringList.Create;
st3.Clear;
s:= '.';
//st.Text := StringReplace(st.Text, ',', char(13), [rfReplaceAll]);
//for i := 0 to length(s) -1 do begin
st3.Text := StringReplace(st, s , char(13), [rfReplaceAll]);
//end;
i1 := 0;
for i := 0 to st3.Count -1 do begin
if st3[i] <> '' then begin
if i1 = 0 then begin
if st3.Count -1 > i then
if st3[i+1] <> '' then begin
st2.Add(st3[i]+',');
inc(i1);
end;
end else begin
st2[st2.Count -1] := st2[st2.Count -1] + st3[i];
i1 := 0;
end;
end;
end;
st3.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
st1,st2,st3:TStringList;
i,i1:integer;
begin
st1 := TStringList.Create;
st1.Clear;
st2 := TStringList.Create;
st2.Clear;
st3 := TStringList.Create;
st3.Clear;
if not form1.OpenDialog1.Execute then
exit;
st1.LoadFromFile(form1.OpenDialog1.FileName);
bunkatu(st1,st2);
st1.Clear;
for i := 0 to st2.Count -1 do begin;
st1.Clear;
bunkatu2(st2[i],st1);
for i1 := 0 to st1.Count -1 do begin
if -1 = st3.IndexOf(st1[i1]) then begin
st3.Add( st1[i1] );
end;
end;
end;
memo1.Lines.Text := st3.Text;
memo1.Lines.SaveToFile( ExtractFilePath( ParamStr( 0 ) ) + 'List.csv' );
end
単純に、変数名、クラス名、関数名からなるリストを作成し、キャレット位置の変数名、関数名と比較するだけの作業になりますね。
の後ろに続く変数、クラス名を取得し、その変数にぶら下がる関数名(ピリオド以降の単語)が見つかったらリストに追加していけばよいのではないでしょうか。
じぶんでも同様の機能を作成したことはありますが、例えばなどのように、クラスは違えど基底クラス共通の関数を補完するとき、一覧に出てこずもどかしくなり、最終的にはクラスを無視して、単純に単語一覧を常に表示するようにした経緯はあります。最初の一文字ふた文字をいれれば、欲しい単語がすぐに出てきますので。
これなら言語が違っても、それほど作り込みが要らず、汎用的になるかと思います。
言語仕様を十分に理解しないと、出るべき単語が出ず、結局信頼性の低い補完機能にぬってしまいます。
スススススススススススススススススススススススススススススススススススススススス
ニコ メチト命
トコ イーアキッーキッイエィ月ゥ ーウコウクコイー シ スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 」、ァ」」「Gヌニ
99 ー ン
ヲサあヲサさん
ご返信ありがとうございます。
まだ途上ですが、試作を実装してみました。
これでいいかは判りませんが、
関数リストと変数リストに分けて分類し、
変数リストは純粋に「コ」のある行を抽出し、その前後で分解し、
変数名と型を分けながら、テモヨ化してみました。
関数リストも、ほぼ同様の手法でやってみました。
あとは、このリストを基に、補完リストと比べ合わせて、
この単語はノ、これはヤモフ、あれはチ、という具合に、
比較参照していけばいいかと思っています。
まだそこまでは実装していないので、上手く動くかはわかりませんが・・・。
以下が、関数リストと変数リストを生成するソースになります。
ヲサウィャアャイコヤモフゥコサ
ヲサヲサャアコサ
ヲサヲサウャエコヤモフサ
ヲサヲサャアコサ
ヲサヲサウヲサコスヲサヤモフョテサ
ヲサヲサウョテサ
ヲサヲサエヲサコスヲサヤモフョテサ
ヲサヲサエョテサ
ヲサヲサコスヲサァァァ「。、・ヲサォュェダワッヲサヲサソァサ
ヲサヲサッッアコスァヲサヲサァサ
ヲサヲサッッョヤヲサコスヲサモメィョヤャヲサァャァャヲサィアウゥャヲサロメチンゥサ
ヲサヲサヲサヲサコスヲサーヲサヲサィゥヲサュアヲサヲサ
ヲサヲサヲサヲサョヤヲサコスヲサモメィョヤャヲサロンヲサャヲサィアウゥャヲサロメチンゥサ
ヲサヲササ
ヲサヲサヲサヲサコスヲサーヲサヲサョテヲサュアヲサヲサ
ヲサヲサヲサヲサロンヲサコスヲサヤィロンゥサヲサッッコスヲサモメィョヤャヲサアロンヲサャヲサァァャヲサロメチンゥサ
ヲサヲササ
ヲサヲサヲサヲサコスヲサーヲサヲサョテヲサュアヲサヲサ
ヲサヲサヲサヲサヲサィィーヲサヲサヲサィァコァャァヲサァヲサォヲサロンゥゥヲサヲサィーヲサスヲサィァスァャァヲサァヲサォヲサロンゥゥゥヲサ
ヲサヲサヲサヲサヲサヲサィヲサィーヲサヲサヲサィァァャァヲサァヲサォヲサロンゥゥヲサヲサィーヲサヲサヲサィァァャァヲサァヲサォヲサロンゥゥヲサゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサィモロンロアンヲサヲサロァーァョョァケァンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサュアヲサスヲサウョノマィロンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサウョチィロンゥサ
ヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサヲサィヲサィーヲサスヲサィァァャァヲサァヲサォヲサロンゥゥヲサヲサィーヲサスヲサィァァャァヲサァヲサォヲサロンゥゥヲサヲサヲサィーヲサスヲサィァァャァヲサァヲサォヲサロンゥゥヲサゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサィーヲサヲサヲサィァコァャヲサァヲサァヲサォロンゥゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサィーヲサスヲサィァスァャヲサァヲサァヲサォロンゥゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサィモロンロアンヲサヲサロァコァンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサィモロンロアンヲサヲサロァーァョョァケァンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサュアヲサスヲサエョノマィロンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサエョチィロンゥサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲササ
ヲサヲササ
ヲサヲサアョヲサコスヲサウョヤサ
ヲサヲサウョニサ
ヲサヲサイョヤヲサコスヲサエョヤサ
ヲサヲサエョニサ
サ
ヲサエィコサイコヤモフゥコサ
ヲサヲサャアコサ
ヲサヲサウャエコヤモフサ
ヲサヲサャアコサ
ヲサヲサウヲサコスヲサヤモフョテサ
ヲサヲサウョテサ
ヲサヲサウョヤヲサコスヲササ
ヲサヲサエヲサコスヲサヤモフョテサ
ヲサヲサエョテサ
ヲサヲサコスヲサァヲサヲサィァサ
ヲサヲサッッョヤヲサコスヲサモメィョヤャヲサァャァャヲサィアウゥャヲサロメチンゥサ
ヲサヲサヲサヲサコスヲサーヲサヲサィゥヲサヲサ
ヲサヲサヲサヲサウョヤヲサコスヲサィヲサモメィウョヤャヲサロンヲサャヲサィアウゥャヲサロメチンゥヲサゥサ
ヲサヲササ
ヲサヲサコスヲサァゥロンャョコサァサ
ヲサヲサヲサヲサコスヲサーヲサヲサウョテヲサュアヲサヲサ
ヲサヲサヲサヲサヲサアヲサコスヲサーヲサヲサィゥヲサヲサ
ヲサヲサヲサヲサヲサヲサウロンヲサコスヲサモメィウロンャヲサロアンヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサーヲサスヲサィァワァャァヲサァォウロンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサエョチィウロンゥサッッヲサモメィャヲサロンヲサャヲサィアウゥャヲサロメチンゥサ
ヲサヲサヲサヲササ
ヲサヲササ
ヲサヲサウョテサ
ヲサヲサヲサヲサコスヲサーヲサヲサエョテヲサュアヲサヲサ
ヲサヲサヲサヲサエロンヲサコスヲサモメィエロンャヲサァァヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲサエロンヲサコスヲサモメィエロンャヲサァァヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲサエロンヲサコスヲサモメィエロンャヲサァァヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲサエロンヲサコスヲサモメィエロンャヲサァァヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲサヲサィヲサィーヲサスヲサィァワァャァヲサァヲサォヲサエロンゥゥヲサゥヲサヲサ
ヲサヲサヲサヲサヲサヲサウョチィヲサエロンヲサォヲサァャァヲサォヲサゥサ
ヲサヲサヲサヲササ
ヲサヲササ
ヲサヲサイョヤヲサコスヲサウョヤサ
ヲサヲサウョニサ
ヲサヲサエョニサ
サ
ヲサオィャイコヤモフゥコサ
ヲサヲサャアコサ
ヲサヲサウャエコヤモフサ
ヲサヲサコサ
ヲサヲサウヲサコスヲサヤモフョテサ
ヲサヲサウョテサ
ヲサヲサエヲサコスヲサヤモフョテサ
ヲサヲサエョテサ
ヲサヲサコスヲサァサァサ
ヲサヲサョヤヲサコスヲサモメィョヤャヲサヲサャヲサァァャヲサロメチンゥサ
ヲサヲサヲサコスヲサァコァサ
ヲサヲサョヤヲサコスヲサモメィョヤャヲサヲサャヲサィアウゥヲサォヲサァコァヲサャヲサロメチンゥサ
ヲサヲサヲサコスヲサョテヲサュアサ
ヲサヲサヲサヲサヲサヲサーヲサヲサ
ヲサヲサヲサヲサヲサーヲサヲサヲサィァコァャァヲサァヲサォヲサロンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサコスヲサモメィロンャヲサァコァヲサャヲサァャァヲサャヲサロメチンゥサ
ヲサヲサヲサヲサヲサヲサヲサーヲサスヲサィァャァャロュアンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサウョチィロュアンヲサォヲサヲサゥサ
ヲサヲサヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサエョヤヲサコスヲサモメィロュアンャヲサァャァヲサャヲサィアウゥヲサャヲサロメチンゥサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサアヲサコスヲサーヲサヲサエョテヲサュアヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサァァヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサュアヲサスヲサウョノマィヲサエロアンヲサォヲサヲサゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサウョチィヲサエロアンヲサォヲサヲサゥサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲササ
ヲサヲサヲサヲサィゥ
ヲサヲササ
ヲサヲサイョヲサコスヲサウョヤサ
ヲサヲサウョニサ
サ
ヲサヤニアョツイティモコヲサヤマゥサ
ヲサヲサアャイャウャエャオコヤモフサ
ヲサヲサャアコサ
ヲサヲサアヲサコスヲサヤモフョテサ
ヲサヲサアョテサ
ヲサヲサイヲサコスヲサヤモフョテサ
ヲサヲサイョテサ
ヲサヲサウヲサコスヲサヤモフョテサ
ヲサヲサウョテサ
ヲサヲサエヲサコスヲサヤモフョテサ
ヲサヲサエョテサ
ヲサヲサオヲサコスヲサヤモフョテサ
ヲサヲサオョテサ
ヲサヲサヲサヲサアョマトアョナヲサ
ヲサヲサヲサヲササ
ヲサヲサアョフニニィアョマトアョニホゥサ
ヲサヲサウィアャイャウゥサ
ヲサヲサアョテサ
ヲサヲサヲサヲサコスヲサーヲサヲサイョテヲサュアヲサヲササ
ヲサヲサヲサヲサアョテサ
ヲサヲサヲサヲサエィイロンャアゥサ
ヲサヲサヲサヲサヲサアヲサコスヲサーヲサヲサアョテヲサュアヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサュアヲサスヲサエョノマィアロアンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサエョチィヲサアロアンヲサゥサ
ヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲササ
ヲサヲササ
ヲサヲサオィウヲサャオゥサ
ヲサヲサアョフョヤヲサコスヲサエョヤサ
ヲサヲサイョフョヤヲサコスヲサオョヤサ
ヲサヲサアョフョモヤニィヲサナニミィヲサミモィヲサーヲサゥヲサゥヲサォヲサァ゜フョァヲサゥサ
ヲサヲサイョフョモヤニィヲサナニミィヲサミモィヲサーヲサゥヲサゥヲサォヲサァ゜フョァヲサゥサ
サ
スススススススススススススススススススススススススススススススススススススススス
ニコ メチトツ鳴ス
トコ イーアキッーキッイオィツ嘉 05:22:35 <font size =-1><モÒセ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ Òノトニロ 」、ァ」」「GヌニC?; ク
ア]
¨Í椴¢ÜB
Up\[XÌÌÖubunkatu4vɬÈoOªÁÌÅチリヨÅツ
ヲサエィコサイコヤモフゥコサ
ヲサヲサャアコサ
ヲサヲサウャエコヤモフサ
ヲサヲサャアコサ
ヲサヲサウヲサコスヲサヤモフョテサ
ヲサヲサウョテサ
ヲサヲサウョヤヲサコスヲササ
ヲサヲサエヲサコスヲサヤモフョテサ
ヲサヲサエョテサ
ヲサヲサコスヲサァヲサヲサィァサ
ヲサヲサッッョヤヲサコスヲサモメィョヤャヲサァャァャヲサィアウゥャヲサロメチンゥサ
ヲサヲサヲサヲサコスヲサーヲサヲサィゥヲサヲサ
ヲサヲサヲサヲサウョヤヲサコスヲサィヲサモメィウョヤャヲサロンヲサャヲサィアウゥャヲサロメチンゥヲサゥサ
ヲサヲササ
ヲサヲサコスヲサァゥロンャョコサァサ
ヲサヲサヲサヲサコスヲサーヲサヲサウョテヲサュアヲサヲサ
ヲサヲサヲサヲサヲサアヲサコスヲサーヲサヲサィゥヲサヲサ
ヲサヲサヲサヲサヲサヲサウロンヲサコスヲサモメィウロンャヲサロアンヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサーヲサスヲサィァワァャァヲサァォウロンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサエョチィウロンゥサッッヲサモメィャヲサロンヲサャヲサィアウゥャヲサロメチンゥサ
ヲサヲサヲサヲササ
ヲサヲササ
ヲサヲサウョテサ
ヲサヲサヲサヲサコスヲサーヲサヲサエョテヲサュアヲサヲサ
ヲサヲサヲサヲサエロンヲサコスヲサモメィエロンャヲサァァヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲサエロンヲサコスヲサモメィエロンャヲサァァヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲサエロンヲサコスヲサモメィエロンャヲサァァヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲサエロンヲサコスヲサモメィエロンャヲサァァヲサャヲサァワァャヲサロメチンゥサ
ヲサヲサヲサヲサヲサィヲサィーヲサスヲサィァワァャァヲサァヲサォヲサエロンゥゥヲサゥヲサヲサ
ヲサヲサヲサヲサヲサヲサウョチィヲサエロンヲサォヲサァャァヲサォァ「ァォヲサォァ「ァゥサ
ヲサヲサヲサヲササ
ヲサヲササ
ヲサヲサイョヤヲサコスヲサウョヤサ
ヲサヲサウョニサ
ヲサヲサエョニサ
サ
スススススススススススススススススススススススススススススススススススススススス
ニコ メチト命
トコ イーアキッーキッイオィ火ゥ ーオコイケコエカ シ スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「。」、 ン
モコ
おはようございます。
多分また文字化けするような・・・。
一旦、試作のソースが完成したのでご報告の迄に。
100%満足とはいきませんでしたが、
かなり満足度の高いものが出来ました。
ありがとうございました。
ヲサヲサ
ヲサヲサヲサヲサヲサミヲサ宣言ヲサ
ヲサヲサヲサヲサ゜アャ゜イャ゜ウコローョョインヲサヤモフサ
ヲサヲサヲサヲサコヤモフサ
ヲサヲサヲサヲサ゜ャ゜イコサ
ヲサヲサヲサヲサコサ
ヲサヲサ
ヲサヲサヲサヲサヲサミヲサ宣言ヲサ
ヲサヲササ
ヲサヲサニアコヲサヤニアサ
、メヲサェョ
ヲサヤニアョニティモコヲサヤマゥサ
ヲサヲサコサ
ヲサヲサャアコヤモフサ
ヲサヲサヲサコスヲサヤモフョテサ
ヲサヲサアヲサコスヲサヤモフョテサ
ヲサヲサヲサヲサコスヲサーヲサヲサイヲサヲサ
ヲサヲサヲサヲサ゜アロンヲサコスヲサヤモフョテサ
ヲサヲサヲサヲサ゜アロンョテサ
ヲサヲサヲサヲサ゜イロンヲサコスヲサヤモフョテサ
ヲサヲサヲサヲサ゜イロンョテサ
ヲサヲサヲサヲサ゜ウロンヲサコスヲサヤモフョテサ
ヲサヲサヲサヲサ゜ウロンョテサ
ヲサヲサヲサヲサコスヤモョテサ
ヲサヲサヲサヲサョテサ
ヲサヲサヲサヲサ゜ヲサコスヲサーサ
ヲサヲサヲサヲサ゜イコスアサ
ヲサヲササ
ヲサヲサョフニニィィィーゥゥヲサォヲサァ゜フョァゥサ
ヲサヲサヲサヲサコスヲサーヲサヲサョテヲサュアヲサヲサ
ヲサヲサヲサヲサアョテヤヲサコスヲサロンサ
ヲサヲサヲサヲサ゜アローンョチィアローンゥサ
ヲサヲサヲサヲサ゜アロアンョチィアロアンゥサ
ヲサヲササ
ヲサヲサョフニニィィィーゥゥヲサォヲサァ゜フョァゥサ
ヲサヲサヲサヲサコスヲサーヲサヲサョテヲサュアヲサヲサ
ヲサヲサヲサヲサアョテヤヲサコスヲサロンサ
ヲサヲサヲサヲサ゜イローンョチィアローンゥサ
ヲサヲサヲサヲサ゜イロアンョチィアロアンゥサ
ヲサヲササ
ヲサヲサョフニニィィィーゥゥヲサォヲサァフョァゥサ
ヲサヲサヲサヲサコスヲサーヲサヲサョテヲサュアヲサヲサ
ヲサヲサヲサヲサアョテヤヲサコスヲサロンサ
ヲサヲサヲサヲサ゜ウローンョチィアローンゥサ
ヲサヲサヲサヲサ゜ウロアンョチィアロアンゥサ
ヲサヲササ
ヲサヲサヲサコスヲサァァサ
サ
ヲサヤニアョヘアヒミィモコヲサヤマサヲサヲサヒコヲサテゥサ
ヲサヲサャアャイコサ
ヲサヲサャアャイコヤモフサ
ヲサヲサコサ
ヲサヲサヲサコスヲサヤモフョテサ
ヲサヲサョテサ
ヲサヲサアヲサコスヲサヤモフョテサ
ヲサヲサアョテサ
ヲサヲサイヲサコスヲサヤモフョテサ
ヲサヲサイョテサ
ヲサヲサヲサィヲサヲサヲサヲサァァゥヲサヲサ
ヲサヲサヲサヲサヲサアョフツアョノノヲサヲサヲサュアヲサヲサ
ヲサヲサヲサヲサヲサヲサアヲサコスヲサアョフツアョノノサ
ヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサコスヲサーヲサヲサ゜イローンョテヲサュアヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサロアンヲサスヲサ゜イロアンロンヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサョチィ゜イローンロンゥサ
ヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサコスヲサーヲサヲサ゜ウロ゜ンョテヲサュアヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサイヲサコスヲサーヲサヲサョテヲサュアヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサロインヲサスヲサ゜ウロ゜ンロンヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサュアヲサスヲサイョノマィ゜ウロ゜インロンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサイョチィィ゜ウロ゜インロンゥゥサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲササ
ヲサヲサヲサヲサアョフツアョノョヤヲサコスヲサイョヤサ
ヲサヲサヲサヲサヲサコスヲサァァサ
ヲサヲサヲサヲサョテサ
ヲサヲサヲサヲササ
ヲサヲササ
ヲサヲサアョヲサコスヲサアョヲサォヲササ
ヲサヲサ
ヲサヲサヲサヲサコスヲサーヲサヲサ゜イローンョテヲサュアヲサヲサ
ヲサヲサヲサヲサヲサーヲサヲサヲサィアョャヲサァヲサァヲサォヲサ゜イローンロンゥヲサヲサ
ヲサヲサヲサヲサヲサヲサョチィ゜イローンロンゥサ
ヲサヲサヲサヲサヲサヲサョチィ゜イロアンロンゥサ
ヲサヲサヲサヲササ
ヲサヲササ
ヲサヲサアョフツアョノョヤヲサコスヲサョヤサ
ヲサヲサョニサ
サ