一点背景知识。我正在为一个模板语言编写一个解析器,这是XML的一个子集。我正在编写自己而不是使用现有解析器的原因是真实的,但不值得进入这里。
我的解析器遍历字符串中的字符并在检测到新标记的开始,关闭现有标记等时切换模式(基本上它是有限状态机)。
我想知道的是给存储标签开启,标记更近和终止斜线字符的常量赋予什么名称。 (我知道我只是在那里命名,但我对这些名字不满意)
所以对此:
<MyTag attr="foo" />
你实际上称之为以下字符(在解析的上下文中):
<
>
/
我特别关注“标记更接近”,因为它确实含糊不清,是指</MyTag>
之类的内容还是引用终止/
或>
。明白了吗?我想毫不含糊地命名一切。
澄清一下:我知道这些字符被调用了什么,我实际上是在用动词来描述这些字符触发解析器的内容,而不是字符的名称实际上是什么。假设语言实际上是这样编写的:[Mytag attr=/foo/ #]
。它是相同的语言,只是触发模式切换的不同字符。