問題タブ [parse-tree]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
list - Prolog: DCG に従ってリストから用語を生成する
次の DCG があります。
のような文章を確認できs([the,cat,sleeps], [])
、「 」という返事が返ってきyes
ます。
しかし、次のような用語としてこの文が必要ですs(np(det(the),n(cat)),vp(v(sleeps)))
。
リストから用語を生成するにはどうすればよい[the,cat,sleeps]
ですか?
c - Yacc- 不完全または未知のタイプの構造体
これがyacc file.yの私のトップです
このコードを使用して%union
、パーサーの新しい型を定義しました。
$$
レクサーからのトークンを評価している間に解析ツリーが構築されている間、 -dollars 属性でそれを使用しても問題ありません。残念ながら、セクションの他のメソッドでファイルの先頭に定義されている構造を使用したいと思います%{ codes %}
。残念ながら、次のように関数を定義するたびに:
エラーが表示されます: タイプが不明です! この構造体をパーサー全体から見えるようにする方法を教えていただければ幸いです。
parsing - 解析テーブルを使用した入力文字列の解析のトレース
私たちの教授は、クラスでこの資料を教えてくれませんでした。今では宿題があります。Google は私を正しい方向に導いてくれているようですが、私はそれを正しく理解したいと思っています (もちろん)。
次の文法が与えられ、それに基づいて解析テーブルを作成するように依頼されました。
私の解析テーブル:
今、私たちは次のように指示されています:
「解析テーブルを使用して、入力文字列 dbbe の解析のトレースを示します。各反復の開始時に、未使用の入力文字列、スタック、および出力 (ルール番号のシーケンス) を示します。」
ソース: http://what-when-how.com/compiler-writing/top-down-parsing-compiler-writing-part-1/
文字列と一致するまで、文法で指定された各可能性をたどるかのように見えます。
これが私が思いついたものです:
どうですか?私はそれを正しく理解していますか?文法を参照するだけでこれを作成しました。解析テーブルではありません.解析テーブルを使用してトレースを作成するにはどうすればよいですか?
これが何を意味するのかまだわかりません:
各反復の開始時に未使用の入力文字列、スタック、および出力 (ルール番号のシーケンス) を与える
parsing - CLR 解析での競合
これは文法です:
私はCLRで解析してから、削減/削減の競合が発生しました。次はどうする?解決した問題を以下に添付します。
postgresql - PostgreSQL 変換プロセス コード
SQL クエリを解析し、リレーショナル代数ツリーを形成する必要があります。現在、postgres 内部パーサーを使用してクエリを解析しています。(より具体的には、次のリンクのステップ 1 の結果を確認しました)。
http://www.postgresql.org/docs/current/static/parser-stage.html
私が探しているのは、ソース コードまたは 2 番目の部分である変換プロセスの実装です。少し探しましたが見つかりませんでした。
また、SQL クエリからリレーショナル代数ツリーを形成するためのその他の推奨事項はありますか?
ありがとう
javascript - d3.js を使用した解析ツリーの視覚化
d3.js
を使用してツリーを描画するHTML ファイルを生成することにより、解析ツリーの視覚的表現を取得しようとしています。ファイルは次のようになります。
私はそれをどのように見せたいですか:
現在の外観:
私は完全に初めてd3.js
で、正直なところ、コードは例から取られ、私が変更しただけです。この方法でなんとかここまでたどり着きましたが、どこが間違っているのかわかりません。
少しでもお役に立てれば幸いです。前もって感謝します!