instaparse

    8

    1答えて

    私は構文解析の初心者であり、いくつかのクロージャーコードを分析したいと考えています。私は誰かが無差別を使ってどのようにクロージャーコードを解析できるかの例を提供できることを期待しています。私は数字、記号、キーワード、擬似文字、ベクトルと空白を行うだけです。 私が解析したいいくつかの例: (+ 1 2 (+ 3 4)) {:hello "there" :look '(i am

    0

    2答えて

    改行を含むファイルのテキストを解析します。ファイルは、WindowsまたはUnixでかもしれないが、今のところは、この内容で、Windowsのファイルです: (************** ***************) 上記のファイルの内容slurpで読み込まれたと改行が含まれています。ここで私が使用しようとしています文法は次のとおりです。 S = start-comment stars

    0

    1答えて

    Instaparseで文法を構築しようとしています。私はいつも問題を解決 (defn parse-it [] (let [parser (insta/parser ebnf) res (insta/parses parser input) _ (assert (seq res) (str "Empty list")) choices (count re

    0

    1答えて

    -オペレータは否定をサポートすることになっているが、私はそれが仕事を得ることはできません。 raw-type = "DINT" | "REAL" | "SINT" | "BIT" custom-type = - raw-type 私はエラーを取得しようとするたびに:RuntimeException - occurs on the right-hand side of your grammar

    5

    2答えて

    はそう (def parser (insta/parser (clojure.java.io/resource "dimacs.bnf") :auto-whitespace :standard)) ... (time (parser (slurp filename))) のように呼び出して、次の文法 <file>=<comment*> <problem?> clause+ co

    2

    1答えて

    私は不慣れで悩んでいましたが、それは素晴らしかったですが、私はRegexesを松葉杖として使うのをやめようとしていましたが、もう少し冗長になりました。この可読性を保つために、ちょうど#'[A-z]'と言うのは実際には'A'|'B'|etcの形式です。 (def myprsr (instaparse.core/parser "word = (ltr | num)+; <ltr>