Mercurial > hg > Papers > 2016 > kaito-master
changeset 9:7161b80a7e19
冥 ANOTHER
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 10 Feb 2016 14:12:31 +0900 |
parents | e9a6d390a401 |
children | 571f9f8d99e1 |
files | paper/chapter3.tex |
diffstat | 1 files changed, 1 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter3.tex Tue Feb 09 21:25:40 2016 +0900 +++ b/paper/chapter3.tex Wed Feb 10 14:12:31 2016 +0900 @@ -112,7 +112,7 @@ これらの編集により, LLVM 側でも code segment を認識できるようになった. \section{軽量継続} -CbC で軽量継続は goto に code segment 冥を添えることで行う. この新しい goto syntax を追加する. 継続のための goto syntax は, goto の後に関数呼び出しと同じ構文が来る形になる. したがって, goto の構文解析を行う際にこの構文も解析できるように変更を加える必要がある. clang が goto 文の構文解析を行っているのは, Parser クラスの ParseStatementOrDeclarationAfterAttributes 関数であり, この関数は \$(clang)/lib/Parse/ParseStmt.cpp で定義されている. この関数内にも switch 文があり, この中の kw\_goto が来た時の処理に手を加える. 具体的には以下のように変更した. +CbC で軽量継続は goto に code segment 名を添えることで行う. この新しい goto syntax を追加する. 継続のための goto syntax は, goto の後に関数呼び出しと同じ構文が来る形になる. したがって, goto の構文解析を行う際にこの構文も解析できるように変更を加える必要がある. clang が goto 文の構文解析を行っているのは, Parser クラスの ParseStatementOrDeclarationAfterAttributes 関数であり, この関数は \$(clang)/lib/Parse/ParseStmt.cpp で定義されている. この関数内にも switch 文があり, この中の kw\_goto が来た時の処理に手を加える. 具体的には以下のように変更した. \begin{lstlisting}[frame=lrbt,label=ParseStmt,caption={goto 文の構文解析}]