是否有可能在运行时访问/修改ColdFusion语法树?
我敢打赌不会,10分钟的谷歌搜索什么都找不到。在处理闭包和编写元数据转储时,我们可以看到像[runtime expression]这样的对象的字符串化版本,例如:
function x(a=b+1) {}
WriteDump(getMetaData(x).parameters[1]["default"]);它是否允许我们走得比这更深,或者有人知道如何继续挖掘和开始行走树木?
发布于 2019-09-07 03:37:41
在函数元数据中找不到默认的UDF参数表达式。其他已实现某种形式的CFML解析器的库是
CFLint (用Java编写并使用ANTLR)
https://github.com/cflint/CFLint
CFFormat (还使用从Rust编译的二进制文件)
https://www.forgebox.io/view/commandbox-cfformat
函数LineNums (纯CFML)
发布于 2019-09-07 13:00:56
还有一个函数callStackGet() docs:https://cfdocs.org/callstackget,它可能对您想要做的任何事情都很有用。
还有另一个CFML解析器(用CFML编写):https://github.com/foundeo/cfmlparser。
https://stackoverflow.com/questions/57829736
复制相似问题