camlp4

    9熱度

    1回答

    最近寫在OCaml的一個DSL分析器,它在OCaml的官方github上宣佈Camlp4由ppx rewriters and extension points(https://github.com/ocaml/camlp4)替換爲: Camlp4是官方OCaml的分佈的一部分,直到其版本 4.01.0。從那以後,它被一個更簡單的系統所取代,這個系統更易於維護和學習:ppx重寫器和擴展點。 我一直在

    2熱度

    1回答

    我正在使用Camlp4來解析量化關鍵字和變量之間用逗號分隔的一串量詞。一個例子是象下面這樣: exists x,y,z, forall a,b, exists h,k 這裏,exists和forall是關鍵字,x,y,z,a,b,h,k是標識符。相應的令牌爲EXISTS,FORALL和IDENTIFIER of string。 我的數據結構: type quantifier = |

    0熱度

    1回答

    我正在測試Camlp4中的報價。我tester.ml程序如下: open Camlp4.PreCast;; let x = <:Cstm< x = 1 + 2 >>;; let y = <:expr< let y = 1 + 2 >>;; print_string "done";; 我曾嘗試以各種方式編寫本,如。 ocamlc -pp "camlp4of pa_extend.cmo -l

    1熱度

    1回答

    我目前正在嘗試將OCaml程序(使用相當標準/有限的語法)轉換爲Racket,並試圖查看是否有方法使用camlp4對中間表示進行解析。我試圖用ocamlyacc和ocamllex構建一個詞法分析器和解析器,但考慮到語法的大小,它變得相當複雜。所以,我搜索了一下,發現camlp4有一些已經內置的,但我似乎無法查找如何使用它來獲取一些OCaml代碼的AST。任何文檔/示例/想法?另外,如果您對如何更好

    4熱度

    1回答

    安裝npm和node,編譯OCaml的文件與js_of_ocaml了錯誤後,因此我做了opam switch reinstall system: :testweb $ opam switch reinstall system Your system compiler has been changed. Do you want to upgrade your OPAM installation ?

    0熱度

    1回答

    我知道這個網站上有類似的問題,但他們都沒有幫助解決我的問題。 我在ocaml的非常新,我使用有關使用Camlp4 https://github.com/ocaml/camlp4/wiki/OCaml_code_generation_tutorial下面的教程 但是我得到的第一行錯誤: open Camlp4.PreCast 說:「未綁定模塊Camlp4」 有一個camlp4.exe文件,我已經下載

    1熱度

    1回答

    我正在使用語法擴展,並想知道是否可以以某種方式輸出生成的代碼。 我寧願避免將調試跟蹤的擴展,因爲我不是開發商,不知道什麼camlp4。

    1熱度

    2回答

    我正在寫一些與一些combinatorics實用程序的小腳本。當我需要0或1這樣的數字文字時,我使用_0和_1,但這種解決方案並不理想。是否可以使用Camlp4在給定的上下文中重新解釋數字文字,或者是否添加具有專用後綴的新數字文字類型? open Num let zero = num_of_int 0 let one = num_of_int 1 let _0 = zero let _1

    0熱度

    1回答

    我有一個源代碼如下。我不明白它的語法。 [g | t <- ts; g <- symbols t]很奇怪。請幫我解釋一下,或者推薦任何與之相關的書籍或文件。非常感謝 type term = V of string | F of string * term list let rec symbols = function | V x -> [x] | F (f, ts) ->

    1熱度

    3回答

    是否有OCaml工具允許過濾源文件中的註釋,類似於gcc -E? 理想情況下,我正在尋找的東西,將刪除所有但評論,但其他方式也將是有益的。 例如,如果有一種方法可以使用camlp4/campl5/ppx來獲取OCaml註釋(包括用單個星號定義的非OCamldoc註釋),我想知道。我在Camlp4的AST中尋找評論節點方面沒有太多成功(儘管我知道它必須存在,因爲甚至有與Camlp4修改它們的位置相關