是否可以使用FSI库在F#脚本中跟踪当前行

是否可以使用FSI库在F#脚本中跟踪当前行,f#,read-eval-print-loop,fsi,F#,Read Eval Print Loop,Fsi,我们使用FSharp编译器服务FSI评估会话来执行DSL。准确地说,我们使用F#代码来模拟数控机床的G代码。当FSI脚本的每一行将机器移动到不同的位置时,我们的用户希望看到正在执行的脚本的当前行与机器的位置同步 是否可以从FSI评估会话获取指示当前执行行的回调?使用行指令 let x = "this is on line " + __LINE__ 结果 val x : string = "this is on line 42" 问题是跟踪正在运行的脚本,但没有从脚本中找到当前行。您想在哪里查

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


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

使用指令

let x = "this is on line " + __LINE__
结果

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

问题是跟踪正在运行的脚本,但没有从脚本中找到当前行。您想在哪里查看此信息?我正在描绘一个单独的窗口,其中只显示了一行,这行是一行F#(可能还有由此产生的G代码)。我理解正确吗?是的。在实际控制器上,它们显示当前正在执行的G代码位。对于我的sim卡,我想复制这一点……为了清楚起见,在sim卡上同时显示G代码(就像在real controller上一样)和F#源?(顺便说一句,我不是说我知道怎么做,只是澄清一下,以防其他人知道。)你能做一些事情,比如用
行替换每一行:=\uuuuuuuuuuu;实际内容
,比如sed脚本。这种转换对于许多位的F#代码都是有效的。然后你可以检查
line
的值,这是一个很长的过程,但是这是否相关?