タグ 抽象構文木
人気順 10 users 50 users 100 users 500 users 1000 usersTypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略
TSKaigi 2024 の発表資料です。 https://tskaigi.org/talks/yanaemon169 Demo 用コードはこちら https://github.com/yanaemon/nestjs-migration-example ミツモアはサービスの提供開始から、6 年以上が経ち、サービが急速に拡大してきました。 急成長の中で、古いコードが多くあり新しい構成への変革が求められていまし... 続きを読む
Ruby Parser開発日誌 (15) - Ruby の NODE を Union から卒業させた - かねこにっき
まもなくRuby 3.3.0がリリースされますね。 LramaによるBisonの置き換え、named referencesによるparse.yのリファクタリングなど、parser本体の大きな改善が入ったバージョンになります。 今回はRuby 3.3向けに行った改善のうち「Rubyの抽象構文木のデータ構造の改善」という内部的な改善を紹介します。 問題の背景 Ruby... 続きを読む
入れ子構造を自由に拡張する – TypeScript版「Trees that Grow」 | IIJ Engineers Blog
日本Haskellユーザーグループ(愛称 Haskell-jp)発起人の一人にして、Haskell-jpで一番のおしゃべり。 HaskellとWebAssemblyとプリキュアとポムポムプリンをこよなく愛する。 This is a Japanese translation of Flexiblly Extend Nested Structures – “Trees that Grow” in TypeScript. 抽象構文木(AST, Abstract Syn... 続きを読む
RubyVM::ASTさわってみた
RubyVM::AST [Experimental] Ruby 2.6では RubyVM::AST モジュールが導入されました。 このモジュールには、文字列をパースしてAST(抽象構文木)のNodeを返すparseメソッド、ファイルをパースするparse_fileメソッドが実装されています。 RubyVM::AST::Node も導入されました。このクラスのインスタンスから位置情報や子ノードを取得... 続きを読む
astutil.Applyで抽象構文木を置き換える #golang - Qiita
はじめに Goには、標準パッケージ以外にも準標準にあたる golang.org/x/ 以下で管理されているパッケージが存在します。ここで管理されているパッケージは、Go本体と同様にGoチームによって管理され、コントリビュートの方法も概ね同じです。 この準標準パッケージには、さまざまなパッケージが存在します。これらは標準パッケージになるほど汎用的だったり、完成度は高くないはないですが、それでも十分に... 続きを読む
Goの抽象構文木(AST)を手入力してHello, Worldを作る #golang - Qiita
はじめに タイトルを見て、「はて?何を言ってるんだろう」と思った方もいるでしょう。 その通りです。通常、抽象構文木(AST)を取得するには、「 ASTを取得する方法を調べる 」で解説したように、 go/parser パッケージの関数を使ってソースコードをパースする必要があります。 しかし、この記事では温かみのある手入力をすることで、日頃なんとなく取得しているASTがどういうノードで構築されているの... 続きを読む
ASTを取得する方法を調べる #golang - Qiita
はじめに みなさん、メリークリスマス! 22日の枠に欠員が出たので、 go/parser パッケージを使ってAST(抽象構文木)を取得する方法についてまとめたいと思います。 go パッケージについては、 簡単な式の評価機を作ってみる という記事も書いているので、そちらもぜひ読んで下さい。 なお、この記事を執筆時点のGoの最新バージョンは1.7.4です。 ノード go/parser パッケージでは、... 続きを読む
Python とマクロ、インポートフックと抽象構文木 - forest book
2015-03-11 Python とマクロ、インポートフックと抽象構文木 python metaprogramming どちらがきっかけだったのか忘れてしまいましたが、wikipedia:メタプログラミング か wikipedia:抽象構文木 について調べているうちに マクロ が出てきました。私の中では、マクロと聞くと、C 言語の、プリプロセッサ (コンパイルの前処理) でコードに置き換えるもの... 続きを読む
ʕ ゚皿゚ ʔ GolangのASTを可視化するツールを作った - ( ꒪⌓꒪) ゆるよろ日記
2014-06-30 ʕ ゚皿゚ ʔ GolangのASTを可視化するツールを作った Golang はじめてのGo Runtime。 ということで、GoのAST(抽象構文木)を可視化するツールを書いた。yuroyoro/goast-viewer · GitHubgoast.yuroyoro.net にデモがある。go/astパッケージを使うと、GoのソースコードからAST(抽象構文木)を得ること... 続きを読む
HaskellでASTからのコード生成(1) Writer+Stateモナドによる構造化 - プログラミングの実験場
2013-08-01 HaskellでASTからのコード生成(1) Writer+Stateモナドによる構造化 前のポストでGADTを使って型付きの抽象構文木(AST)を表現する方法について書いたが、ここではそのASTから他の言語のコード生成する方法について調査・検討した結果を記す。@keigoiさんの記事(http://d.hatena.ne.jp/keigoi/20111206/haskell... 続きを読む
Perl5 における B optree の操作方法入門 - blog.64p.org
いよいよ今週から YAPC だ。YAPC にあわせて、Perl5 の内部構造を復習できるエントリーを書いたのでご一読いただきたい。 Perl5 hack においては、XS をつかった B optree の操作が楽しい。B optree というのはいわゆる AST(抽象構文木) である。Perl5 は byte code interpreter などではなく昔ながらの AST をそのままなめるインタ... 続きを読む