syntax - 将一种语法嵌入另一种 : is it kludge or clever?

标签 syntax comparison comments cross-domain

背景:最近在查看“结构化文本编辑器”时,我注意到他们使用了一个技巧来更改 python/perl/c++/java 等。通过将 XML 潜入相应语言的注释中,将其转化为“结构化”大纲。

我记得我也曾经在 Windows bat 文件中看到过这个技巧。 bat 文件的 REM 语句用于“隐藏”一些 perl 代码。

问题:您是否见过有人使用编程语言或标记语言的注释来嵌入完全不同语言的语法的实例?如果是,您能否提供该示例的链接或解释它是什么?

如果你还没有,这里是一个例子:

问题:这种“把戏”是不是一个聪明有用的主意?如果是这样,你能举出一个你使用这个技巧的特殊例子吗?如果不是,您能描述一下为什么您认为这是个坏主意吗?

最佳答案

你说的是 polyglots ,这是计算机编程的一个绝对迷人的方面,也是对某些脚本/编程语言的模棱两可性的精彩练习。虽然绝对是一个有趣的概念,但在新奇领域之外很少见到它们。然而,从编码人员的角度来看,让您的工作在几个截然不同的环境中运行绝对是一项壮举;然而,鉴于多语言者通常依赖于各种黑客和通过评论的变通方法,这几乎总是在可行性范围之外。不过,如果您还没有看到他们能做什么,那绝对值得一看;我会推荐this one .

信不信由你,单个文件将以十五种不同的语言正确编译(以某种方式、形状或形式):

  1. HTML
  2. 狂欢
  3. zsh
  4. C89
  5. C99
  6. C++
  7. 生成文件
  8. ruby
  9. TCL
  10. Perl
  11. haskell
  12. python
  13. JavaScript
  14. 他妈的
  15. 空格

关于syntax - 将一种语法嵌入另一种 : is it kludge or clever?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/509689/

相关文章:

java - 从 Java 开始,标记出现语法错误

c - 如何使用 printf 格式化 unsigned long long int?

Python 无法正确比较我分配的变量

version-control - 什么时候 TAG 应该优先于 BRANCHING,反之亦然(在 CVS 中)?

ruby-on-rails - 为嵌套路由创建注释

comments - PyCharm:自动对齐行内注释

css - HTML : Using conditional comments

Swift - 根据函数参数分配局部变量

haskell - haskell 中定义类型的树

linux - 比较两个文件并获取Linux中第三个文件的位置