小编use*_*650的帖子

学习树顶

我正在尝试自学Ruby的Treetop语法生成器.我发现,不仅文档中的"最佳"文档非常稀疏,而且它似乎并不像我希望的那样直观.

在高层次上,我真的很喜欢比现场文档或视频更好的教程,如果有的话.

在较低的层次上,这是一个我根本无法工作的语法:

grammar SimpleTest

  rule num
    (float / integer)
  end

  rule float
   (
    (( '+' / '-')? plain_digits '.' plain_digits) /
    (( '+' / '-')? plain_digits ('E' / 'e') plain_digits ) /
    (( '+' / '-')? plain_digits '.') / 
    (( '+' / '-')? '.' plain_digits) 
   ) {
      def eval
        text_value.to_f
      end
   }
  end

  rule integer
    (( '+' / '-' )? plain_digits) {
      def eval
        text_value.to_i
      end
    }
  end

  rule plain_digits
    [0-9] [0-9]*      
  end

end
Run Code Online (Sandbox Code Playgroud)

当我加载它并在一个非常简单的测试对象中运行一些断言时,我发现:

assert_equal @parser.parse('3.14').eval,3.14
Run Code Online (Sandbox Code Playgroud)

工作正常,而

assert_equal …
Run Code Online (Sandbox Code Playgroud)

ruby grammar parsing treetop

18
推荐指数
2
解决办法
1万
查看次数

在没有Java知识的情况下学习Clojure

好的,所以我对另一个列表感到很兴奋.我得到了一份beta Clojure编程书的副本......

我注意到的最重要的一点就是假设我知道......就像所有主要的java类一样.

除此之外,一般来说,我并不关心Java.我只是想要足够的知识,让Clojure成为我的选择.

关于如何学习我需要的所有内容的任何建议?

lisp java clojure

17
推荐指数
3
解决办法
5314
查看次数

最佳编译器目的地

我有一些语言,我一直在建立作为口译员.当我准备好采取"下一步"时,哪些选项最适合非本地编译格式...每种格式的优缺点是什么?

我一直在寻找编译CLR或LLVM,并考虑C-midcompile几次,但我不完全确定.

我希望能够移植的一些功能如下:

  1. REPL - 我正在构建的语言之一支持运行时的块级评估.
  2. 强大的宏 - 我正在构建的语言之一需要能够在标记化之前单独过滤代码,并且在标记化和解析之间的中间步骤中.

好吧,不是真的"少数",只有两个.我想我可以将我的语言支持的任何其他功能移植到"任何东西".

什么是我最好的选择,以及他们的优点/缺点?

compiler-construction llvm

11
推荐指数
2
解决办法
1688
查看次数

服务器端推入Rails

我想使用AJAX在rails中实现可扩展的聊天室.我从研究中得知,唯一的可扩展性发生在服务器端推送上.

我的两个问题是:

1)在一个效率相当高的聊天服务器中,轮询在什么时候变得禁止?2)我真的不想使用Juggernaut.我不太了解彗星是如何工作的.我想我想知道,如果使用Javascript(创建客户端服务器/轮询器)和另一种语言(为防火墙后面的客户端提供有效的轮询,以及集成到CGI中),这对我来说是非常困难的.3)(是的,2个),我是否正确地走了正确的道路?

我希望得到的最简单的答案是量化的"是的,你将5行Javascript放入客户端,将20行ruby放入CGI脚本中,并将其称为一天".

ajax chat ruby-on-rails

5
推荐指数
1
解决办法
5684
查看次数