首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    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

    29420

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券