【问题标题】:Is it possible to trace the current line in an F# script with FSI library是否可以使用 FSI 库跟踪 F# 脚本中的当前行
【发布时间】:2016-01-21 08:28:44
【问题描述】:

我们正在使用 FSharp 编译器服务 FSI 评估会话来执行 DSL。准确地说,我们使用 F# 代码来模拟 CNC 机器的 G 代码。随着 FSI 脚本的每一行将机器移动到不同的位置,我们的用户希望看到正在执行的脚本的当前行与机器的位置同步。

是否可以从 FSI 评估会话中获取回调,指示当前正在执行的行?

【问题讨论】:

  • 您想在哪里查看此信息?我在某处描绘了一个单独的窗口,仅显示一行,该行是一行 F#(可能是生成的 G 代码)。我理解正确吗?
  • 是的。在真实控制器上,它们显示当前执行的 G 代码位。对于我的模拟,我想复制它。
  • ...为了清楚起见,在 sim 上,同时显示 G 代码(如在真实控制器上)和 F# 源代码? (顺便说一句,我并不是说我知道该怎么做,只是澄清一下,以防其他人知道。)
  • 你能不能用 sed 脚本替换每一行 line := __LINE__ ; actual contents。该转换适用于许多位 F# 代码。然后你可以检查 line 的值
  • 这是一个长镜头,但这有关系吗? markheath.net/post/linqpad-dump-for-f

标签: f# read-eval-print-loop fsi


【解决方案1】:

使用 LINE 指令

let x = "this is on line " + __LINE__

结果

val x : string = "this is on line 42"

【讨论】:

  • 问题是关于跟踪正在运行的脚本而不是从脚本中找出当前行。
猜你喜欢
  • 1970-01-01
  • 2016-06-15
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-30
相关资源
最近更新 更多