comments - 流氓/克莱尔:无法访问 M3 的评论
问题描述
我尝试遍历 C++ 源文件中的所有注释,但无法访问 M3.comments。
我尝试了 iprintln、for-、switch- 和 visit- 语句。
iprintln(m3) 给出以下输出:
m3(
|file://bla.c|,
macroExpansions={},
methodOverrides={},
includeDirectives={
...
},
inactiveIncludes={},
comments=[
|file://bla.c|(0,80),
|file://bla.c|(82,34),
...
],
macroDefinitions={},
includeResolution={
...
})
'''
以下代码匹配
visit (m3) { case comments: println("match"); }
但我无法获得位置。
例如
visit (m3) { case c:comments: println(c); }
返回“不明确的代码(内部错误),c:comments:”。
下一个
visit (m3) { case comments(c): println("c"); }
不匹配
和
iprintln(m3.comments);
回馈“未声明的字段:M3 的注释”。
如何访问评论?
解决方案
您可以通过以下方式投射出评论:
theComments = m3Model.comments;
那 ”。” 表达式选择 m3 数据构造函数的注释字段。
如果你想匹配一个关键字字段comments
,你会写一个这样的模式:
m3(comments=theComments) := myM3Model
如果该字段未声明,您可以像这样声明它:
data M3(list[loc] comments=[]);
但是,这应该已经在 Claire 库声明中了。请在 GitHub 上报告问题?
推荐阅读
- excel - 试图在几台笔记本电脑上将我的工作簿保存为 xlsx
- powershell - 在 PowerShell 中获取部门列表和每个部门的用户数
- python - 键盘无反应
- java - 有没有办法在 java 应用程序中创建 websocket 客户端以与 node.js websocket 服务器通信?
- java - 公式中的 Apache POI @
- vba - 无法获得子表单上标签的 BackColor 以反映新颜色 --- 即使我首先将 BackStyle 更改为“1”并重新绘制表单
- javascript - 如何检测用户是否成功提醒了某件事(我正在制作 XSS 游戏)
- docker - 鉴于服务器 URL 的主机名不完全限定,如何在 OpenAM 中创建 Web 策略代理?
- c# - 可从代码访问的 C# 构建时间可设置值
- javascript - 我怎样才能在时间属性中获得现在的时间?