0

I am trying to bind values into an interpreter with types from an external library.

This is how I am currently declaring my interpreter:

val interpreter = new IMain({
    val settings = new Settings
    settings.usejavacp.value = true
    settings.deprecation.value = true
    settings.embeddedDefaults[IMessage]
    settings.embeddedDefaults[IChannel]
    settings.embeddedDefaults[IGuild]
    settings.embeddedDefaults[IUser]
    settings
})
// Variable bindings
interpreter.bind("message", "IMessage", event.getMessage)
interpreter.bind("guild", "IGuild", event.getGuild)
interpreter.bind("user", "IUser", event.getAuthor)
interpreter.bind("channel", "IChannel", event.getChannel)

interpreter.interpret(code)

However when I execute my code I get this error at runtime:

<console>:5: error: not found: type IMessage
         var value: IMessage = _
                    ^
<console>:6: error: not found: type IMessage
         def set(x: _root_.scala.Any) = value = x.asInstanceOf[IMessage]
                                                               ^
<console>:5: error: not found: type IGuild
         var value: IGuild = _
                    ^
<console>:6: error: not found: type IGuild
         def set(x: _root_.scala.Any) = value = x.asInstanceOf[IGuild]
                                                               ^
...

I'm also trying to include an Object I've declared to the scope of the interpreter, and I'm not sure how I would do that. Any help would be appreciated!

2 Answers2

0

I think your interpreter knows nothing about that library. So you need a way to import it. Actually this question is already answered

  • Thanks for the link, however that isn't exactly what I'm trying to do. I am trying to use the Scala interpreter from within my own code (which I can do successfully this way with standard types). I've poked around in the sbt docs and I don't see an equivalent to Scala's IMain class in SBTs library. – Robby Zambito Apr 10 '18 at 20:12
0

Please try with full qualifier path like

interpreter.bind("message", "com.abc.xyz.IMessage", event.getMessage)
user811602
  • 1,314
  • 2
  • 17
  • 47