問題タブ [cocor]
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.
c# - C# アプリケーションから Python コードを生成して解析する
より具体的なIronPytonになるように Python コードを生成する必要があります。また、コードを解析してASTにロードできる必要もあります。私はちょうどいくつかのツールを見始めました。「Oslo」で遊んでみたところ、これは自分に適したツールではないと判断されました。Coco/Rを簡単に調べたところ、有望に見えます。
Coco/R を使っている人はいますか? ツールを使用した経験があれば、他のツールをお勧めできますか?
c# - Coco/R 対 ANTLR
基本的にスクリプト可能なメールマージ機能の一部として、C# プロジェクトで使用するためにCoco /Rと ANTLRを使用して評価しています。(単純な) スクリプトを解析するには、パーサーが必要です。
私は Coco/R と ANTLR に焦点を当てました。どちらもかなり成熟しており、適切に管理されており、適切な C# パーサーを生成できるように思われるからです。
ただし、どちらも簡単に使用できるようには見えませんが、シンプルさは私が高く評価するものです。特に、他の人にとっての保守性は高く評価されます。
誰かに推奨事項はありますか?小さな言語を解析することの長所/短所は何ですか?または私は完全に間違ったことを調べていますか? これらは、典型的な継続的インテグレーションのセットアップにどの程度うまく統合されていますか? 落とし穴は何ですか?
java - EBNF 式を使用したコード ブロックの解析
CocoR を使用して Java のようなスキャナー/パーサーを生成しています。コード
ブロックに一致する EBNF 式を作成する際に問題が発生しています。
コード ブロックが 2 つのよく知られたトークン <& と &> で囲まれていると想定しています。例:
非終端記号を定義すると
2 つのシンボル内のコードに「<」文字が含まれている場合、生成されたコンパイラはそれを処理しないため、構文エラーが発生します。
ヒントはありますか?
編集:
簡単にするために、いくつかの演出を省略しました。
これは文法の私の実際の実装です。主なバグは、ブロック内のコードに記号 '>' または '&' のいずれかが含まれている場合に失敗することです。
compiler-construction - Coco/R は、宣言があるにもかかわらず、「'COMPILER' が必要です」と言い続けます。
タイトルの通り、Coco/R で困っています。ファイル Andromeda.atg をコンパイルすると、次の 2 つのエラーが表示されます。
なぜこれが起こっているのか分かりません。COMPILER Andromeda の行を一番上に移動しようとしましたが、同じエラーが表示されます。これが私のファイル全体です:http://pastebin.com/PezqZb6y
ありがとう、テオ
c# - Coco / Rでインデントをトークン化する方法(Python、インデントのようなBoo)
Python/BooのようにCoco/Rトークン化インデントに実装する方法はよく知られていますか?
Coco / Rは空白を無視しますが、次の行のインデントに基づいて、beginBlock/endBlockトークンを生成する必要があります。
現在、「{」、「}」、および「;」を挿入するプリプロセッサを使用しています。行間のインデントを比較することにより、入力ストリームで。Coco / R文法では、beginBlock/endBlockトークンとして曲線中括弧を使用します。入力ストリームにコメンスがない場合(ネストすることもできます)、うまく機能します。順序付けられていないコメントが来るとすぐに、インテント比較ロジックは失敗します。
コメントをトレースするプリプロセッサを実装することは、私には過剰設計のように見えます。
したがって、問題は、Coco / Rを使用してインデントベースの文法を解析することは一般的に可能ですか?それとも私は何か他のものを試すべきですか?
c# - 文字列を読み取るC#ファイルストリーム(Coco / R Taste)
私はC#でCocoRサンプルTasteを使用しています。
次のような操作が与えられたときに文字列を書くためにコードを拡張しようとしています
HelloWorldを書く
文字列を保存および書き込む方法を特定しました。私が抱えている問題に関連するコードを出している:
拡張されたTaste.ATG
CodeGen.csの拡張操作:Filestreamはこのように使用されます
ファイルストリームを使用するケーススイッチを追加しました
問題は、文字列を読み取る方法がインターネット上のどこにも見つからないことです。明らかにReadString(s)
、同じようにReadInt(s)
は機能しません。ファイルストリームから文字列を読み取る操作を見つけるための助けを得ることができるかどうか疑問に思いました。
私はこれまでファイルストリームの管理を行ったことがありません。
parsing - Coco/R パーサーが貪欲にならないようにする方法
私のATGファイルは、コードブロックを次のように定義しています
Coco によって生成されたパーサーが次のようなブロックに遭遇した場合:
トークンが拾う
これはまさに私が欲しいものです。
ただし、次のようなコードに遭遇した場合:
トークン、貪欲に拾う
Coco/Rにこれをしないように知らせるにはどうすればよいですか?
llvm - Phoenixコンパイラツールプロジェクトはまだ生きていますか?
小さなプログラミング言語/DSL の開発に役立つ最新のツール チェーンを探しています。MS ResearchからPhoenixを探索したいのですが、それは死んだプロジェクトのようです。その場合は、他の場所を探す必要がありますか?
Phoenix で CIL をターゲットにしたいと考えていますが、LLVM (またはその他) を使用するのが最適なツール チェーンである場合は、間違いなく検討します。
delphi - Coco / Rは解析されたファイルをバイトコードに変換できますか?
Delphiで教育目的の簡単なコンパイラを書きたいです。私はCoco/Rについて読み、Delphiのこの実装を見つけました:http ://code.google.com/p/dcocor/ 。私が読んだことから、これはDelphi2009構文のパーサーです。
解析されたファイルをバイトコードに変換するにはどうすればよいですか?Coco / Rはこれを行うことができますか?
FastScriptやDWSのようなスクリプト言語については知っていますが、自分の目的のために自分で作成してみたいと思います。
アドバイスをお願いするか、少し明確にしてください。