問題タブ [nimrod]
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.
interpreter - Nimrod の Brainfuck 通訳
私は言語で Brainfuck インタープリターを作成することにより、 nim (執筆時点ではまだ nimrod と呼ばれています) をいじっています。ループを実装しないと、次のようになります。
正常にコンパイルされますが、次のような入力をスローすると:
「N」を返す文字「A」を出力する必要があります。何か案は?
bitwise-operators - Nimrod では、ビット演算の構文は何ですか?
Nimrod を発見したばかりで、基本的な質問があります (ドキュメントで答えが見つかりませんでした)。
ビット演算をどのように使用しますか? x が int として定義されている次のコードがあります。
これはコンパイルされません:
そして、私が試してみると:
私は得る
トリックは何ですか?
inheritance - Nimrod プログラムをコンパイルする継承された型の宣言されていないフィールド
次のコードをコンパイルしようとします。
しかし、次のエラーが表示されます。
エラー: 宣言されていないフィールド: 'id'
どのようにid
宣言されていませんか?コード サンプルは、チュートリアルから直接引用したものです。チュートリアルに反映されていない言語の変更はありましたか?
また、次のコードを実行しようとすると:
次のエラーが表示されます。
SIGSEGV: 不正なストレージ アクセスです。(nil から読み取ろうとしていますか?)
なんで?
parsing - Nimrod でコンパイル時に文字列を解析するにはどうすればよいですか?
Nimrodのチュートリアルの第 2 部を進めていくと、マクロについて説明する部分に到達しました。ドキュメントには、コンパイル時に実行されると書かれているので、文字列を解析してドメイン固有の言語を自分で作成できると考えました。ただし、これを行う方法の例はありません。デバッグ マクロの例には、文字列パラメーターの処理方法が表示されていません。
次のようなコードを変換したい:
…手書きで次のように記述します。
明らかに、この例はあまり役に立ちませんが、より複雑なものを実装するのに役立つ単純なもの (複数行/カンマ分割、変換) を見てみたいと思います。
ここでの私の問題は、マクロがどのように入力文字列を取得し、それを解析するか (コンパイル時!)、およびコンパイル時に実行できるコードの種類 (それは単なる言語のサブセットですか? 他のマクロ/コードを使用できますか?インポートされたモジュール)?
編集:答えに基づいて、質問に対する可能なコード解決策があります:
macros - 複雑なパラメーターを Nimrod マクロに渡す
設定パラメータをマクロに渡したいです。これらのパラメーター (シーケンスのタプル) に基づいて Nimrod コードの文字列を生成する手順が既にあります。文字列を渡してstrValで変換できることはわかっています(回答https://stackoverflow.com/a/19956317/334703を参照)。より複雑なデータでも同じことができますか?
または、この Nimrod コードの文字列をコンパイル時のプロシージャで使用して、 parseStmtなどのプロシージャを呼び出すことはできますか?
編集: Nimrod コードの生成は、私のアイデアをテストするのに役立ちました。AST を直接生成する必要があることに同意します。
これが私が考えている構造の例です。
ubuntu - Nimrod に Babel をインストールする際の問題
のインストールに問題がありbabel
ます。
まず、github からすべてをダウンロードしました。
そして、私は使用してインストールしようとしました、
しかし、私はこれを手に入れました、
Ubuntu 12.04 LTS を実行しており、Nimrod 0.9.2 が にインストールされてい/opt/nimrod/
ます。私の最初の本能は を行うsudo chmod a+rwx /opt/nimrod
ことでしたが、それは何も解決しませんでした. 何かアイデアはありますか?
nimrod - フィールド名のないタプル
各フィールドに名前を付けなくても、nimrod でタプルを宣言できることに気付きました。例えば:
ただし、これは最後に提出されたものには適用されません
何故ですか?これは意図したものですか?最後のフィールドに常に名前を付ける必要があるのはなぜですか?
nimrod - Nimrod 初心者 - Fizzbuzz - コンパイルと実行
最初の nimrod プログラムを fizzbuzz にコンパイルして実行してみました。
Nimrod は git からインストールされ、バージョンは .
だからここにフィズバズがあります
私はcにコンパイルしました(より良いオプションはありますか?)、それは私には問題ないように見えました。
しかし、それを実行しても何も出力されません。私が間違っていることはありますか?