- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我一直在摆弄 instaparse,它很棒,但是我一直在努力避免将正则表达式用作拐杖,这导致了一些冗长。为了保持可读性,我们只说 #'[A-z]'
实际上是 'A'|'B'|etc
格式。
(def myprsr (instaparse.core/parser
"word = (ltr | num)+;
<ltr> = #'[A-z]';
<num> = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';"))
(myprs"foo123") ;; -> [:word "f" "o" "o" "1" "2" "3"]
有没有办法不用 #'[A-z]+'
和 #'[0-9]+
像 [: word "foo123"]
或 [:number "123"]
(如果我制定了一个数字顶层规则)以避免必须将它们连接起来作为后解析处理的一部分?
最佳答案
目前没有办法(除了正则表达式)在解析过程中自动合并这些字符串。我建议在 insta/transform
map 中进行这种连接。
在这种简单的情况下使用正则表达式也没有错。我们知道,通过贪婪地解析所有字母或所有数字,我们不会错过任何可能的解析。因此,正则表达式是可以接受的(并且性能更高)。
关于clojure - Instaparse 一系列数字或字母作为一片叶子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36706854/
所以我一直在摆弄 instaparse,它很棒,但是我一直在努力避免将正则表达式用作拐杖,这导致了一些冗长。为了保持可读性,我们只说 #'[A-z]' 实际上是 'A'|'B'|etc 格式。 (de
你如何让 instaparse 跳过 token 之间的空格? (我当然可以将空格本身定义为一个标记,并将其插入每个规则右侧的所有元素之间,但我正在处理一个包含三百多条规则的语法,并希望有一种方法说一
我正在使用 Instaparse 来解析如下表达式: $(foo bar baz $(frob)) 变成类似的东西: [:expr "foo" "bar" "baz" [:expr "frob"]]
我正在使用 instaparse 来解析最终用户使用的简单查询语言,该语言的计算结果为 bool 结果,例如“(AGE > 35) AND (GENDER = "MALE")”,然后需要将此查询应用于
我正在尝试使用 instaparse我的 clojure 项目的 lib。我在我的项目依赖项中使用 leiningen 2.0 和 clojure 1.5.1。我将 instaparse 添加到我的项
我在 Instaparse (Clojure) 中编写了一个使用上下文无关语法解析字符串的项目。现在我想测试几个输入字符串的解析结果。某些输入字符串可能不适合语法。到目前为止,我只测试了“解析的字符串
可以使用 Instaparse 或其他 Clojure 库来解析基于缩进的语言吗?我见过使用 Instaparse 解析 EBNF/ABNF 表达的语法的示例。有没有好的方法可以用它来解析像Pytho
我有一个由 PHP 序列化的值,我需要在 Clojure 中对其进行解码。我正在使用这个 library反序列化它;它使用 Instaparse它利用 EBNF/ABNF 符号来定义语法。作为引用,这
我是一名优秀的程序员,十分优秀!