どういうわけだか寝る前に、jhipster-coreに自前のアノテーションを追加してパースさせてみようとおもった。
以下のアノテーションを追加
@Post
とりあえず、字句解析と構文解析が設定されているファイルまでたどりついたら、眠くなったので寝ることにした。
api.js
の定義には、パーサのライブラリが定義されているので、ここから解析をしたらいいのだとおもう。
const _ = require('lodash'); const { EOF } = require('chevrotain'); const { JDLLexer, tokens } = require('./lexer/lexer'); const JDLParser = require('./jdl_parser'); const { performAdditionalSyntaxChecks } = require('./validator'); const { buildAst } = require('./ast_builder'); const { checkTokens } = require('./self_checks/parsing_system_checker');
./lexer/lexer
が字句解析として設定されているようである。
./jdl_parser
が構文解析として設定されているようである。
既存のアノテーションでソースコードを検索すれば、あたりがつくのではないだろうか?ということで、やってみる
アノテーションには、
@dto @skipClient
などがある。実装を探るには、アットマークなしの文言で検索すると、該当箇所がでてきた。
application_options.js
に、以下の定数に格納されているので、そこからも調査してみる。
SKIP_CLIENT
パースされた結果、UNARYという種類であると、認識されるらしい。jdl_unary_option.js