1
jybox 2015-04-06 01:33:11 +08:00
很早就听说了这个项目,看来现在已经相当完善了,建议维护一份像 CoffeeScript 官方一样的和 JavaScript 左右对照的语法教程,不然要了解语法的话简直基本靠猜啊。
|
2
Shared 2015-04-06 01:47:45 +08:00
写个简单的入门教程吧。
话说关键字有些酷炫啊(isnt 是怎么回事,反斜杠又是什么…… 总之看上去很有趣,但是现在完全没头绪 |
5
infinte 2015-04-06 03:20:31 +08:00
PatEL 原本也想用缩进,后来还是改花括弧了。
|
6
infinte 2015-04-06 03:23:43 +08:00
(上面的语法其实有点老,现在 |. 算符是给换成 :. 了)
|
7
vibbow 2015-04-06 03:23:49 +08:00 via Android
不用括号而用缩进来表示层叠关系的都是耍流氓。
|
8
jiyinyiyong OP @Shared 是的 isnt 是 CoffeeScript, 反斜杠是来自 Haskell 的匿名函数:
\x y -> x + y |
9
jiyinyiyong OP @vibbow 我用了括号的呀, 只是限制了不允许括号跨行.
Lisp 里的经验教训, 一旦括号跨行, 想要再匹配起来就不容易了 |
10
jiyinyiyong OP @infinte 终于出现了大神... 但是我还是打算永远坚持这个语法的, 我还有后招
http://www.tudou.com/programs/view/lehLxTKfc5w/ Cirru 设计之处核心是一个结构化的编辑器, 直接编辑 AST, 文本本来是对现实的折衷的, 谁知道结果比结构化编辑器效果要好 而就文本来说, 确实比我把语法树写成文本还要简单个漂亮... >. 操作符让我想起 Elixir 的 |> http://elixir-lang.org/docs/stable/elixir/Kernel.html#|>/2 对了 Patrisika 也是嵌套数组跟字符串的话我应该也能用 Cirru 来写的吧? |
11
jiyinyiyong OP @infinte 忘了问为什么改成花括号啊?
|
12
infinte 2015-04-06 20:50:57 +08:00
@jiyinyiyong PatEL AST-2(就是原始 AST)有保留算子比如 [.quasiquote]、[.unquote] 和 [.sliceunquote],转到 cirru 不一定方便
|
13
jiyinyiyong OP 改 Writer 打包流程的时候找了份 JSON 尝试了一下
Cirru 顶层表达式不能是字符串所以先不写 `.begin` 里边没有 $ ( ) " 这几个特殊字符, Writer 还好不会报错 https://github.com/be5invis/PatEL/blob/master/src/essential-macros.json http://repo.cirru.org/writer/ https://gist.github.com/jiyinyiyong/90b1c522e8487f6cf622#file-patel-cirru |
14
jiyinyiyong OP @infinte 生成的效果远不如代码... 不过跟手写 JSON 比的话好多了
|
15
guangwong 2015-04-08 13:04:27 +08:00
卤煮好厉害。。 快开始搞语言后端。。
|
16
jiyinyiyong OP @guangwong LLVM IR 的计划估计也要按月按年算,, 我可是全职的前端工程师 >_<
|
17
guangwong 2015-04-08 22:09:42 +08:00
@jiyinyiyong - -web 前端开发工程师转行 PL Compiler 前端工程师 。。。 X X,我也想转行。。
|
18
jiyinyiyong OP |
19
jprovim 2015-05-17 05:14:18 +08:00
@jiyinyiyong star 支持. 如果能把研發過程發出來的話, 相信是比使用Cirru 語言本身更有幫助的.
|
20
jiyinyiyong OP |
21
holulu 2015-07-25 17:30:55 +08:00
对于这个项目挺感兴趣的,不过感觉用缩进不爽,弄得像 elixir 那样的语法编译出 js 就爽了。毕竟 js 的语法非常原始,只能算得上是浏览器上的汇编语言,现在的 Web UI 即使是用 coffeescript 表达能力也很低。简单的 UI 功能都得写一堆。
|
22
jiyinyiyong OP @holulu ElixirScript 可以上!
|