Mercurial > hg > Papers > 2021 > anatofuz-master
changeset 21:48d1dc04c1c4
...
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 30 Jan 2021 13:40:36 +0900 |
parents | 284ddeee0f9a |
children | ada9b562891d |
files | paper/chapter/02-interface.tex paper/master_paper.pdf |
diffstat | 2 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter/02-interface.tex Sat Jan 30 13:29:28 2021 +0900 +++ b/paper/chapter/02-interface.tex Sat Jan 30 13:40:36 2021 +0900 @@ -40,10 +40,12 @@ GearsOSのビルドシステムのAPIとして\texttt{meta.pm}を作製した。 これはPerlのモジュールファイルとして実装した。 Perlで実装されたGearsOSのトランスコンパイラであるgenerate\_stub.plから呼び出される。 - +meta.pmの中のサブルーチンである\texttt{replaceMeta}に変更対象のCodeGearと変更先のMetaCodeGearへのgotoを記述する。 -meta.pmは特定のパターンの配列とサブルーチンを定義し、MetaCodeGearへの遷移を制御可能なAPIである。 -正規表現リテラルで、最後のgoto文を変更したいCodeGearの名前を指定する。 -コード\ref{src:metapm}に示す例では、\texttt{PhilsImpl}が名前に含まれるCodeGearのgotoの先を\texttt{mcMeta}に差し替えている。 +具体的な使用例をコード\ref{src:metapm}に示す。 +meta.pmはサブルーチン\texttt{replaceMeta}が返すリストの中に、特定のパターンで配列を設定する。 +各配列の0番目には、goto metaを置換したいCodeGearの名前を示すPerl正規表現リテラルを入れる。 +コード\ref{src:metapm}の例では、\texttt{PhilsImpl}が名前に含まれるCodeGearを指定している。 +すべてのCodeGearのgotoの先を切り替える場合は\texttt{qr/.*\//}などの正規表現を指定する。 \lstinputlisting[label=src:metapm, caption=meta.pm]{src/meta.pm}