我正在设计一种语言。我对被叫什么感到困扰"否则如果"。我的语言使用缩进块,所以我需要一个关键字"否则如果"。
Python使用" elif" (meh ......)和Ruby使用" elsif" (呸!)。就个人而言,我讨厌使用缩写,所以我不想使用其中任何一种。相反,我正在考虑使用"否则如果",其中任意数量的空格可以出现在" else"和"如果"。
我注意到这在编程语言中并不经常发生。 C#有"收益率"作为一个关键词,但这是我能想到的唯一例子。
这背后是否存在实施问题?我创建了我的lex文件,它接受了没有问题的关键字。我担心有一些我无法想到的事情。
答案 0 :(得分:2)
只要您不允许内联评论/换行,多字关键字就没有错。唯一的问题是else if
可能会让您的语言用户感到困惑,诱使他们撰写else while
或else for
。你很难向他们解释你的else if
是一个关键词而不是两个句子。
答案 1 :(得分:1)
出于好奇,为什么要打扰“else if”关键字呢?你可以只有一个“else”关键字,下一个是表达式......一个“if”表达式。
<expression> := IF | somethingelse
IF <expression> THEN <expression> ELSE <expression>
想法是“else if”中的if只是“else”关键字后面的表达式的开头。
根据评论我的意思的样本
if (x == 1)
return 5
else return 4
if (x == 1)
return 5
else if (x == 2)
return 6
else
return 7
上面的概念是return 4
与if
和它的“参数”没有区别。只要您在同一行上分配下一个命令的开头(即使它不被认为是好形式),您可以将if
中的else if
视为下一个表达式的开头。< / p>