camlp4

    1

    1答えて

    私は現在OCamlプログラム(かなり標準的/限定された文法)をRacketに翻訳しようとしています。私はcamlp4を使って構文解析を中間表現にする方法があるかどうかを調べようとしています。 ocamlyaccとocamllexを使ってレクサーとパーサを構築しようとしましたが、文法の大きさを考慮するとかなり複雑になりました。だから私は検索し、camlp4にすでに組み込まれているものをいくつか持って

    5

    1答えて

    私はcamlp4の引用を含むこのコードを持っています。 let f_name = "my_func" <:str_item< value $lid:f_name$ a = a * 2 >> camlp4ofを介してこれを実行した後、それはこの生成: Ast.StExp (_loc, (Ast.ExApp (_loc, (Ast.ExApp (_loc, (Ast.ExI

    2

    2答えて

    ocamlp4で新しくなった。私はそれを始めるためにJake Donham's blogを読んでいます。 私は小さなCamlp4のプログラムウィッヒのように単純型を取得します書き込みしようとしている: type t = Foo | Bar | Baz とt_of_stringとt_to_string機能を生成します。 let wrap_str_item si = let _loc =

    6

    4答えて

    は私が let rec parse_document = parser | [< len = parse_int32; st; >] -> parse_list [] (ES.take_int32 len st) | [< >] -> malformed "parse_document" は私が内部[< >]何を知ることができたいくつかのソースコードを見たことが

    14

    1答えて

    私は、一般的にこれを実現する方法を知りませんが、私は、明確にするために、特に約1インスタンスを頼むよ: Sexplibは、私には面白そう。私はそれと一緒に遊びたいです。私はそれをダウンロードして、ちょうどいい(とにかく)確かにインストールされています。トップレベルでは "with sexp"構文拡張を使いたいと思います。これをどうやってやりますか?私が使用しているすべての例は、あなたが既にトップレ

    7

    1答えて

    OCaml 4.00に追加されたAlain Frisch of Lexifi over a year ago for an alternative to camlp4 for writing sytnax extensions making use of the -ppx flagの提案がありました。当時、彼はまだやるべき仕事(属性、引用など)があったと述べていましたが、すでに使えるものでした。

    1

    2答えて

    私はこのようないくつかのコードを持っている: let full = Var({name ="full"; value = F});; 私はむしろ「フ​​ルを繰り返す必要はありませたい:私は私がしなければならない変数を作成したい場合は後で type boolean = T | F type bexp = Const of boolean | Var of variable

    2

    1答えて

    私はいくつかのOCamlソースファイルがIFDEFを使用するプロジェクトを持っています。このプロジェクトのすべての.mlファイルをcamlp4.macroで前処理する必要があることをOCamlbuildに伝える簡単な方法はありますか?プロジェクトのルートに

    5

    2答えて

    私はcamlp4.macroを使用して条件付きコンパイルを有効にしています。私は という問題を抱えてOCamlbuildに、 "use_jscore"とタグ付けされた特定のファイル を与えられたcamlp4オプションで前処理しなければならないことを通知しています。ここに私が現在持っているものは次のとおりです: let _ = dispatch begin function | After

    0

    1答えて

    HOL Lightには、ocamlの構文を変更するためのいくつかの悩ましいcamlp5ロジックがあります。私はocaml 4.04と6.17で動作するようにパッチを当てましたが、camlp5の下でのみ動作しますstrict mode。 STRICTが定義されていない場合STRICTが定義され、そして最初にされている場合、これは2番目のマクロの分岐を実行する必要があり、私の理解の最高に value