2015-02-06 53 views
1

執行這是一個有點擴展到一個問題,我在這裏張貼Pattern matching AST nodes in Rascalswitch語句不是案件或默認

我做了一點修改的switch語句如何查找各種模式,但它似乎沒有任何模式匹配,並且默認模式未執行!

代碼:

private str synthesise_f(Core::AST::Exp exp) { 
    println("START"); 
    switch (exp) { 
     case Exp e: str t(&T t0, &T t1) { 
      println("IN CASE"); 
     } 
     default: println("!DEFAULT!"); 
    } 
    println("END"); 
    return ret; 
} 

隨着輸出是:

START 
END 

任何想法可能會發生在這裏?難道我做錯了什麼?

謝謝!

回答

1

Rascal代碼看起來很好,所以我猜測你的修改(在解釋器的代碼中?)干擾了在所述解釋器中的隱藏假設或優化。最好在github上發佈pull請求,這樣我們可以談論它嗎?內部異常很可能導致解釋器跳過默認情況。

+0

我想我只是要使用以前的想法。它看起來像我能夠從我需要使用該節點的節點中獲取所有信息:)。雖然謝謝! – josh 2015-02-06 18:55:40