我正在尝试为以下语言创建语法
someVariable = This is a string, I know it doesn't have double quotes
anotherString = This string has a continuation _
this means I can write it on multiple line _
like this
anotherVariable = "This string is surrounded by quotes"
正确解析前面代码的正确的Treetop语法规则是什么?
我应该能够为三个变量提取以下值
谢谢
答案 0 :(得分:1)
如果您将序列“_ \ n”定义为单个空格字符,并确保在接受行尾之前对其进行测试,那么VB样式的行继续应该只是删除出。在VB中,换行符“\ n”本身不是空格,而是一个独特的语句终止字符。您可能还需要处理回车符,具体取决于您的输入字符处理规则。我会写这样的白空间规则:
rule white
( [ \t] / "_\n" "\r"? )+
end
然后你的陈述规则如下:
rule variable_assignment
white* var:([[:alpha:]]+) white* "=" white* value:((white / !"\n" .)*) "\n"
end
和你的最高规则:
rule top
variable_assignment*
end
您的语言似乎没有比这更明显的结构。