为什么我在输入“{”时收到解析错误
Why am I getting parse error on input "{"
我正在尝试 运行 本教程中的第一个示例:
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!"); } |]
我得到这个错误:
app\Main.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!"); } |]
它通常应该正确地解释准引号。
我正在尝试 运行 本教程中的第一个示例:
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!"); } |]
我得到这个错误:
app\Main.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!"); } |]
它通常应该正确地解释准引号。