2012-01-13 44 views
0

我正在編寫腳本語言,但是我需要幫助確定一些語法。我主要是在決定兩件事情時遇到問題。哪個更適合數組的語法?

首先,調用數組中的部件的語法。我正在考慮兩種選擇之一,但如果你願意的話,給我一些建議。

比方說,我有一個數組在Javascript中可表示爲

var people = [ 
    ["Joe",34], 
    ["Bill",29], 
    ["Steve",36] 
]; 

的選項

Option One 
    people[2][1] 
    returns 36 

Option Two 
    people[2,1] 
    returns 36 

二,語法調用函數。我正在考慮兩種選擇之一,但如果你願意的話,給我一些建議。

比方說,我有一個在Javascript將表示一個功能

function foo(bar,hi) { 
    return bar; 
} 

的選項

Option One 
    The same as Javascript 

    example: 
    function foo(bar,hi) { 
     return bar 
    } 

Option Two 
    The same as Javascript, but 
    - separating each private variable with it's own set of parentheses 
    - no need to state "function" in front 

    example: 
    foo(bar)(hi){ 
     return bar 
    } 

Option Three 
    The same as Javascript, but 
    - a colon to separate the namespace from the private variables 
    - no parentheses due to the lack of need 

    example: 
    foo:bar,hi{ 
     return bar 
    } 

任何和所有的意見和建議將是非常有幫助!我希望你們能夠提出一些很好的想法來做到這一點,並且請爲語法提供任何建議。我仍然需要其他一些幫助,但這些並不是什麼大的決定。

在此先感謝!

回答

1

1)該決定不是語法之一 - 您正在決定是否將2D數組作爲基本類型。如果你的目標是寫一個簡單的語言,這絕對是矯枉過正。嵌套數組足夠好(人[2] [1])。

2)由於你將不得不自己解析這些函數模式(並且從我收集的內容中無法訪問正則表達式),所以應該根據解析的方便性來選擇。對我來說,這顯然是選項#1,因爲任何函數聲明(保留字「function」)都有明確的起點。在解析腳本時,如果令牌緩衝區僅包含「function」,則知道以下代碼將成爲函數聲明。對於您的其他提案中的任何一個都不能這樣說。