我正在编写脚本语言,但在决定语法方面我需要帮助。我主要在决定两件事时遇到问题。
首先,调用数组中的部件的语法。我在考虑两个选项中的一个,但如果你愿意,可以给我建议。
假设我有一个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
}
任何和所有建议和建议都会非常有用!我希望你们提出一些很好的想法来做到这一点,并请提出任何语法建议。我还需要其他一些帮助,但这些并不是什么重大决定。
提前致谢!
答案 0 :(得分:1)
1)决定不是语法之一 - 您决定是否将2D数组作为基本类型。如果你的目标是写一个简单的语言,这肯定是矫枉过正。嵌套数组足够好(人[2] [1])。
2)由于您将不得不自己解析这些函数模式(从我收集的内容中您无法访问正则表达式),您应该根据解析的简易性进行选择。对我来说,这显然是选项#1,因为你对函数的任何声明都有明确的起点(保留字“函数”)。在解析脚本时,如果您的令牌缓冲区只包含“function”,那么您知道下面的代码将是一个函数声明。对于你的其他任何提案都不能这样说。