PEGjs可以将语句的"closing"字符作为输入吗?
Can PEGjs take the "closing" character of a statement as input?
我一直在研究 PEGjs 语法。大部分都有效,但我在最后一件事上遇到了麻烦。我的解析器接受如下所示的输入:First:[content];
和 returns 类型(第一或第二)以及内容中的每个元素("c"、"o"...) .我还需要它能够将 ]
作为输入,因此它应该能够解析以下内容:First:[co]nt];
.
有人知道我该怎么做吗?这是我目前所拥有的:
prod = unit+
unit = u:(form / size)
form = key:(kind) ":" value:(clas) ";" {return {type:key, value:value} }
clas = "[" v:(charact+) "]" { return {type:"class",value:v} }
kind = "First" / "Second"
charact = letters / symbols
symbols = "(" / ")" / "!" / "?" / "%" / "{" / "}" / "[" // "]"
letters = [A-Za-z]`
解决这个问题的一种方法是寻找 ]
后面没有分号,即。 "]" (!";")
。在下面的示例中,我还使用 $()
将 symbols
组合成一个字符串。
prod = unit+
unit = u:(form / size)
form = key:(kind) ":" value:(clas) ";" {return {type:key, value:value} }
clas = "[" v:(charact+) "]" { return {type:"class",value:v} }
kind = "First" / "Second"
charact = letters / symbols
symbols = $("(" / ")" / "!" / "?" / "%" / "{" / "}" / "[" / "]" (!";"))
letters = [A-Za-z]
我一直在研究 PEGjs 语法。大部分都有效,但我在最后一件事上遇到了麻烦。我的解析器接受如下所示的输入:First:[content];
和 returns 类型(第一或第二)以及内容中的每个元素("c"、"o"...) .我还需要它能够将 ]
作为输入,因此它应该能够解析以下内容:First:[co]nt];
.
有人知道我该怎么做吗?这是我目前所拥有的:
prod = unit+
unit = u:(form / size)
form = key:(kind) ":" value:(clas) ";" {return {type:key, value:value} }
clas = "[" v:(charact+) "]" { return {type:"class",value:v} }
kind = "First" / "Second"
charact = letters / symbols
symbols = "(" / ")" / "!" / "?" / "%" / "{" / "}" / "[" // "]"
letters = [A-Za-z]`
解决这个问题的一种方法是寻找 ]
后面没有分号,即。 "]" (!";")
。在下面的示例中,我还使用 $()
将 symbols
组合成一个字符串。
prod = unit+
unit = u:(form / size)
form = key:(kind) ":" value:(clas) ";" {return {type:key, value:value} }
clas = "[" v:(charact+) "]" { return {type:"class",value:v} }
kind = "First" / "Second"
charact = letters / symbols
symbols = $("(" / ")" / "!" / "?" / "%" / "{" / "}" / "[" / "]" (!";"))
letters = [A-Za-z]