例:
變 串="ria4";
彈(串);
//↑上面的代碼就是廣式javascript,廣類型為“javascript廣”,被【廣譯】後,得到下面的javascript原生代碼:
var 串="ria4";
alert(串);
廣語言最原始的使命是把各種語言的關鍵字變成中文,然後做一個對應各種對象方法的中文函數庫,雖然現在目標更廣大,但把關鍵字本土化,尤其是用一個漢字對應一個關鍵字,還是廣語言的最神聖的過程。下面的函數就是對javascript進行【廣譯】,即把某種語言廣式書寫方式還原為此語言原來的樣子(一點也不萌了)。最簡單的例子就是把“如 ”變成“if ”把“函 ”變成“function ”。
代碼的內容,我以後再解釋,將來也是用文本式來存在資料庫來實現這些對照關係,自然語言作為“別名”,會先替換為極簡的廣式,再參與【廣譯】。(以後用“【】”這個符號括起來的內容都是廣語言的函數)。
以下是相關的廣函:
function 廣譯(參){
/*
■javascript關鍵字
如if如果
另else另外,否則
閘switch開關,判斷
案case案子,情況,事情
默default預設
繼continue繼續
破break打破,跳出迴圈
為for因為,迴圈
做do做事,請
雖while雖然,當真
在in在裡面
變var變數
函function函數
返return返回
嘗try嘗試
抓catch抓獲
頑finally頑強,錯也做
拋throw拋出
新new建立
刪delete刪除
這this這個,此
泊typeof查類型,停泊在
汪instanceof為此類型,汪汪
無void無類型
同with同夥
■javascript關鍵字組合
若else if否則如果,另如
*/
var 果 = 參 ;
//
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)如/gm" + "廣分隔" + "$1if ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)\\s*另/gm" + "廣分隔" + "$1else ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)閘/gm" + "廣分隔" + "$1switch ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)案/gm" + "廣分隔" + "$1case ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)默/gm" + "廣分隔" + "$1default ")
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)繼/gm" + "廣分隔" + "$1continue ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)逃/gm" + "廣分隔" + "$1break ")
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)為/gm" + "廣分隔" + "$1for ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)做/gm" + "廣分隔" + "$1do ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)雖/gm" + "廣分隔" + "$1while ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)在/gm" + "廣分隔" + "$1in ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)變/gm" + "廣分隔" + "$1var ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)函/gm" + "廣分隔" + "$1function ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)返/gm" + "廣分隔" + "$1return ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)嘗/gm" + "廣分隔" + "$1try ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)\\s*抓/gm" + "廣分隔" + "$1catch ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)頑/gm" + "廣分隔" + "$1finally ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)拋/gm" + "廣分隔" + "$1throw ");
果 = 換(果 + "廣分隔" + "/=(\\s*\\}?)新/gm" + "廣分隔" + "= new ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)刪/gm" + "廣分隔" + "$1delete ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)這/gm" + "廣分隔" + "$1this ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)泊/gm" + "廣分隔" + "$1typeof ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)汪/gm" + "廣分隔" + "$1instanceof ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)無/gm" + "廣分隔" + "$1void ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)同/gm" + "廣分隔" + "$1with ");
果 = 換(果 + "廣分隔" + "/^(\\s*\\}?)若/gm" + "廣分隔" + "$1else if ");
//
果 = 換(果 + "廣分隔" + "/ 真 /gm" + "廣分隔" + " true ");
果 = 換(果 + "廣分隔" + "/ 假 /gm" + "廣分隔" + " false ");
//
果 = 換(果 + "廣分隔" + "/串\\s*\\(/gm" + "廣分隔" + "String");
//果 = 換(果 + "廣分隔" + "/^\\s*\\}?\\s*\\(/gm" + "廣分隔" + "alert(");
果 = 換(果 + "廣分隔" + "/^\\s*例\\s*(.+?);?\\s*$/gm" + "廣分隔" + "$(\"#果\").html($1);");
//彈("廣譯:" + 果);
return 果;
}
///////////////////////////////////////
function 換(參){
var 果 = 參2(參); //正則文本
var 妮一 = 執(果) //正則對象
果 = 參1(參).replace(妮一,參3(參));
// 彈("【換】果:" + 果);
return 果.toString();
}
///////////////////////////////////////
function 參1(參){
var 果 = "";
陣參 = 割(參);
果 = 陣參[0];
return 果;
}
function 參2(參){
var 果 = "";
陣參 = 割(參);
果 = 陣參[1];
return 果;
}
function 參3(參){
var 果 = "";
陣參 = 割(參);
果 = 陣參[2];
return 果;
}
//....(其他取參數類似)
///////////////////////////////////////
function 執(參){
var 果 = "";
try{
果 = eval(參+";");
return 果;
}catch(e){
//return 廣無果 + 參 + " 錯誤碼:" + e;
}
}
///////////////////////////////////////
function 割(參){
var 幾 = 參.indexOf("廣分隔");
var 為有廣分隔 = (幾 != -1);
var 為有逗號 = 參.indexOf(",") != -1;
var 串="";
if(為有廣分隔){
串 = "廣分隔";
}else{
if(為有逗號){
串 = ","; //例:441,891
}else{
串 = ",";
}
}
陣參 = 參.split(串);
var 果 = 陣參;
廣果 = 果;
return 果;
}