@TOC
前言
本文只作为笔记记录。
TinText开源地址:https://github.com/Smart-Space/TinText
语法解析器
从前文可以看到,新的Tin标记语言非常简单,即便是加入嵌套关系,也只是标签级别做个标记就行了。(在写这篇文章的时候,新版Tin语法解析器还没有重写到能够解析嵌套标签的程度,但是很简单,就像下文所说)
比如:
<pass>#pass-content1
...
<pass>#pass-content2
...
<pass>#pass-content2
...
</pass>#pass-content1
好了,话不多说,虽然接下来也没有多少话。
正则匹配
class TinParser():
"""
tin标记解析模块
"""
ver='V-4'
def __init__(self):
#<tag>, -, |, |-, [空]
self.tin_re=re.compile('[ ]{0,}(<.*?>|-|\\|-|\\||)(.*)')
self.tag_start_attrs_tuple=('|','-')
#特殊标记|,-,;
我们创建了一个名为TinParser的语法解析器,并且预编译了语法正则匹配self.tin_re
。
接下来的流程思路大致如下:
具体实现:
def parse(self,tin):
#分析
TAGATTR=