簡體   English   中英

如何構建投影的解析樹?

[英]How to build a parse-tree of projections?

我想以某種方式將解析樹保存到文本格式文件中,而不是將其帶回q

但是解析樹可能包含投影,比如+[;1]2 我應該如何處理這些文件樹並正確保存/加載它? 在以下示例中,我嘗試直接使用::出錯:

parse"+[;1]2"
(parse"+[;1]2")[0] / (+; ::; 1)
null(parse"+[;1]2")[0;1] / 0b, something strange
null(::) / 1b
eval((+;::;1);2) / 3

我認為解決這個問題的一種方法是用空字符串替換所有:: ,然后應用eval/

(eval/)((+;;1);2) / ok

但是還有其他情況需要:: ,例如:

m:(1 2;3 4)
parse ".[m;(::;1)]1"
eval ((.;`m;(enlist;::;1));1) / 4
eval ((.;`m;(enlist;;1));1) / error: 'type

那么對於這兩種情況,我如何才能以文本格式正確保存(/加載)解析樹呢?

我想要什么奇怪的東西嗎? 是否可以在q獲得一對一的抽象語法樹程序表示?

您不小心偶然發現的是 Andrey Kozyrev 所說的“魔法價值”,請參見此處: https : //github.com/quintanar401/DCoQ

但是,是的,您要實現的目標很奇怪,而且肯定不常見。 您究竟希望從這樣做中獲得什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM