读书人

用JS了1中文化的JS

发布时间: 2012-11-08 08:48:11 作者: rapoo

用JS了一中文化的JS
趁有假期,用js了一套js的法分析器、法分析器、器、解器,以及一很
的ide,自己了函和包。另外了中文化的法分析器法分析器,了一
我比意的中文程言。

http://code.google.com/p/chn-js/

------------------------------

中文程言格(例方式):

+ - * / ^ & | ~ = 等等
可考:== -> =? 如 1 =? 2 比表式一例改 >? <? <=? <=?(未按此)
量明
元 a = expr
函明
函名(, ) :: [[ 代段 ]]
函名(, ) ::
[[
代段
]]
匿名函
#排序(_(1, 2) :: [[返回 1 - 2;]])
性引用
象#性
象#方法(,)

象直接量
元 o = [[性: 值1, 性2 : 值2, 性3 : 值3]];
元 o = [[
性: 值1,
性2 : 值2,
性3 : 值3
]];
元 o = [[:]];
o#性
直接量
元 o = [[值1,值2,值3]];

#[1]

返回句
返回;
返回 1;
返回 [[性: 值, 性2 : 值2, 性3 : 值3]];


出 [[性: 值, 性2 : 值2, 性3 : 值3]];
出 新 ("量 a 未定");


如果 a == 1 [[ // 後面必接句,即:不允 if(cond) aa; 必是 if cond {aa;}
dadada
]] 否 [[
dididi
]]


如果 a == 1 反[[
dadada
]]

反[[
dadada
]]如果 a == 1;

break
跳出
continue


句:
回收源 :: // js 的 a : 在句 { } 中易象立即值混淆,存在歧

分支
如果 a [[ // 不使用 ==,避免和 == 突
1 :
xxx;
跳出;
2:
yyy;
跳出;
其它:
zzz;
]]


令 a = 1; a < 10; a ++ [[
zzz;
]]

所有 a 於 o[[
zzz;
]]
in

instanceof

try
行[[
xxx;
]] 抓 e [[
yyy;
]] 最 [[
zzz;
]]

-----------------------------------
代:

// ----------------------- 造函 ------------------------
人() :: [[
我#姓名 = '三';
我#年 = 22;
我# = _() :: [[
console#log('大家好,我叫' + 我#姓名 + “,我今年” + 我#年
+'了');
]]
]]

元 三 = 新 人();

三#();

log(三#姓名);

//----------------------- 排序 ----------------------------

元 a = [[4, 6, 7, 2, 1, 3]];
a#sort(_(a, b)::[[
返回 a - b;
]]);
log(a);

// ---------------------- cons ------------------------
cons(a, b) ::[[
返回 _(o) :: [[
如果 o == 1 [[ 返回 a; ]] 否 [[返回 b;]]
]]
]]

car(o) :: [[返回 o(1);]]
cdr(o) :: [[返回 o(2);]]

元 s = cons(7, 8);
log(car(s));
log(cdr(s));


黏合(一, 二) ::[[
返回 _() :: [[
如果 == 1 [[ 返回 一; ]] 否 [[返回 二;]]
]]
]]

取(分子) :: [[返回 分子(1);]]
取尾(分子) :: [[返回 分子(2);]]

元 小 = 黏合(7, 8);
log(取(小));
log(取尾(小));

// ======================
人() :: [[
我#姓名 = '三';
我#年 = 22;
我# = _(urname) :: [[
console#log(urname +',你好,我叫' + 我#姓名 + “,我今年” + 我
#年 +'了');
返回 2;
]]
]]

元 三 = [[:]];
人#apply(三, [[]]);
元 s = 三##call(三, '王三');
元 s = 三##apply(三, [['王三']]);
log(s);

// --------------------------------- prototype & instanceof -------------------
----
人() :: [[
我#姓名 = '三';
]]
人#prototype# = _()::[[
log('你好,我是' + 我#姓名);
]];

男人() :: [[
]]

男人#prototype = 新 人();

男人#prototype# = _() ::[[
log('你好,我是' + 我#姓名 + '先生');
]];

元 a = 新 男人();
log(a 是 男人);
log(a 是 人);
log(a 是 Object);

//------------------------- 包 ------------------------
f(a) :: [[
返回 _()::[[ 返回 a; ]]
]]

元 a1 = f(1);
元 a2 = f(2);

a1() + a2()

//---------------------- --------------------------
// this. 是否被常量化
人() :: [[
我#喜的人 = [[]];
我#姓名 = '三';
]]

元 p1 = 新 人();
元 p2 = 新 人();

p1#姓名 = '李世民';
p1#喜的人#push('程咬金');

log(p2#姓名);
log(p2#喜的人);

-------------------

enjoy it~~

读书人网 >JavaScript

热点推荐