为什么我在输入"{"上收到解析错误

  • 本文关键字:错误 ghc haskell-ffi
  • 更新时间 :
  • 英文 :


我正在尝试运行本教程中的第一个示例:

从Haskell 调用JVM方法

module Main where
{-# LANGUAGE QuasiQuotes #-}
{-# OPTIONS_GHC -fplugin=Language.Java.Inline.Plugin #-}
import Language.Java (withJVM)
import Language.Java.Inline
main :: IO ()
main = withJVM [] [java| { System.out.println("Hello Java!"); } |]

我得到这个错误:

appMain.hs:8:26: error: parse error on input `{'
|
8 | main = withJVM [] [java| { System.out.println("Hello Java!"); } |]
|                          ^

我做错了什么?

{-# LANGUAGE … #-}{-# OPTIONS_GHC … #-}杂注需要在module Main声明之前定义。否则,它将无法启用QuasiQuotes语言扩展,从而无法理解程序中使用的准引号。

如果安装inline-java并将语言杂注放在module Main:之前

{-# LANGUAGE QuasiQuotes #-}
{-# OPTIONS_GHC -fplugin=Language.Java.Inline.Plugin #-}
module Main where
import Language.Java (withJVM)
import Language.Java.Inline
main :: IO ()
main = withJVM [] [java| { System.out.println("Hello Java!"); } |]

它通常应该正确地解释准引号。

相关内容

  • 没有找到相关文章

最新更新