在JavaScript中使用开始和结束

时间:2013-04-01 00:11:17

标签: javascript

我是否可以某种方式更改JavaScript语言,使end一词等同于}符号而begin等同于{

3 个答案:

答案 0 :(得分:6)

不,你不能。您可以做的最好的事情是使用一个脚本修改另一个带有无效type的脚本,并将其更改为有效的type,这样您就可以获得效果了。

<script type="text/x-algolscript">
    function hello() begin
        alert("Hello, world!");
    end
    hello();
</script>
<script type="text/javascript">
    Array.prototype.forEach.call(document.getElementsByTagName('script'), function(script) {
        if(script.type === 'text/x-algolscript') {
            var oldParent = script.parentNode;
            var oldNext = script.nextSibling;
            oldParent.removeChild(script);
            script.textContent = script.textContent.replace(/\bbegin\b/g, '{').replace(/\bend\b/g, '}');
            script.type = 'text/javascript';
            oldParent.insertBefore(script, oldNext);
        }
    });
</script>

然而,这是不区分大小写的,并且很乐意改变你的字符串等。

加分:缩小版和浏览器兼容版本:

!function(s,i,t,e,l,p,o,n){for(l=s.length;i<l;i++)((e=s[i]).type==='text/x-algolscript')&&t.push(e);for(i=0;i<t.length;i++)o=(e=t[i]).parentNode,n=e.nextSibling,o.removeChild(e),p='textContent',e[p]||(p='innerText'),e[p]=e[p].replace(/\bbegin\b/,'{').replace(/\bend\b/,'}'),e.type='text/javascript',o.insertBefore(e,n)}(document.getElementsByTagName('script'),0,[]);

答案 1 :(得分:5)

您可以编写自己的转换编译器来解析我们的Pascalesque Javascript并输出传统的Javascript。您可以将begin / end替换为括号,也可以使用更为高级的内容,例如Jison

答案 2 :(得分:2)

看看META II

  

......制作了很多编译器 - 这一切都很简单。没有Ajax,   Active X,DLL,SO,ASP,CGI,Java,插件,模块,XML,cookie,   PHP,Perl,Python,魔术shell操作,全球标准杜   jour,或星系间统治计划是必要的 - 只是简单明了   框架中的JavaScript。您也可以移动编译器   构建这些网页并选择您的编程语言   通过切割和粘贴。毕竟编译器只是一个程序   读取文本并写入文本或二进制文件。

就像一个想法。

<小时/> 或者,您可能希望在开头使用以下(可疑的)编码风格(以熟悉ES的语法):

function name(args){//begin
  // your code here
}//end

while(L--){//begin
  // your code here
}//end