# HG changeset patch # User anatofuz # Date 1612173320 -32400 # Node ID a25692dd0ca248505a6fb08332b17827352da2b3 # Parent 1306d0d1c65347126631f9affbe7205030cd6dc8 foo... diff -r 1306d0d1c653 -r a25692dd0ca2 paper/chapter/04-interface.tex --- a/paper/chapter/04-interface.tex Mon Feb 01 18:41:52 2021 +0900 +++ b/paper/chapter/04-interface.tex Mon Feb 01 18:55:20 2021 +0900 @@ -230,3 +230,9 @@ if文で条件判定をしているが、前者は出力があるケースかどうかのチェックである。 続く条件式はGearsOSのビルドルールとして静的に書いたstubの場合は変更を加えない為に、 静的に書いているかどうかの確認をしている。 変数\texttt{\$pick\_next}で継続先のCodeGearの名前を作製している。 +CodeGearの名前は一度目の解析で確認した継続先に\texttt{\_}とカウント数をつけている。 +ここで作製したCodeGearの名前を、3行目でcontextに書き込むCbCコードとして生成している。 + + +実際に生成された例題をソースコード\ref{src:replaceenum}に示す。 +\lstinputlisting[label=src:replaceenum, caption=enumの番号が差し替えられたCodeGear]{src/replaceenum.cbc} \ No newline at end of file diff -r 1306d0d1c653 -r a25692dd0ca2 paper/master_paper.pdf Binary file paper/master_paper.pdf has changed diff -r 1306d0d1c653 -r a25692dd0ca2 paper/src/replaceenum.cbc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/src/replaceenum.cbc Mon Feb 01 18:55:20 2021 +0900 @@ -0,0 +1,5 @@ +__code pop2TestStackTestImpl3(struct Context *context,struct StackTestImpl3* stackTest, struct Stack* stack, enum Code next) { + Gearef(context, Stack)->stack = (union Data*) stack; + Gearef(context, Stack)->next = C_pop2Test1StackTestImpl3_1; + goto meta(context, stack->pop2); +} \ No newline at end of file