【问题标题】:Finding ? operator in AST寻找? AST 中的运算符
【发布时间】:2015-12-11 10:06:00
【问题描述】:

我在 Rascal 做一些练习。当我尝试确定从 AST 获取方法的 Java 方法的圈复杂度时。我想评价一下?操作员。 由于它不是由'/if(_, _, )'确定的,我尝试使用postfix(, _); 来确定它。 (中缀可以很好地查找 || 或 &&) 仍然没有成功。 谁能告诉我这个秘密?

提前致谢

【问题讨论】:

  • 这不是\conditional(_,_,_)吗? (我假设这一点,但对 Java 的 M3 AST 并没有做太多,它只是看起来像正确的构造函数。)
  • 谢谢,作为 Rascal 的初学者,我只是忽略了。
  • 别担心,我很高兴能帮上忙。

标签: abstract-syntax-tree rascal cyclomatic-complexity


【解决方案1】:

使用武力; AST 定义的来源在这里https://github.com/cwi-swat/rascal/blob/master/src/org/rascalmpl/library/lang/java/m3/AST.rsc,还提到了马克在评论中指出的conditional 构造函数。

如果您在 AST 上使用 iprintln 作为一个小例子,例如 iprintln(ast)import util::ValueUI;,然后将 text(ast) 用于具有格式化 AST 的编辑器,则很容易找出 AST 的样子。

【讨论】:

    猜你喜欢
    • 2019-01-27
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    相关资源
    最近更新 更多