diff --git a/src/main/kotlin/gay/pizza/pork/eval/Evaluator.kt b/src/main/kotlin/gay/pizza/pork/eval/PorkEvaluator.kt similarity index 97% rename from src/main/kotlin/gay/pizza/pork/eval/Evaluator.kt rename to src/main/kotlin/gay/pizza/pork/eval/PorkEvaluator.kt index 266bd34..fcedcd1 100644 --- a/src/main/kotlin/gay/pizza/pork/eval/Evaluator.kt +++ b/src/main/kotlin/gay/pizza/pork/eval/PorkEvaluator.kt @@ -2,7 +2,7 @@ package gay.pizza.pork.eval import gay.pizza.pork.ast.* -class Evaluator(root: Scope) : Visitor { +class PorkEvaluator(root: Scope) : Visitor { private var currentScope: Scope = root override fun visitDefine(node: Define): Any { diff --git a/src/main/kotlin/gay/pizza/pork/main.kt b/src/main/kotlin/gay/pizza/pork/main.kt index 5aae9a9..fbdc4ac 100644 --- a/src/main/kotlin/gay/pizza/pork/main.kt +++ b/src/main/kotlin/gay/pizza/pork/main.kt @@ -2,7 +2,7 @@ package gay.pizza.pork import gay.pizza.pork.ast.* import gay.pizza.pork.eval.Scope -import gay.pizza.pork.eval.Evaluator +import gay.pizza.pork.eval.PorkEvaluator import gay.pizza.pork.parse.* import kotlin.io.path.Path import kotlin.io.path.readText @@ -10,7 +10,7 @@ import kotlin.io.path.readText fun main(args: Array) { fun eval(ast: Program) { val scope = Scope() - val evaluator = Evaluator(scope) + val evaluator = PorkEvaluator(scope) evaluator.visit(ast) println("> ${scope.call("main")}") } diff --git a/src/main/kotlin/gay/pizza/pork/parse/PorkTokenizer.kt b/src/main/kotlin/gay/pizza/pork/parse/PorkTokenizer.kt index fe849d2..e656eac 100644 --- a/src/main/kotlin/gay/pizza/pork/parse/PorkTokenizer.kt +++ b/src/main/kotlin/gay/pizza/pork/parse/PorkTokenizer.kt @@ -51,7 +51,7 @@ class PorkTokenizer(val source: CharSource) { tokenStart = source.currentIndex val char = source.next() for (item in TokenType.SingleChars) { - if (item.singleChar == char) { + if (item.char == char) { return Token(item, char.toString()) } } diff --git a/src/main/kotlin/gay/pizza/pork/parse/TokenType.kt b/src/main/kotlin/gay/pizza/pork/parse/TokenType.kt index 578cf48..d586677 100644 --- a/src/main/kotlin/gay/pizza/pork/parse/TokenType.kt +++ b/src/main/kotlin/gay/pizza/pork/parse/TokenType.kt @@ -1,26 +1,27 @@ package gay.pizza.pork.parse -enum class TokenType(val singleChar: Char? = null, val keyword: String? = null) { +enum class TokenType(val char: Char? = null, val keyword: String? = null) { Symbol, IntLiteral, - Equals(singleChar = '='), - Plus(singleChar = '+'), - Minus(singleChar = '-'), - Multiply(singleChar = '*'), - Divide(singleChar = '/'), - LeftCurly(singleChar = '{'), - RightCurly(singleChar = '}'), - LeftBracket(singleChar = '['), - RightBracket(singleChar = ']'), - LeftParentheses(singleChar = '('), - RightParentheses(singleChar = ')'), - Comma(singleChar = ','), + Equals(char = '='), + Plus(char = '+'), + Minus(char = '-'), + Multiply(char = '*'), + Divide(char = '/'), + LeftCurly(char = '{'), + RightCurly(char = '}'), + LeftBracket(char = '['), + RightBracket(char = ']'), + LeftParentheses(char = '('), + RightParentheses(char = ')'), + Comma(char = ','), False(keyword = "false"), True(keyword = "true"), + In(keyword = "in"), EndOfFile; companion object { val Keywords = entries.filter { it.keyword != null } - val SingleChars = entries.filter { it.singleChar != null } + val SingleChars = entries.filter { it.char != null } } }