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秒