Skip to content

Commit

Permalink
Merge pull request #23 from 422404/feature/print-only-exception-message
Browse files Browse the repository at this point in the history
Print Actor Lang runtime exception messages instead of stacktraces
  • Loading branch information
422404 committed Jun 10, 2021
2 parents 50d04a9 + b75bbf7 commit 0ea52b3
Show file tree
Hide file tree
Showing 11 changed files with 24 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package org.actorlang.exceptions

open class ActorLangRuntimeException(msg: String) : Exception(msg)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.actorlang.interpreter.comms

import org.actorlang.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.Context
import org.actorlang.interpreter.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.objects.Actor
import kotlin.random.Random

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ import org.actorlang.ast.StringLiteralNode
import org.actorlang.ast.UnaryOpNode
import org.actorlang.ast.UnaryOpType
import org.actorlang.ast.visitor.BaseAstVisitor
import org.actorlang.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.Context
import org.actorlang.interpreter.comms.Message
import org.actorlang.interpreter.eval.scopes.BaseScope
import org.actorlang.interpreter.eval.scopes.Scope
import org.actorlang.interpreter.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.objects.Actor
import org.actorlang.parser.Position
import java.util.LinkedList
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import org.actorlang.ast.BecomeNode
import org.actorlang.ast.BehaviorNode
import org.actorlang.ast.IdentifierNode
import org.actorlang.ast.SelfLiteralNode
import org.actorlang.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.Context
import org.actorlang.interpreter.eval.scopes.ActorScope
import org.actorlang.interpreter.eval.scopes.BaseScope
import org.actorlang.interpreter.eval.scopes.Scope
import org.actorlang.interpreter.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.exceptions.ChangeActorTypeException
import org.actorlang.interpreter.objects.Actor

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.actorlang.interpreter.eval.scopes

import org.actorlang.interpreter.exceptions.ActorLangRuntimeException
import org.actorlang.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.objects.Actor

class ActorScope(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.actorlang.interpreter.eval.scopes

import org.actorlang.interpreter.exceptions.ActorLangRuntimeException
import org.actorlang.exceptions.ActorLangRuntimeException

class BaseScope(parent: Scope?) : Scope(parent) {
private val vars = mutableMapOf<String, Any>()
Expand Down

This file was deleted.

2 changes: 1 addition & 1 deletion src/main/kotlin/org/actorlang/interpreter/objects/Actor.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import org.actorlang.ast.BooleanLiteralNode
import org.actorlang.ast.IdentifierNode
import org.actorlang.ast.IntegerLiteralNode
import org.actorlang.ast.StringLiteralNode
import org.actorlang.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.Context
import org.actorlang.interpreter.comms.ActorMessageQueueImpl
import org.actorlang.interpreter.comms.Message
import org.actorlang.interpreter.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.scheduler.ActorThreadImpl

class Actor(
Expand Down
14 changes: 12 additions & 2 deletions src/main/kotlin/org/actorlang/main.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.actorlang

import org.actorlang.config.Configuration
import org.actorlang.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.InterpreterImpl
import org.actorlang.interpreter.comms.CommunicationsManager
import org.actorlang.interpreter.scheduler.SchedulerImpl
Expand Down Expand Up @@ -39,6 +40,7 @@ fun main(vararg args: String) {
}

private fun execute(code: String, sourceName: String): Int {
var result = 0
val config = Configuration().apply {
// debug = true
// messageDuplicates = true
Expand All @@ -59,8 +61,16 @@ private fun execute(code: String, sourceName: String): Int {
)

println("---- start system ----")
interpreter.run(code, sourceName)
try {
interpreter.run(code, sourceName)
} catch (e: ActorLangRuntimeException) {
println(e.message)
result = -1
} catch (e: Exception) {
e.printStackTrace()
result = -1
}
println("---- stop system -----")

return 0
return result
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package org.actorlang.parser.exceptions

import org.actorlang.exceptions.ActorLangRuntimeException
import org.actorlang.parser.Position

class SyntaxError(
msg: String,
position: Position
) : Exception("Syntax error at ${position.sourceName}:${position.line}:${position.column}: $msg")
) : ActorLangRuntimeException("Syntax error at ${position.sourceName}:${position.line}:${position.column}: $msg")
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package org.actorlang.interpreter

import org.actorlang.config.Configuration
import org.actorlang.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.comms.CommunicationsBinder
import org.actorlang.interpreter.comms.CommunicationsManager
import org.actorlang.interpreter.comms.CommunicationsSender
import org.actorlang.interpreter.exceptions.ActorLangRuntimeException
import org.actorlang.interpreter.scheduler.Scheduler
import org.actorlang.interpreter.scheduler.SchedulerImpl
import org.actorlang.interpreter.scheduler.SchedulerSynchronization
Expand Down

0 comments on commit 0ea52b3

Please sign in to comment.