dongshan3806 2015-04-25 15:25 采纳率: 0%
浏览 28

我想写一个特定用途的解析器/词法分析器,但我感到不知所措。 你能用这个小例子帮我吗? [关闭]

So I'm writing a php templating engine called Slade inspired by Ruby Slim and laravel Blade.

And now many people are recommending me to rewrite it to a lexer / parser thing, instead of relying completely on regexes. So I googled about lexers and parsers and tried to learn how they work, and while I think I get the general idea, I still find it hard to start write one.

So I was hoping if someone would help me on my way, by showing how to do one example. How would I exactly lex (is that even a verb?) and parse this:

#wrapper.container.well first-attr="a literal attribute" second-attr=variable.name And here some text that will be the content of the div...

Into these nodes:

[
    'tagName' => 'div', // since there was no tagname, a div is assumed
    'attributes' => [
        'id' => 'wrapper',
        'class' => 'container well',
        'first-attr' => 'a literal attribute',
        'second-attr' => 'the value of the variable',
    ],
    'textContent' => 'And here some text that will be the content of the div...'
]

Of course I don't expect anyone to write out a function that 100% lexes / parses this, but I'd like to see the general pseudo code of how to go about this. Could anyone help me with this?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
    • ¥15 求daily translation(DT)偏差订正方法的代码
    • ¥15 js调用html页面需要隐藏某个按钮