可爱的 Python: 使用 SimpleParse 模块进行解析
2008-11-13 13:16:18 来源:WEB开发网让我们研究完整的(简化)标记应用程序:
typographify.py
import
os
from
sys
import
stdin, stdout, stderr
from
simpleparse
import
generator
from
mx.TextTools
import
TextTools
input = stdin.read()
decl = open(
'typographify.def'
).read()
from
typo_html
import
codes
parser = generator.buildParser(decl).parserbyname(
'para'
)
taglist = TextTools.tag(input, parser)
for
tag, beg, end, parts
in
taglist[1]:
if
tag ==
'plain'
:
stdout.write(input[beg:end])
elif
tag ==
'markup'
:
markup = parts[0]
mtag, mbeg, mend = markup[:3]
start, stop = codes.get(mtag, (
'<!-- unknown -->'
,
'<!-- / -->'
))
stdout.write(start + input[mbeg+1:mend-1] + stop)
stderr.write(
'parsed %s chars of %sn'
% (taglist[-1], len(input)))
更多精彩
赞助商链接