File tree Expand file tree Collapse file tree
src/main/kotlin/xyz/javecs/tools/expr Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -16,7 +16,7 @@ plugins {
1616}
1717
1818group ' xyz.javecs.tools'
19- version ' 0.1.6 '
19+ version ' 0.1.7 '
2020
2121apply plugin : ' kotlin'
2222apply plugin : ' antlr'
Original file line number Diff line number Diff line change 11package xyz.javecs.tools.expr
22
3- interface EvalContext {
3+ internal interface EvalContext {
44 fun getSymbol (name : String ): Double
55 fun putSymbol (name : String , value : Double )
66}
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ package xyz.javecs.tools.expr
33import xyz.javecs.tools.expr.parser.ExprBaseVisitor
44import xyz.javecs.tools.expr.parser.ExprParser
55
6- class EvalVisitor (val context : EvalContext ) : ExprBaseVisitor<Expression>() {
6+ internal class EvalVisitor (val context : EvalContext ) : ExprBaseVisitor<Expression>() {
77 override fun visitParens (ctx : ExprParser .ParensContext ? ) = visit(ctx!! .expr())!!
88 override fun visitNumber (ctx : ExprParser .NumberContext ? ) = Expression (ctx!! .NUMBER ().text.toDouble())
99 override fun visitAdd (ctx : ExprParser .AddContext ? ) = Expression (visit(ctx!! .expr(0 )).value + visit(ctx.expr(1 )).value)
Original file line number Diff line number Diff line change @@ -7,14 +7,14 @@ import org.antlr.v4.runtime.CommonTokenStream
77import xyz.javecs.tools.expr.parser.ExprLexer
88import xyz.javecs.tools.expr.parser.ExprParser
99
10- fun parser (expr : String ): ExprParser {
10+ internal fun parser (expr : String ): ExprParser {
1111 val input = ANTLRInputStream (expr.byteInputStream())
1212 val lexer = ExprLexer (input)
1313 val tokens = CommonTokenStream (lexer)
1414 return ExprParser (tokens)
1515}
1616
17- fun parserTree (expr : String ): String {
17+ internal fun parserTree (expr : String ): String {
1818 val parser = parser(expr)
1919 val tree = parser.start()
2020 return tree.toStringTree(parser)
Original file line number Diff line number Diff line change 11package xyz.javecs.tools.expr
22
3- class Expression (var value : Double = Double .NaN , var expr : String = " " , var id : String = " " ) {
4- fun getValue (): Number {
5- return if (value == Math .floor(value)) {
6- when {
7- value < Int .MAX_VALUE -> value.toInt()
8- else -> value.toLong()
9- }
10- } else value
11- }
3+ internal class Expression (var value : Double = Double .NaN , var expr : String = " " , var id : String = " " ) {
4+ fun getValue (): Number = if (value == Math .floor(value)) {
5+ when {
6+ value < Int .MAX_VALUE -> value.toInt()
7+ else -> value.toLong()
8+ }
9+ } else value
1210
13- override fun toString (): String {
14- return if (id.isEmpty()) getValue().toString() else " $id = ${getValue()} "
15- }
11+ override fun toString (): String = if (id.isEmpty()) getValue().toString() else " $id = ${getValue()} "
1612}
You can’t perform that action at this time.
0 commit comments