parser-combinators

    0熱度

    1回答

    我試圖建立與伊德里斯一光年格式化。 整個項目到目前爲止是在這裏: https://github.com/hejfelix/IdrisFMT/blob/501a4a9e8b1b4154ed0d7836676c24d98de8b76a/IdrisFmt.idr 現在,目的是來標記文件本身,然後漂亮的打印出來,即文件作爲輸入應該是一個固定點。 這個問題是每個字符串文字,我的解析器似乎吃了空白之後。如果在

    3熱度

    1回答

    我需要在使用FParsec的OperatorPrecedenceParsers解析運算符時產生錯​​誤,特別是在映射階段。假設我有以下代碼: let pOperatorExpr : ExpressionParser = let opp = new OperatorPrecedenceParser<MyType, unit, unit>() let arithmeticOpera

    0熱度

    1回答

    我試圖從頭開始編寫終端解析器(用於解析器組合器)。我的方法是在輸入字符串上使用regexp-match-positions*,如果在第一個位置找到模式,那麼我們輸出拆分字符串。 這是我得到了什麼,至今: #lang racket/base (require racket/match) (define (make-terminal-parser pattern) (define (

    1熱度

    1回答

    我寫Scala程序讀取來自用戶的字符串,並使用任一遞歸下降解析器或解析器組合,以確定是否輸入的字符串的下面的語法相匹配(即,是由a和b),同時建立一個分析樹。如果匹配成功,則輸出生成的樹。 語法: S -> E$ E -> C E2 E2 -> E E2 -> NIL C -> 'a' | 'b' 我是相當新的斯卡拉所以任何閱讀我們將不勝感激,如果你有任何想法,請讓我知道我怎麼能實現這

    0熱度

    1回答

    我目前正在寫一Parser這Scala延伸JavaTokenParsers應該除其他事項外解析以下Grammar: list = "[" [ { expr "," } expr ] "]" 我的分析器類: class ExpParser extends JavaTokenParsers { def expr: Parser[Expression] = int | list | bo

    3熱度

    1回答

    當我只引用下面代碼中顯示的名稱時,我收到了「子例程深度遞歸」警告。 use 5.016 … __SUB__->()也沒有幫助。 構建提示:git clone; scons bindings = perl test; cd build/opt/src/bindings/perl; $ EDITOR h.pl use 5.024; use strictures; use blib; use ha

    0熱度

    1回答

    我有一個命題公式,例如,在該字符串格式: (~d \/ x) /\ (y \/ ~b) /\ (~y \/ a \/ b) 我寫這樣一個解析器: import scala.util.parsing.combinator._ class CNFParser extends JavaTokenParsers with RegexParsers { def expr: Parser[Any

    2熱度

    1回答

    我正在使用Scala的Parser Combinator框架,擴展了RegexParsers類。我有一個identifier令牌,它以字母開頭,可以包含字母,破折號,下劃線和數字,只要它不是保留字中的一個。我嘗試使用解析器的not()來停止使用保留字,但它也匹配帶有保留字前綴的標識符。 def reserved = "and" | "or" def identifier: Parser[Str

    2熱度

    2回答

    我需要以無序的方式解析這些單詞。現在我可以看到以下 def first: Parser[String] = ??? def second: Parser[String] = ??? def unordered = (first ~ second) | (second ~ first) 但我想知道是否有任何原生解決方案?

    1熱度

    2回答

    我試圖寫的一個小骰子符號解析骰子符號(例如,「2D6」,其中2是count和6是死size)使用所述文庫中elm-tools/parser解析器。 的表達式應該是在形式 [int] "d" int ,但我想不出來解析可選領先int(這將默認爲1,如果缺少它)。 到目前爲止,我已經想出了這一點: import Parser exposing (..) type alias Roll =