エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
goのコードの改行の情報はASTには含まれず、token.FileSetに格納されているという話 - podhmo's diary
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
goのコードの改行の情報はASTには含まれず、token.FileSetに格納されているという話 - podhmo's diary
ASTを触る際にコメントの取扱いがだるいと一部で話題ですが。コメントの他にも取扱いが面倒なものがあり... ASTを触る際にコメントの取扱いがだるいと一部で話題ですが。コメントの他にも取扱いが面倒なものがあります。それが改行の情報です。というよりもコードの字面上の情報を取り除いて取り扱いやすくした状態がASTなので装飾用の情報が入っていないというのは自然なことかもしれません。 ではどこに入っているのか?というとtoken.FileSetがもつtoken.Fileのlinesと言う場所にあります。 公開されていないフィールドなので取ってくるのがちょっと大変ですが。 // get *token.File from *ast.File tokenf := fset.File(f.Pos()) fmt.Println("lines=", reflect.ValueOf(tokenf).Elem().FieldByName("lines")) // lines= [0 13 14 23 30 43 57