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 =