首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Rc-lang开发周记14 重构与AST Visitor

    PackratParser会使用PackratReader管理输入,而PackratReader并没有重载toString,因此在log的时候都是类似于 trying class member at scala.util.parsing.combinator.PackratParsers...之后我的思路一直在想着如何hack这个类的toString(用ruby的话我一定会这么做的,对于ruby来说这种做法是理所应当的),但是对于Scala来说并没有那么过分的元编程能力(至少我没有搜寻到相关解决方案...): Parser[T] = Parser{ in => in match { case reader: PackratReader[Token] => println(s"trying...[T])(name: String): Parser[T] = Parser{ in => println("trying "+ name +" at "+ in) val r = p(in)...我目前想到的方面是针对表达式或者说某个特定类型的结点进行处理,那么应用的时候是需要做 最后结论还是去学习一下前人的做法,尝试查看Scala和rust的实现,Scala实现方式过于复杂,因此最终参考的是rust

    46920
    领券