Finally句の対応
PHPParserはhttps://javacc.java.net/の4.2を利用している。
PHPParser.jjを以下のように修正
修正後は、PHPParse.jjがあるディレクトリで
../../../../lib/javacc-4.2/bin/javacc PHPParser.jj
みたいな感じでjavaファイルを作成
finally句の定義を追加
/* Exceptions */
<PHPPARSING> TOKEN :
{
<TRY : "try">
| <CATCH : "catch">
| <THROW : "throw">
| <FINALLY : "finally">
}
tryStatement に finallyの処理を追加
(<FINALLY> {Block();} )?
をcatch句処理後に追加
tryToken = <TRY>
block = Block()
catchClause = catchClause()
{
catches.add(catchClause);
}
(
catchClause = catchClause()
{
catches.add(catchClause);
}
)*
(<FINALLY> {Block();} )?
{
return new TryStatement(block,
catches,
tryToken.sourceStart,
catchClause.getSourceEnd(),
tryToken.beginLine,
catchClause.getEndLine(),
tryToken.beginColumn,
catchClause.getEndColumn());
}
javaccの文法が合っているか自信ないけど、解析できているっぽい。
[通知用URL]
Tweet
最終更新時間:2023年02月05日 07時36分14秒