自己手撸了一个语言玩

2015 年 10 月 16 日
 bramblex

GayHub 求 start : https://github.com/bramblex/BlxScript

在线测试地址:http://bramblex.github.io/BlxScript

求各种指教 /w\

9579 次点击
所在节点    JavaScript
80 条回复
linux40
2015 年 10 月 16 日
先友情支持一下。。。。
ooTwToo
2015 年 10 月 16 日
不明觉叼
bramblex
2015 年 10 月 16 日
@oott123

thx
bramblex
2015 年 10 月 16 日
@Gonster
@cxshun
@linux40

/w\ 感谢各种 star
lzhtony
2015 年 10 月 16 日
很棒的样子.支持下.
bramblex
2015 年 10 月 16 日
@lzhtony
感谢支持
yxzblue
2015 年 10 月 16 日
已 start
ohmycodeape
2015 年 10 月 16 日
这就是编译原理学完了之后不知道这门课能干啥的结果..................o(∩_∩)o 支持一下
bramblex
2015 年 10 月 16 日
@sun2920989

话说,其实我都没有按照编译原理来 TnT
firemiles
2015 年 10 月 16 日
@bramblex 先 star 支持下,
l := List 1 2 3 4 5 End
print l # => [1, 2, 3, 4, 5]
这个 list 定义好奇怪,为什么选择这么奇怪的写法
bramblex
2015 年 10 月 16 日
@firemiles

因为 List 是一个函数。 List 接受一个参数以后,返回一个函数,直到接收的参数是 End 才会中止,并且返回数组。

举个栗子
l1 := List 1 2 3 4 5
l2 := l1 6 7 End
l3 := l1 8 9 End

print l2 # => [1,2,3,4,5,6,7]
print l3 # => [1,2,3,4,5,8,9]
jiyinyiyong
2015 年 10 月 16 日
模块方案和对象系统看得人够呛, 嗾使自己造的吗还是说 AMD 改的..
parser 部分还没看明白...
编译代码我当时做过后来干脆用 ES6 AST 直接发到 Babel 编译了, 推荐用 Babel 生成
winkidney
2015 年 10 月 16 日
lz 傻逼(好像 kso 的风气并不能带到 v2 哈哈哈
bramblex
2015 年 10 月 16 日
@jiyinyiyong

那个 Class.js 还是不要看得好,太多黑科技了不适合观看。模块方案是 AMD 改编,不过这个也不用看啊……

看代码只需要看 src/ 下的就行了。 dist/ 下的都是我用自己的工具包装过的,不适合观看。
nooper
2015 年 10 月 16 日
感觉语法很怪异
bramblex
2015 年 10 月 16 日
@winkidney 滚粗
bramblex
2015 年 10 月 16 日
@nooper

如果你玩过 Haskell ,或者你懂 Lambda 演算。那么你会觉得我的语法很亲切
LancerComet
2015 年 10 月 16 日
兹词一个,本人第一反应应该是 GoScript

另外尝试传多个参数的时候报错,然后把例子复制过去也是报错



难道是打开方式不对……
bramblex
2015 年 10 月 16 日
@LancerComet

其实,这个语言里面没有中缀运算符……

改成 a := add x y 就好了……
bramblex
2015 年 10 月 16 日
@LancerComet

PaserError At Line 2, Char 10 刚好就是那个 + 号。 TnT

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/228459

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX