diff --git a/example/shared/src/commonMain/composeResources/files/test.json b/example/shared/src/commonMain/composeResources/files/test.json index e69de29b..ff29422a 100644 --- a/example/shared/src/commonMain/composeResources/files/test.json +++ b/example/shared/src/commonMain/composeResources/files/test.json @@ -0,0 +1 @@ +{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.5.6","a":"","k":"","d":"","tc":""},"fr":29.9700012207031,"ip":0,"op":900.000036657751,"w":2000,"h":2000,"nm":"Voice circle","ddd":0,"assets":[{"id":"image_0","w":985,"h":987,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_1","w":1613,"h":1776,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_2","w":1557,"h":1734,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_3","w":1501,"h":1638,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_4","w":1609,"h":1552,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_5","w":1854,"h":1539,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Circle 1","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":1,"s":[0]},{"t":899.000036617021,"s":[360]}],"ix":10},"p":{"a":0,"k":[988.709,1008.372,0],"ix":2},"a":{"a":0,"k":[492.251,493.332,0],"ix":1},"s":{"a":0,"k":[86,86,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Turbulent Displace","np":16,"mn":"ADBE Turbulent Displace","ix":1,"en":1,"ef":[{"ty":7,"nm":"Displacement","mn":"ADBE Turbulent Displace-0001","ix":1,"v":{"a":0,"k":3,"ix":1}},{"ty":0,"nm":"Amount","mn":"ADBE Turbulent Displace-0002","ix":2,"v":{"a":0,"k":-14,"ix":2}},{"ty":0,"nm":"Size","mn":"ADBE Turbulent Displace-0003","ix":3,"v":{"a":0,"k":258,"ix":3}},{"ty":3,"nm":"Offset (Turbulence)","mn":"ADBE Turbulent Displace-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,493.5],"to":[0,0],"ti":[0,0]},{"t":899.000036617021,"s":[5209,493.5]}],"ix":4,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"}},{"ty":0,"nm":"Complexity","mn":"ADBE Turbulent Displace-0005","ix":5,"v":{"a":0,"k":4.18,"ix":5}},{"ty":0,"nm":"Evolution","mn":"ADBE Turbulent Displace-0006","ix":6,"v":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"t":899.000036617021,"s":[7200]}],"ix":6}},{"ty":6,"nm":"Evolution Options","mn":"ADBE Turbulent Displace-0007","ix":7,"v":0},{"ty":7,"nm":"Cycle Evolution","mn":"ADBE Turbulent Displace-0008","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Cycle (in Revolutions)","mn":"ADBE Turbulent Displace-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":6,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0011","ix":11,"v":0},{"ty":7,"nm":"Pinning","mn":"ADBE Turbulent Displace-0012","ix":12,"v":{"a":0,"k":3,"ix":12}},{"ty":7,"nm":"Resize Layer","mn":"ADBE Turbulent Displace-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":7,"nm":"Antialiasing for Best Quality","mn":"ADBE Turbulent Displace-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 5","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":1,"s":[0]},{"t":899.000036617021,"s":[360]}],"ix":10},"p":{"a":0,"k":[992.145,1013.856,0],"ix":2},"a":{"a":0,"k":[806.265,887.706,0],"ix":1},"s":{"a":0,"k":[86,86,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Turbulent Displace","np":16,"mn":"ADBE Turbulent Displace","ix":1,"en":1,"ef":[{"ty":7,"nm":"Displacement","mn":"ADBE Turbulent Displace-0001","ix":1,"v":{"a":0,"k":3,"ix":1}},{"ty":0,"nm":"Amount","mn":"ADBE Turbulent Displace-0002","ix":2,"v":{"a":0,"k":86,"ix":2}},{"ty":0,"nm":"Size","mn":"ADBE Turbulent Displace-0003","ix":3,"v":{"a":0,"k":254,"ix":3}},{"ty":3,"nm":"Offset (Turbulence)","mn":"ADBE Turbulent Displace-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1,"s":[0,493.5],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":899,"s":[5000,493.5],"to":[0,0],"ti":[0,0]},{"t":961.000039142332,"s":[4802,493.5]}],"ix":4}},{"ty":0,"nm":"Complexity","mn":"ADBE Turbulent Displace-0005","ix":5,"v":{"a":0,"k":2.15,"ix":5}},{"ty":0,"nm":"Evolution","mn":"ADBE Turbulent Displace-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":6,"nm":"Evolution Options","mn":"ADBE Turbulent Displace-0007","ix":7,"v":0},{"ty":7,"nm":"Cycle Evolution","mn":"ADBE Turbulent Displace-0008","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Cycle (in Revolutions)","mn":"ADBE Turbulent Displace-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":6,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0011","ix":11,"v":0},{"ty":7,"nm":"Pinning","mn":"ADBE Turbulent Displace-0012","ix":12,"v":{"a":0,"k":3,"ix":12}},{"ty":7,"nm":"Resize Layer","mn":"ADBE Turbulent Displace-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":7,"nm":"Antialiasing for Best Quality","mn":"ADBE Turbulent Displace-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 6","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":1,"s":[0]},{"t":899.000036617021,"s":[360]}],"ix":10},"p":{"a":0,"k":[1018.494,993.418,0],"ix":2},"a":{"a":0,"k":[778.026,866.548,0],"ix":1},"s":{"a":0,"k":[86,86,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Turbulent Displace","np":16,"mn":"ADBE Turbulent Displace","ix":1,"en":1,"ef":[{"ty":7,"nm":"Displacement","mn":"ADBE Turbulent Displace-0001","ix":1,"v":{"a":0,"k":3,"ix":1}},{"ty":0,"nm":"Amount","mn":"ADBE Turbulent Displace-0002","ix":2,"v":{"a":0,"k":80,"ix":2}},{"ty":0,"nm":"Size","mn":"ADBE Turbulent Displace-0003","ix":3,"v":{"a":0,"k":254,"ix":3}},{"ty":3,"nm":"Offset (Turbulence)","mn":"ADBE Turbulent Displace-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1,"s":[0,493.5],"to":[0,0],"ti":[0,0]},{"t":961.000039142332,"s":[4802,493.5]}],"ix":4}},{"ty":0,"nm":"Complexity","mn":"ADBE Turbulent Displace-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":0,"nm":"Evolution","mn":"ADBE Turbulent Displace-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":6,"nm":"Evolution Options","mn":"ADBE Turbulent Displace-0007","ix":7,"v":0},{"ty":7,"nm":"Cycle Evolution","mn":"ADBE Turbulent Displace-0008","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Cycle (in Revolutions)","mn":"ADBE Turbulent Displace-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":6,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0011","ix":11,"v":0},{"ty":7,"nm":"Pinning","mn":"ADBE Turbulent Displace-0012","ix":12,"v":{"a":0,"k":3,"ix":12}},{"ty":7,"nm":"Resize Layer","mn":"ADBE Turbulent Displace-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":7,"nm":"Antialiasing for Best Quality","mn":"ADBE Turbulent Displace-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 7","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":1,"s":[0]},{"t":899.000036617021,"s":[360]}],"ix":10},"p":{"a":0,"k":[988.304,908.883,0],"ix":2},"a":{"a":0,"k":[750.336,818.773,0],"ix":1},"s":{"a":0,"k":[86,86,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Turbulent Displace","np":16,"mn":"ADBE Turbulent Displace","ix":1,"en":1,"ef":[{"ty":7,"nm":"Displacement","mn":"ADBE Turbulent Displace-0001","ix":1,"v":{"a":0,"k":3,"ix":1}},{"ty":0,"nm":"Amount","mn":"ADBE Turbulent Displace-0002","ix":2,"v":{"a":0,"k":44,"ix":2}},{"ty":0,"nm":"Size","mn":"ADBE Turbulent Displace-0003","ix":3,"v":{"a":0,"k":254,"ix":3}},{"ty":3,"nm":"Offset (Turbulence)","mn":"ADBE Turbulent Displace-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1,"s":[0,493.5],"to":[0,0],"ti":[0,0]},{"t":961.000039142332,"s":[4802,493.5]}],"ix":4}},{"ty":0,"nm":"Complexity","mn":"ADBE Turbulent Displace-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":0,"nm":"Evolution","mn":"ADBE Turbulent Displace-0006","ix":6,"v":{"a":0,"k":7200,"ix":6}},{"ty":6,"nm":"Evolution Options","mn":"ADBE Turbulent Displace-0007","ix":7,"v":0},{"ty":7,"nm":"Cycle Evolution","mn":"ADBE Turbulent Displace-0008","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Cycle (in Revolutions)","mn":"ADBE Turbulent Displace-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":6,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0011","ix":11,"v":0},{"ty":7,"nm":"Pinning","mn":"ADBE Turbulent Displace-0012","ix":12,"v":{"a":0,"k":3,"ix":12}},{"ty":7,"nm":"Resize Layer","mn":"ADBE Turbulent Displace-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":7,"nm":"Antialiasing for Best Quality","mn":"ADBE Turbulent Displace-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Layer 8","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":1,"s":[0]},{"t":899.000036617021,"s":[360]}],"ix":10},"p":{"a":0,"k":[1101.51,938.656,0],"ix":2},"a":{"a":0,"k":[804.19,775.886,0],"ix":1},"s":{"a":0,"k":[86,86,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Turbulent Displace","np":16,"mn":"ADBE Turbulent Displace","ix":1,"en":1,"ef":[{"ty":7,"nm":"Displacement","mn":"ADBE Turbulent Displace-0001","ix":1,"v":{"a":0,"k":6,"ix":1}},{"ty":0,"nm":"Amount","mn":"ADBE Turbulent Displace-0002","ix":2,"v":{"a":0,"k":93,"ix":2}},{"ty":0,"nm":"Size","mn":"ADBE Turbulent Displace-0003","ix":3,"v":{"a":0,"k":254,"ix":3}},{"ty":3,"nm":"Offset (Turbulence)","mn":"ADBE Turbulent Displace-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1,"s":[0,493.5],"to":[0,0],"ti":[0,0]},{"t":961.000039142332,"s":[4802,493.5]}],"ix":4}},{"ty":0,"nm":"Complexity","mn":"ADBE Turbulent Displace-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":0,"nm":"Evolution","mn":"ADBE Turbulent Displace-0006","ix":6,"v":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"t":899.000036617021,"s":[7200]}],"ix":6}},{"ty":6,"nm":"Evolution Options","mn":"ADBE Turbulent Displace-0007","ix":7,"v":0},{"ty":7,"nm":"Cycle Evolution","mn":"ADBE Turbulent Displace-0008","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Cycle (in Revolutions)","mn":"ADBE Turbulent Displace-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":6,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0011","ix":11,"v":0},{"ty":7,"nm":"Pinning","mn":"ADBE Turbulent Displace-0012","ix":12,"v":{"a":0,"k":3,"ix":12}},{"ty":7,"nm":"Resize Layer","mn":"ADBE Turbulent Displace-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":7,"nm":"Antialiasing for Best Quality","mn":"ADBE Turbulent Displace-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"Layer 9","refId":"image_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":1,"s":[0]},{"t":899.000036617021,"s":[360]}],"ix":10},"p":{"a":0,"k":[928.107,1005.845,0],"ix":2},"a":{"a":0,"k":[926.633,769.215,0],"ix":1},"s":{"a":0,"k":[86,86,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Turbulent Displace","np":16,"mn":"ADBE Turbulent Displace","ix":1,"en":1,"ef":[{"ty":7,"nm":"Displacement","mn":"ADBE Turbulent Displace-0001","ix":1,"v":{"a":0,"k":5,"ix":1}},{"ty":0,"nm":"Amount","mn":"ADBE Turbulent Displace-0002","ix":2,"v":{"a":0,"k":23.5,"ix":2}},{"ty":0,"nm":"Size","mn":"ADBE Turbulent Displace-0003","ix":3,"v":{"a":0,"k":72,"ix":3}},{"ty":3,"nm":"Offset (Turbulence)","mn":"ADBE Turbulent Displace-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1,"s":[0,493.5],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":899,"s":[6231.514,493.5],"to":[0,0],"ti":[0,0]},{"t":961.000039142332,"s":[4802,493.5]}],"ix":4}},{"ty":0,"nm":"Complexity","mn":"ADBE Turbulent Displace-0005","ix":5,"v":{"a":0,"k":1.569,"ix":5}},{"ty":0,"nm":"Evolution","mn":"ADBE Turbulent Displace-0006","ix":6,"v":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[229]},{"t":899.000036617021,"s":[7429]}],"ix":6}},{"ty":6,"nm":"Evolution Options","mn":"ADBE Turbulent Displace-0007","ix":7,"v":0},{"ty":7,"nm":"Cycle Evolution","mn":"ADBE Turbulent Displace-0008","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Cycle (in Revolutions)","mn":"ADBE Turbulent Displace-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":6,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0011","ix":11,"v":0},{"ty":7,"nm":"Pinning","mn":"ADBE Turbulent Displace-0012","ix":12,"v":{"a":0,"k":3,"ix":12}},{"ty":7,"nm":"Resize Layer","mn":"ADBE Turbulent Displace-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":7,"nm":"Antialiasing for Best Quality","mn":"ADBE Turbulent Displace-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":1,"nm":"Pale Gray-Blue Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":360,"ix":10},"p":{"a":0,"k":[1000,1000,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":2000,"sh":2000,"sc":"#383847","ip":0,"op":900.000036657751,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/example/shared/src/commonMain/kotlin/App.kt b/example/shared/src/commonMain/kotlin/App.kt index 538562cf..31caf15a 100644 --- a/example/shared/src/commonMain/kotlin/App.kt +++ b/example/shared/src/commonMain/kotlin/App.kt @@ -132,7 +132,7 @@ public suspend fun LottieCompositionSpec.Companion.ResourceString( public fun App() { // return InteractiveControlsScreen() - return LottieFilesScreen() +// return LottieFilesScreen() // return LottieFontExample() diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/Expression.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/Expression.kt index 141ae3fa..85ae3156 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/Expression.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/Expression.kt @@ -3,20 +3,11 @@ package io.github.alexzhirkevich.skriptie import io.github.alexzhirkevich.skriptie.common.OpGetVariable import io.github.alexzhirkevich.skriptie.common.OpIndex -public interface Expression { +public fun interface Expression { public operator fun invoke(context: C): Any? } -internal fun Expression( - block : (C) -> Any? -) : Expression = object : Expression { - - override fun invoke(context: C): Any? { - return block(context) - } -} - internal fun Expression<*>.isAssignable() : Boolean { return this is OpGetVariable && assignmentType == null || this is OpIndex && variable is OpGetVariable diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ExpressionContext.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ExpressionContext.kt new file mode 100644 index 00000000..ef77edb8 --- /dev/null +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ExpressionContext.kt @@ -0,0 +1,55 @@ +package io.github.alexzhirkevich.skriptie + +import io.github.alexzhirkevich.skriptie.javascript.JSInterpretationContext +import kotlin.math.min + +public class ExpressionContext : JSInterpretationContext() { + + override fun sum(a: Any?, b: Any?): Any? { + return when { + a is List<*> && b is List<*> -> { + a as List + b as List + + List(min(a.size, b.size)) { + a[it].toDouble() + b[it].toDouble() + } + } + + a is List<*> && b is Number -> { + if (a is MutableList<*>) { + a as MutableList + a[0] = a[0].toDouble() + b.toDouble() + a + } else { + listOf((a as List).first().toDouble() + b.toDouble()) + a.drop(1) + } + } + + a is Number && b is List<*> -> { + if (b is MutableList<*>) { + b as MutableList + b[0] = b[0].toDouble() + a.toDouble() + b + } else { + listOf(a.toDouble() + (b as List).first().toDouble()) + b.drop(1) + } + } + + else -> super.sum(a, b) + } + } + + override fun sub(a: Any?, b: Any?): Any? { + return when { + a is List<*> && b is List<*> -> { + a as List + b as List + List(min(a.size, b.size)) { + a[it].toDouble() - b[it].toDouble() + } + } + else -> super.sub(a, b) + } + } +} \ No newline at end of file diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/GlobalContext.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/GlobalContext.kt index 40be9039..41af3ec4 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/GlobalContext.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/GlobalContext.kt @@ -2,6 +2,8 @@ package io.github.alexzhirkevich.skriptie public interface GlobalContext : InterpretationContext { + public fun isFalse(a : Any?) : Boolean + public fun sum(a : Any?, b : Any?) : Any? public fun sub(a : Any?, b : Any?) : Any? public fun mul(a : Any?, b : Any?) : Any? @@ -12,4 +14,5 @@ public interface GlobalContext : InterpretationContext { public fun dec(a : Any?) : Any public fun neg(a : Any?) : Any? + public fun pos(a : Any?) : Any? } \ No newline at end of file diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/InterpretationContext.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/InterpretationContext.kt index 9e658d13..51620651 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/InterpretationContext.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/InterpretationContext.kt @@ -3,11 +3,13 @@ package io.github.alexzhirkevich.skriptie import io.github.alexzhirkevich.skriptie.common.OpAssign -public interface InterpretationContext : Expression { +public interface InterpretationContext : ExtensionContext, Expression { override fun invoke(context: C): Any? = this public fun interpret(callable: String?, args: List>?): Expression? + + public override fun interpret(parent: Expression, op: String?, args: List>?): Expression? = null } internal fun List>.argForNameOrIndex( @@ -15,13 +17,14 @@ internal fun List>.argForNameOrIndex( vararg name : String, ) : Expression? { - forEach { op -> - if (op is OpAssign && name.any { op.variableName == it }) { - return op.assignableValue - } - } - return argAtOrNull(index) +// forEach { op -> +// if (op is OpAssign && name.any { op.variableName == it }) { +// return op.assignableValue +// } +// } +// +// return argAtOrNull(index) } internal fun List>.argAt( @@ -39,9 +42,10 @@ internal fun List>.argAtOrNull( index : Int, ) : Expression? { - return getOrNull(index).let { - if (it is OpAssign) - it.assignableValue - else it - } + return getOrNull(index) +// /**/.let { +// if (it is OpAssign) +// it.assignableValue +// else it +// } } \ No newline at end of file diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/Script.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/Script.kt index 16bf878a..ad13af75 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/Script.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/Script.kt @@ -1,8 +1,8 @@ package io.github.alexzhirkevich.skriptie public fun interface Script { - public operator fun invoke(engine: ScriptEngine): Any? + public operator fun invoke(context: C): Any? } -public fun Expression.asScript(): Script = Script { invoke(it.context) } +public fun Expression.asScript(): Script = Script { invoke(it) } diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptContext.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptContext.kt index c3f1f86d..0c833ea1 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptContext.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptContext.kt @@ -1,5 +1,7 @@ package io.github.alexzhirkevich.skriptie +import io.github.alexzhirkevich.skriptie.common.SyntaxError +import io.github.alexzhirkevich.skriptie.common.TypeError import io.github.alexzhirkevich.skriptie.common.unresolvedReference @@ -19,13 +21,12 @@ public interface ScriptContext { extraVariables: Map> = emptyMap(), block: (ScriptContext) -> Any? ): Any? - public fun reset() } private class BlockScriptContext( private val parent : ScriptContext -) : BaseScriptContext() { +) : EcmascriptContext() { override fun getVariable(name: String): Any? { return if (name in variables) { @@ -48,7 +49,7 @@ private class BlockScriptContext( } } -public abstract class BaseScriptContext : ScriptContext { +public abstract class EcmascriptContext : ScriptContext { protected val variables: MutableMap> = mutableMapOf() @@ -65,10 +66,10 @@ public abstract class BaseScriptContext : ScriptContext { unresolvedReference(name) } if (type != null && name in variables) { - error("Identifier '$name' is already declared") + throw SyntaxError("Identifier '$name' is already declared") } if (type == null && variables[name]?.first == VariableType.Const) { - error("TypeError: Assignment to constant variable ('$name')") + throw TypeError("Assignment to constant variable ('$name')") } variables[name] = (type ?: variables[name]?.first)!! to value } @@ -91,4 +92,4 @@ public abstract class BaseScriptContext : ScriptContext { override fun reset(){ variables.clear() } -} \ No newline at end of file +} diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptEngine.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptEngine.kt index aa14d846..a3606c31 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptEngine.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptEngine.kt @@ -1,14 +1,22 @@ package io.github.alexzhirkevich.skriptie -public interface ScriptEngine { +public interface ScriptEngine : ScriptInterpreter { public val context : C - public fun compile(script : String) : Script - - public fun reset() + public fun reset() { + context.reset() + } } public fun ScriptEngine.invoke(script: String) : Any? { - return compile(script).invoke(this) + return interpret(script).invoke(context) } + +public fun ScriptEngine( + context: C, + interpreter: ScriptInterpreter +): ScriptEngine = object : ScriptEngine, ScriptInterpreter by interpreter { + override val context: C + get() = context +} \ No newline at end of file diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptInterpreter.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptInterpreter.kt index fd688657..983881e4 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptInterpreter.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ScriptInterpreter.kt @@ -1,5 +1,6 @@ package io.github.alexzhirkevich.skriptie -internal interface ScriptInterpreter { - fun interpret() : Script +public interface ScriptInterpreter { + + public fun interpret(script : String) : Script } \ No newline at end of file diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/Erorrs.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/Erorrs.kt new file mode 100644 index 00000000..cc6f809e --- /dev/null +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/Erorrs.kt @@ -0,0 +1,14 @@ +package io.github.alexzhirkevich.skriptie.common + +public sealed class SkriptieError(message : String?, cause : Throwable?) : Exception(message, cause) + +public class SyntaxError(message : String? = null, cause : Throwable? = null) : SkriptieError(message, cause) + +public class TypeError(message : String? = null, cause : Throwable? = null) : SkriptieError(message, cause) + +public class ReferenceError(message : String? = null, cause : Throwable? = null) : SkriptieError(message, cause) + +internal fun unresolvedReference(ref : String, obj : String? = null) : Nothing = + if (obj != null) + throw ReferenceError("Unresolved reference '$ref' for $obj") + else throw ReferenceError("$ref is not defined") diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpBlock.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpBlock.kt index 7ffeb102..58af798a 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpBlock.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpBlock.kt @@ -3,6 +3,7 @@ package io.github.alexzhirkevich.skriptie.common import io.github.alexzhirkevich.skriptie.Expression import io.github.alexzhirkevich.skriptie.ScriptContext + internal class OpBlock( val expressions: List>, private val scoped : Boolean, @@ -25,14 +26,34 @@ internal class OpBlock( if (expressions.size > 1) { repeat(expressions.size - 1) { - val expr = expressions[it] - val res = expr(context) - - if (expr is OpReturn<*>) { - return res - } + invoke(expressions[it], context) } } - return expressions.last().invoke(context) + + return invoke(expressions.last(), context) + } + + private fun invoke(expression: Expression, context: C) : Any? { + val res = expression(context) + return when(expression){ + is OpReturn -> throw BlockReturn(res) + is OpContinue -> throw BlockContinue + is OpBreak -> throw BlockBreak + else -> res + } } -} \ No newline at end of file +} + + +internal sealed class BlockException : Throwable() +internal data object BlockContinue : BlockException() +internal data object BlockBreak : BlockException() +internal class BlockReturn(val value: Any?) : BlockException() + +internal class OpReturn( + val value : Expression +) : Expression by value + +internal class OpContinue : Expression by OpConstant(Unit) +internal class OpBreak : Expression by OpConstant(Unit) + diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpBooleans.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpBooleans.kt index b28cb6c7..9332a5ac 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpBooleans.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpBooleans.kt @@ -4,16 +4,18 @@ import io.github.alexzhirkevich.skriptie.Expression import io.github.alexzhirkevich.skriptie.ScriptContext internal fun OpNot( - condition : Expression -) = Expression{ - !(condition(it) as Boolean) + condition : Expression, + isFalse : (Any?) -> Boolean, +) = Expression { + isFalse(condition(it)) } internal fun OpBoolean( a : Expression, b : Expression, + isFalse : (Any?) -> Boolean, op : (Boolean, Boolean) -> Boolean, ) = Expression { - op(!a(it).isFalse(), !b(it).isFalse()) + op(!isFalse(a(it)), !(isFalse(b(it)))) } diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpFunction.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpFunction.kt index e04c4b91..c9af43c3 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpFunction.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpFunction.kt @@ -1,55 +1,78 @@ package io.github.alexzhirkevich.skriptie.common -import io.github.alexzhirkevich.skriptie.ScriptContext import io.github.alexzhirkevich.skriptie.Expression +import io.github.alexzhirkevich.skriptie.ScriptContext import io.github.alexzhirkevich.skriptie.VariableType import io.github.alexzhirkevich.skriptie.argForNameOrIndex +import io.github.alexzhirkevich.skriptie.ecmascript.Object internal class FunctionParam( val name : String, - val default : Expression? + val isVararg : Boolean = false, + val default : Expression? = null ) +internal infix fun String.with(default: Expression?) : FunctionParam { + return FunctionParam(this, false, default) +} + + internal class OpFunction( val name : String, private val parameters : List>, private val body : Expression ) { + init { + val varargs = parameters.count { it.isVararg } + + if (varargs > 1 || varargs == 1 && !parameters.last().isVararg){ + throw SyntaxError("Rest parameter must be last formal parameter") + } + } fun invoke( args: List>, context: C, ): Any? { - val arguments = buildMap { - parameters.fastForEachIndexed { i, p -> - this[p.name] = Pair( - VariableType.Local, - requireNotNull(args.argForNameOrIndex(i, p.name) ?: p.default) { - "'${p.name}' argument of '$name' function is missing" - }.invoke(context) - ) + try { + val arguments = buildMap { + parameters.fastForEachIndexed { i, p -> + val value = if (p.isVararg){ + args.drop(i).fastMap { it(context) } + } else { + requireNotNull(args.argForNameOrIndex(i, p.name) ?: p.default) { + "'${p.name}' argument of '$name' function is missing" + }.invoke(context) + } + this[p.name] = Pair( + VariableType.Local, + value + ) + } } - } - - return context.withScope(arguments){ - body.invoke(it as C) + return context.withScope(arguments) { + body.invoke(it as C) + } + } catch (ret: BlockReturn) { + return ret.value } } } internal fun OpFunctionExec( name : String, + receiver : Expression?, parameters : List>, -) = Expression { - val function = it.getVariable(name) as? OpFunction - ?: unresolvedReference(name) +) = Expression { ctx -> + + val function = when (val res = receiver?.invoke(ctx)) { + null -> ctx.getVariable(name) + is Object -> res[name] + else -> null + } as? OpFunction ?: unresolvedReference(name) function.invoke( args = parameters, - context = it, + context = ctx, ) } - -internal class OpReturn( - val value : Expression -) : Expression by value \ No newline at end of file diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpGetVariable.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpGetVariable.kt index d41e2faf..bed50055 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpGetVariable.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpGetVariable.kt @@ -3,9 +3,11 @@ package io.github.alexzhirkevich.skriptie.common import io.github.alexzhirkevich.skriptie.Expression import io.github.alexzhirkevich.skriptie.ScriptContext import io.github.alexzhirkevich.skriptie.VariableType +import io.github.alexzhirkevich.skriptie.ecmascript.Object internal class OpGetVariable( val name : String, + val receiver : Expression?, val assignmentType : VariableType? = null ) : Expression { @@ -15,10 +17,14 @@ internal class OpGetVariable( return if (assignmentType != null) { context.setVariable(name, 0f, assignmentType) } else { - if (context.hasVariable(name)){ - context.getVariable(name) - } else { - Unit + when (val res = receiver?.invoke(context)) { + is Object -> if (name in res) res[name] else Unit + + else -> if (context.hasVariable(name)) { + context.getVariable(name) + } else { + unresolvedReference(name) + } } } } diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpIncDec.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpIncDec.kt new file mode 100644 index 00000000..0d508822 --- /dev/null +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpIncDec.kt @@ -0,0 +1,40 @@ +package io.github.alexzhirkevich.skriptie.common + +import io.github.alexzhirkevich.skriptie.Expression +import io.github.alexzhirkevich.skriptie.ScriptContext + +internal fun OpIncDecAssign( + variable: Expression, + preAssign : Boolean, + op: (Any?) -> Any? +) : Expression { + + val value = Expression { op(variable(it)) } + val assignment = when { + variable is OpGetVariable && variable.assignmentType == null -> + OpAssign( + variableName = variable.name, + assignableValue = value, + merge = null + ) + + variable is OpIndex && variable.variable is OpGetVariable -> + OpAssignByIndex( + variableName = variable.variable.name, + index = variable.index, + assignableValue = value, + scope = null, + merge = null + ) + + else -> error("$variable is not assignable") + } + + if (preAssign) { + return assignment + } + + return Expression { ctx -> + variable(ctx).also { assignment(ctx) } + } +} diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpLoops.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpLoops.kt index 610444ab..9279e04c 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpLoops.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpLoops.kt @@ -4,39 +4,25 @@ import io.github.alexzhirkevich.skriptie.Expression import io.github.alexzhirkevich.skriptie.ScriptContext import io.github.alexzhirkevich.skriptie.VariableType + internal class OpForLoop( private val assignment : OpAssign?, private val increment: Expression?, private val comparison : Expression?, + private val isFalse : (Any?) -> Boolean, private val body: Expression ) : Expression { - override fun invoke( - context: C - ): Any? { - if (comparison == null) { - loop( - condition = true, - context = context, - ) - } else { - TODO("for loop") - } - - return Unit + private val condition: (C) -> Boolean = if (comparison == null) { + { true } + } else { + { !isFalse(comparison.invoke(it)) } } - private fun loop( - condition: Boolean, - context: C, - ) { - val block = { ctx: C -> - while (condition) { - body.invoke(ctx) - increment?.invoke(ctx) - } - } + override fun invoke( + context: C + ): Any { if (assignment?.type == VariableType.Local || assignment?.type == VariableType.Const) { context.withScope( @@ -54,34 +40,54 @@ internal class OpForLoop( assignment?.invoke(context) context.withScope { block(it as C) } } + return Unit + } + + private fun block(ctx: C) { + while (condition(ctx)) { + try { + body.invoke(ctx) + } catch (_: BlockContinue) { + continue + } catch (_: BlockBreak) { + break + } finally { + increment?.invoke(ctx) + } + } } } internal fun OpDoWhileLoop( condition : Expression, - body : OpBlock + body : OpBlock, + isFalse : (Any?) -> Boolean ) = Expression { do { - body.invoke(it) - } while (!condition.invoke(it).isFalse()) + try { + body.invoke(it) + } catch (_: BlockContinue) { + continue + } catch (_: BlockBreak) { + break + } + } while (!isFalse(condition.invoke(it))) } internal fun OpWhileLoop( condition : Expression, - body : Expression + body : Expression, + isFalse : (Any?) -> Boolean ) = Expression { - while (!condition.invoke(it).isFalse()){ - body.invoke(it) + while (!isFalse(condition.invoke(it))) { + try { + body.invoke(it) + } catch (_: BlockContinue) { + continue + } catch (_: BlockBreak) { + break + } } } - -internal fun Any?.isFalse() : Boolean { - return this == null - ||this == false - || this is Number && toDouble() == 0.0 - || this is CharSequence && isEmpty() - || this is Unit -} - diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpVar.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpVar.kt index 02b63598..3919b1e9 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpVar.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/OpVar.kt @@ -10,9 +10,15 @@ internal class OpVar( ) : Expression, InterpretationContext { override fun interpret(callable: String?, args: List>?): Expression? { - return if (callable == null) + return if (callable == null) { OpConstant(Unit) - else OpGetVariable(callable, assignmentType = scope) + } else { + OpGetVariable( + name = callable, + receiver = null, + assignmentType = scope + ) + } } } diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/ScriptUtil.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/ScriptUtil.kt index d6c1651a..3550f7bd 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/ScriptUtil.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/common/ScriptUtil.kt @@ -23,11 +23,6 @@ internal fun checkNotEmpty(value : T?) : T { return value } -internal fun unresolvedReference(ref : String, obj : String? = null) : Nothing = - if (obj != null) - error("Unresolved reference '$ref' for $obj") - else error("Unresolved reference: $ref") - internal fun Expression.cast(block: (T) -> R) : Expression = Expression { block(invoke(it) as T) } diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/EcmascriptInterpreter.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/EcmascriptInterpreter.kt index 4655b2ff..d089d464 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/EcmascriptInterpreter.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/EcmascriptInterpreter.kt @@ -1,769 +1,14 @@ package io.github.alexzhirkevich.skriptie.ecmascript -import io.github.alexzhirkevich.skriptie.Expression -import io.github.alexzhirkevich.skriptie.ExtensionContext import io.github.alexzhirkevich.skriptie.GlobalContext -import io.github.alexzhirkevich.skriptie.InterpretationContext import io.github.alexzhirkevich.skriptie.Script import io.github.alexzhirkevich.skriptie.ScriptContext import io.github.alexzhirkevich.skriptie.ScriptInterpreter -import io.github.alexzhirkevich.skriptie.VariableType -import io.github.alexzhirkevich.skriptie.asScript -import io.github.alexzhirkevich.skriptie.common.FunctionParam -import io.github.alexzhirkevich.skriptie.common.OpBlock -import io.github.alexzhirkevich.skriptie.common.OpBoolean -import io.github.alexzhirkevich.skriptie.common.OpDoWhileLoop -import io.github.alexzhirkevich.skriptie.common.OpEquals -import io.github.alexzhirkevich.skriptie.common.OpFunction -import io.github.alexzhirkevich.skriptie.common.OpFunctionExec -import io.github.alexzhirkevich.skriptie.common.OpIfCondition -import io.github.alexzhirkevich.skriptie.common.OpNot -import io.github.alexzhirkevich.skriptie.common.OpReturn -import io.github.alexzhirkevich.skriptie.common.OpTryCatch -import io.github.alexzhirkevich.skriptie.common.OpWhileLoop -import io.github.alexzhirkevich.skriptie.common.unresolvedReference -import io.github.alexzhirkevich.skriptie.common.OpAssign -import io.github.alexzhirkevich.skriptie.common.OpAssignByIndex -import io.github.alexzhirkevich.skriptie.common.OpCompare -import io.github.alexzhirkevich.skriptie.common.OpConstant -import io.github.alexzhirkevich.skriptie.common.OpEqualsComparator -import io.github.alexzhirkevich.skriptie.common.OpGreaterComparator -import io.github.alexzhirkevich.skriptie.common.OpIndex -import io.github.alexzhirkevich.skriptie.common.OpLessComparator -import io.github.alexzhirkevich.skriptie.common.OpMakeArray -import io.github.alexzhirkevich.skriptie.common.OpVar -import io.github.alexzhirkevich.skriptie.common.Delegate -import io.github.alexzhirkevich.skriptie.common.OpGetVariable -import io.github.alexzhirkevich.skriptie.isAssignable -import kotlin.contracts.ExperimentalContracts -import kotlin.contracts.contract -internal val EXPR_DEBUG_PRINT_ENABLED = false - -internal enum class LogicalContext { - And, Or, Compare -} - - -internal class EcmascriptInterpreter( - private val expr : String, - private val scriptContext: C, - private val globalContext : GlobalContext, - private val extensionContext : ExtensionContext +public class EcmascriptInterpreter( + private val context : GlobalContext, ) : ScriptInterpreter { - - private var pos = -1 - private var ch: Char = ' ' - - override fun interpret(): Script { - val expressions = buildList { - pos = -1 - ch = ' ' - if (EXPR_DEBUG_PRINT_ENABLED) { - println("Parsing $expr") - } - nextChar() - do { - while (eat(';')) { - } - if (pos >= expr.length) { - break - } - - add(parseAssignment(globalContext)) - } while (pos < expr.length) - - require(pos <= expr.length) { - "Unexpected Lottie expression $expr" - } - } - return OpBlock( - expressions = expressions, - scoped = false - ).asScript().also { - pos = -1 - ch = ' ' - if (EXPR_DEBUG_PRINT_ENABLED) { - println("Expression parsed: $expr") - } - } - } - - private fun prepareNextChar(){ - while (ch.skip() && pos < expr.length){ - nextChar() - } - } - - private fun nextChar() { - ch = if (++pos < expr.length) expr[pos] else ' ' - } - - private fun prevChar() { - ch = if (--pos > 0 && pos < expr.length) expr[pos] else ' ' - } - - private fun Char.skip() : Boolean = this == ' ' || this == '\n' - - private fun eat(charToEat: Char): Boolean { - while (ch.skip() && pos < expr.length) - nextChar() - - if (ch == charToEat) { - nextChar() - return true - } - return false - } - - private fun nextCharIs(condition: (Char) -> Boolean): Boolean { - var i = pos - - while (i < expr.length) { - if (condition(expr[i])) - return true - if (expr[i].skip()) - i++ - else return false - } - return false - } - - private fun eatSequence(seq : String): Boolean { - - val p = pos - val c = ch - - if (seq.isEmpty()) - return true - - if (!eat(seq[0])) { - return false - } - - return if (expr.indexOf(seq, startIndex = pos-1) == pos-1){ - pos += seq.length -1 - ch = expr[pos.coerceIn(expr.indices)] - true - } else { - pos = p - ch = c - false - } - } - - private fun nextSequenceIs(seq : String): Boolean { - - val p = pos - val c = ch - - if (seq.isEmpty()) - return true - - if (!eat(seq[0])) { - return false - } - - return if (expr.indexOf(seq, startIndex = pos-1) == pos-1){ - pos = p - ch = c - true - } else { - pos = p - ch = c - false - } - } - - private fun parseAssignment(context: Expression): Expression { - var x = parseExpressionOp(context) - if (EXPR_DEBUG_PRINT_ENABLED){ - println("Parsing assignment for $x") - } - while (true) { - prepareNextChar() - x = when { - eatSequence("+=") -> parseAssignmentValue(x, globalContext::sum) - eatSequence("-=") -> parseAssignmentValue(x, globalContext::sub) - eatSequence("*=") -> parseAssignmentValue(x, globalContext::mul) - eatSequence("/=") -> parseAssignmentValue(x, globalContext::div) - eatSequence("%=") -> parseAssignmentValue(x, globalContext::mod) - eat('=') -> parseAssignmentValue(x, null) - x.isAssignable() && eatSequence("++") -> Delegate(x, globalContext::inc) - x.isAssignable() && eatSequence("--") -> Delegate(x, globalContext::dec) - else -> return x - } - } - } - - private fun parseAssignmentValue(x : Expression, merge : ((Any?, Any?) -> Any?)? = null) = when { - x is OpIndex && x.variable is OpGetVariable -> OpAssignByIndex( - variableName = x.variable.name, - scope = x.variable.assignmentType, - index = x.index, - assignableValue = parseAssignment(globalContext), - merge = merge - ).also { - if (EXPR_DEBUG_PRINT_ENABLED) { - println("parsing assignment with index for ${x.variable.name}") - } - } - - x is OpGetVariable -> OpAssign( - variableName = x.name, - assignableValue = parseAssignment(globalContext), - type = x.assignmentType, - merge = merge - ).also { - if (EXPR_DEBUG_PRINT_ENABLED) { - println("parsing assignment for ${x.name} in ${it.type} scope") - } - } - - else -> error("Invalid assignment") - } - - private fun parseExpressionOp(context: Expression, logicalContext: LogicalContext? = null): Expression { - var x = parseTermOp(context) - while (true) { - prepareNextChar() - x = when { - logicalContext != LogicalContext.Compare && eatSequence("&&") -> - OpBoolean(parseExpressionOp(globalContext, LogicalContext.And),x, Boolean::and) - logicalContext == null && eatSequence("||") -> - OpBoolean(parseExpressionOp(globalContext, LogicalContext.Or),x, Boolean::or) - eatSequence("<=") -> OpCompare(x, parseExpressionOp(globalContext, LogicalContext.Compare)) { a, b -> - OpLessComparator(a, b) || OpEqualsComparator(a, b) - } - eatSequence("<") -> OpCompare(x, parseExpressionOp(globalContext, LogicalContext.Compare), OpLessComparator) - eatSequence(">=") -> OpCompare(x, parseExpressionOp(globalContext, LogicalContext.Compare)) { a, b -> - OpGreaterComparator(a, b) || OpEqualsComparator(a, b) - } - eatSequence(">") -> OpCompare(x, parseExpressionOp(globalContext, LogicalContext.Compare), OpGreaterComparator) - eatSequence("===") -> OpEquals(x, parseExpressionOp(globalContext, LogicalContext.Compare), true) - eatSequence("==") -> OpEquals(x, parseExpressionOp(globalContext, LogicalContext.Compare), false) - eatSequence("!==") -> OpNot(OpEquals(x, parseExpressionOp(globalContext, LogicalContext.Compare), false)) - eatSequence("!=") -> OpNot(OpEquals(x, parseExpressionOp(globalContext, LogicalContext.Compare), true)) - !nextSequenceIs("++") && !nextSequenceIs("+=") && eat('+') -> - Delegate(x, parseTermOp(globalContext), globalContext::sum) - !nextSequenceIs("--") && !nextSequenceIs("-=") && eat('-') -> - Delegate(x, parseTermOp(globalContext),globalContext::sub) - else -> return x - } - } - } - - private fun parseTermOp(context: Expression): Expression { - var x = parseFactorOp(context) - while (true) { - prepareNextChar() - x = when { - !nextSequenceIs("*=") && eat('*') -> Delegate( - x, - parseFactorOp(globalContext), - globalContext::mul - ) - - !nextSequenceIs("/=") && eat('/') -> Delegate( - x, - parseFactorOp(globalContext), - globalContext::div - ) - - !nextSequenceIs("%=") && eat('%') -> Delegate( - x, - parseFactorOp(globalContext), - globalContext::mod - ) - - else -> return x - } - } - } - - private fun parseFactorOp(context: Expression): Expression { - val parsedOp = when { - context is GlobalContext && eatSequence("++") -> { - val start = pos - val variable = parseFactorOp(globalContext) - require(variable.isAssignable()){ - "Unexpected '++' as $start" - } - Delegate(variable, globalContext::inc) - } - - context is GlobalContext && eatSequence("--") -> { - val start = pos - val variable = parseFactorOp(globalContext) - require(variable.isAssignable()){ - "Unexpected '--' as $start" - } - Delegate(variable, globalContext::dec) - } - - context is GlobalContext && eat('+') -> - Delegate(parseFactorOp(context)) { it } - - context is GlobalContext && eat('-') -> - Delegate(parseFactorOp(context), globalContext::neg) - - context is GlobalContext && !nextSequenceIs("!=") && eat('!') -> - OpNot(parseExpressionOp(context)) - - context is GlobalContext && eat('(') -> { - parseExpressionOp(context).also { - require(eat(')')) { - "Bad expression: Missing ')'" - } - } - } - - context is GlobalContext && nextCharIs { it.isDigit() || it == '.' } -> { - if (EXPR_DEBUG_PRINT_ENABLED) { - print("making const number... ") - } - var numberFormat = NumberFormat.Dec - var isFloat = nextCharIs { it == '.' } - val startPos = pos - do { - nextChar() - when(ch.lowercaseChar()){ - '.' -> { - if (isFloat) { - break - } - isFloat = true - } - NumberFormat.Hex.prefix -> { - check(numberFormat == NumberFormat.Dec && !isFloat) { - "Invalid number at pos $startPos" - } - numberFormat = NumberFormat.Hex - } - NumberFormat.Oct.prefix -> { - check(numberFormat == NumberFormat.Dec && !isFloat) { - "Invalid number at pos $startPos" - } - numberFormat = NumberFormat.Oct - } - NumberFormat.Bin.prefix -> { - if (numberFormat == NumberFormat.Hex) { - continue - } - check(numberFormat == NumberFormat.Dec && !isFloat) { - "Invalid number at pos $startPos" - } - numberFormat = NumberFormat.Bin - } - } - } while (ch.lowercaseChar().let { - it in numberFormat.alphabet || it in NumberFormatIndicators - }) - - val num = expr.substring(startPos, pos).let { - if (it.endsWith('.')) { - prevChar() - isFloat = false - } - if (isFloat) { - it.toDouble() - } - else { - it.trimEnd('.') - .let { n -> numberFormat.prefix?.let(n::substringAfter) ?: n } - .toULong(numberFormat.radix) - .toLong() - } - } - if (EXPR_DEBUG_PRINT_ENABLED) { - println(num) - } - OpConstant(num) - } - - context is GlobalContext && nextCharIs('\''::equals) || nextCharIs('"'::equals) -> { - if (EXPR_DEBUG_PRINT_ENABLED) { - print("making const string... ") - } - val c = ch - val startPos = pos - do { - nextChar() - } while (!eat(c)) - val str = expr.substring(startPos, pos).drop(1).dropLast(1) - if (EXPR_DEBUG_PRINT_ENABLED) { - println(str) - } - OpConstant(str) - } - - context is GlobalContext && eat('[') -> { // make array - if (EXPR_DEBUG_PRINT_ENABLED) { - println("making array... ") - } - val arrayArgs = buildList { - do { - if (eat(']')) { // empty list - return@buildList - } - add(parseExpressionOp(context)) - } while (eat(',')) - require(eat(']')) { - "Bad expression: missing ]" - } - } - OpMakeArray(arrayArgs) - } - - context !is GlobalContext && eat('[') -> { // index - if (EXPR_DEBUG_PRINT_ENABLED) { - println("making index... ") - } - OpIndex(context, parseExpressionOp(globalContext)).also { - require(eat(']')) { - "Bad expression: Missing ']'" - } - } - } - - - ch.isFun() -> { - - val startPos = pos - do { - nextChar() - } while ( - pos < expr.length && ch.isFun() && !(isReserved(expr.substring(startPos, pos)) && ch == ' ') - ) - - val func = expr.substring(startPos, pos).trim() - - parseFunction(context, func) - } - - else -> error("Unsupported Lottie expression: $expr") - } - - return parsedOp.finish() - } - - private fun Expression.finish() : Expression { - return when { - // inplace function invocation - this is InterpretationContext<*> && nextCharIs { it == '(' } -> { - parseFunction(this, null) - } - // begin condition || property || index - this is OpVar<*> - || eat('.') - || nextCharIs('['::equals) -> - parseFactorOp(this) // continue with receiver - - else -> this - } - } - - private fun parseFunctionArgs(name : String?): List>? { - - if (!nextCharIs('('::equals)){ - return null - } - return buildList { - when { - eat('(') -> { - if (eat(')')){ - return@buildList //empty args - } - do { - add(parseAssignment(globalContext)) - } while (eat(',')) - - require(eat(')')) { - "Bad expression:Missing ')' after argument to $name" - } - } - } - } - } - - private fun parseFunction(context: Expression, func : String?) : Expression { - - return when (func) { - "var", "let", "const" -> { - OpVar( - when (func) { - "var" -> VariableType.Global - "let" -> VariableType.Local - else -> VariableType.Const - } - ) - } - "undefined" -> OpConstant(Unit) - "null" -> OpConstant(null) - "true" -> OpConstant(true) - "false" -> OpConstant(false) - "function" -> parseFunctionDefinition() - "while" -> { - if (EXPR_DEBUG_PRINT_ENABLED) { - println("making while loop") - } - - OpWhileLoop( - condition = parseWhileCondition(), - body = parseBlock() - ) - } - "do" -> { - if (EXPR_DEBUG_PRINT_ENABLED) { - println("making do/while loop") - } - - val body = parseBlock() - - check(body is OpBlock){ - "Invalid do/while syntax" - } - - check(eatSequence("while")){ - "Missing while condition in do/while block" - } - val condition = parseWhileCondition() - - OpDoWhileLoop( - condition = condition, - body = body - ) - } - - "if" -> { - - if (EXPR_DEBUG_PRINT_ENABLED) { - print("parsing if...") - } - - val condition = parseExpressionOp(globalContext) - - val onTrue = parseBlock() - - val onFalse = if (eatSequence("else")) { - parseBlock() - } else null - - OpIfCondition( - condition = condition, - onTrue = onTrue, - onFalse = onFalse - ) - } - - "return" -> { - val expr = parseExpressionOp(globalContext) - if (EXPR_DEBUG_PRINT_ENABLED) { - println("making return with $expr") - } - OpReturn(expr) - } - "try" -> { - val tryBlock = parseBlock(requireBlock = true) - val catchBlock = if (eatSequence("catch")) { - - if (eat('(')) { - val start = pos - while (!eat(')') && pos < expr.length) { - //nothing - } - expr.substring(start, pos).trim() to parseBlock( - scoped = false, - requireBlock = true - ) - } else { - null to parseBlock(requireBlock = true) - } - } - else null - - val finallyBlock = if (eatSequence("finally")){ - parseBlock(requireBlock = true) - } else null - - OpTryCatch( - tryBlock = tryBlock, - catchVariableName = catchBlock?.first, - catchBlock = catchBlock?.second, - finallyBlock = finallyBlock - ) - } - - else -> { - val args = parseFunctionArgs(func) - - if (EXPR_DEBUG_PRINT_ENABLED) { - println("making fun $func") - } - - return when (context) { - is InterpretationContext -> context.interpret(func, args) - ?: (if (args != null && func != null && this.scriptContext.getVariable(func) is OpFunction<*>) { - if (EXPR_DEBUG_PRINT_ENABLED) { - println("parsed call for defined function $func") - } - OpFunctionExec(func, args) - } else null) - ?: run { - if (args == null && func != null) { - if (EXPR_DEBUG_PRINT_ENABLED) { - println("making GetVariable $func...") - } - OpGetVariable(func) - } else { - null - } - } - ?: unresolvedReference( - ref = func ?: "null", - obj = context::class.simpleName - ?.substringAfter("Op") - ?.substringBefore("Context") - ) - - else -> extensionContext.interpret(context, func,args) - ?: unresolvedReference(func ?: "null") - } - } - } - } - - private fun parseWhileCondition(): Expression { - check(eat('(')){ - "Missing while loop condition" - } - - val condition = parseExpressionOp(globalContext) - - check(eat(')')){ - "Missing closing ')' in loop condition" - } - return condition - } - - private fun parseFunctionDefinition() : Expression { - val start = pos - - while (ch != '(') { - nextChar() - } - - val name = expr.substring(start, pos).trim() - - if (EXPR_DEBUG_PRINT_ENABLED) { - println("making defined function $name") - } - - val args = parseFunctionArgs(name).let { args -> - args?.map { - when (it) { - is OpGetVariable -> FunctionParam(name = it.name, default = null) - is OpAssign -> FunctionParam( - name = it.variableName, - default = it.assignableValue - ) - - else -> error("Invalid function declaration at $start") - } - } - } - - checkNotNull(args){ - "Missing function args" - } - - - check(nextCharIs('{'::equals)) { - "Missing function body at $pos" - } - - - val block = parseBlock( - scoped = false // function scope will be used - ) - - this.scriptContext.setVariable( - name = name, - value = OpFunction( - name = name, - parameters = args, - body = block - ), - type = VariableType.Const - ) - if (EXPR_DEBUG_PRINT_ENABLED) { - println("registered function $name") - } - return OpConstant(Unit) - } - - private fun parseBlock(scoped : Boolean = true, requireBlock : Boolean = false): Expression { - val list = buildList { - if (eat('{')) { - while (!eat('}') && pos < expr.length) { - add(parseAssignment(globalContext)) - eat(';') - } - } else { - if (requireBlock){ - error("Unexpected token at $pos: block start was expected") - } - add(parseAssignment(globalContext)) - } - } - return OpBlock(list, scoped) - } -} - - -@OptIn(ExperimentalContracts::class) -internal fun checkArgsNotNull(args : List<*>?, func : String) { - contract { - returns() implies (args != null) - } - checkNotNull(args){ - "$func call was missing" - } -} - -@OptIn(ExperimentalContracts::class) -internal fun checkArgs(args : List<*>?, count : Int, func : String) { - contract { - returns() implies (args != null) - } - checkNotNull(args){ - "$func call was missing" - } - require(args.size == count){ - "$func takes $count arguments, but ${args.size} got" + override fun interpret(script: String): Script { + return EcmascriptInterpreterImpl(script, context).interpret() } } - -private val funMap = (('a'..'z').toList() + ('A'..'Z').toList() + '$' + '_' ).associateBy { it } - -private fun Char.isFun() = isDigit() || funMap[this] != null - - -private enum class NumberFormat( - val radix : Int, - val alphabet : String, - val prefix : Char? -) { - Dec(10, ".0123456789", null), - Hex(16, "0123456789abcdef", 'x'), - Oct(8, "01234567", 'o'), - Bin(2, "01", 'b') -} - -private val NumberFormatIndicators = NumberFormat.entries.mapNotNull { it.prefix } - -private val reservedKeywords = setOf( - "function","return","do","while","for" -) - -private fun isReserved(keyword : String) = keyword in reservedKeywords diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/EcmascriptInterpreterImpl.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/EcmascriptInterpreterImpl.kt new file mode 100644 index 00000000..1ae52bf2 --- /dev/null +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/EcmascriptInterpreterImpl.kt @@ -0,0 +1,1002 @@ +package io.github.alexzhirkevich.skriptie.ecmascript + +import io.github.alexzhirkevich.skriptie.Expression +import io.github.alexzhirkevich.skriptie.GlobalContext +import io.github.alexzhirkevich.skriptie.InterpretationContext +import io.github.alexzhirkevich.skriptie.Script +import io.github.alexzhirkevich.skriptie.ScriptContext +import io.github.alexzhirkevich.skriptie.VariableType +import io.github.alexzhirkevich.skriptie.asScript +import io.github.alexzhirkevich.skriptie.common.Delegate +import io.github.alexzhirkevich.skriptie.common.FunctionParam +import io.github.alexzhirkevich.skriptie.common.OpAssign +import io.github.alexzhirkevich.skriptie.common.OpAssignByIndex +import io.github.alexzhirkevich.skriptie.common.OpBlock +import io.github.alexzhirkevich.skriptie.common.OpBoolean +import io.github.alexzhirkevich.skriptie.common.OpBreak +import io.github.alexzhirkevich.skriptie.common.OpCompare +import io.github.alexzhirkevich.skriptie.common.OpConstant +import io.github.alexzhirkevich.skriptie.common.OpContinue +import io.github.alexzhirkevich.skriptie.common.OpDoWhileLoop +import io.github.alexzhirkevich.skriptie.common.OpEquals +import io.github.alexzhirkevich.skriptie.common.OpEqualsComparator +import io.github.alexzhirkevich.skriptie.common.OpForLoop +import io.github.alexzhirkevich.skriptie.common.OpFunction +import io.github.alexzhirkevich.skriptie.common.OpFunctionExec +import io.github.alexzhirkevich.skriptie.common.OpGetVariable +import io.github.alexzhirkevich.skriptie.common.OpGreaterComparator +import io.github.alexzhirkevich.skriptie.common.OpIfCondition +import io.github.alexzhirkevich.skriptie.common.OpIncDecAssign +import io.github.alexzhirkevich.skriptie.common.OpIndex +import io.github.alexzhirkevich.skriptie.common.OpLessComparator +import io.github.alexzhirkevich.skriptie.common.OpMakeArray +import io.github.alexzhirkevich.skriptie.common.OpNot +import io.github.alexzhirkevich.skriptie.common.OpReturn +import io.github.alexzhirkevich.skriptie.common.OpTryCatch +import io.github.alexzhirkevich.skriptie.common.OpVar +import io.github.alexzhirkevich.skriptie.common.OpWhileLoop +import io.github.alexzhirkevich.skriptie.common.SyntaxError +import io.github.alexzhirkevich.skriptie.common.unresolvedReference +import io.github.alexzhirkevich.skriptie.isAssignable +import kotlin.contracts.ExperimentalContracts +import kotlin.contracts.contract + +internal val EXPR_DEBUG_PRINT_ENABLED = false + +internal enum class LogicalContext { + And, Or, Compare +} + +internal enum class BlockContext { + None, Loop, Function +} + + +internal class EcmascriptInterpreterImpl( + private val expr : String, + private val globalContext : GlobalContext, +) { + + private var pos = -1 + private var ch: Char = ' ' + private var blockFunctionRegistrar = mutableListOf>() + + fun interpret(): Script { + val expressions = buildList { + pos = -1 + ch = ' ' + if (EXPR_DEBUG_PRINT_ENABLED) { + println("Parsing $expr") + } + nextChar() + do { + while (eat(';')) { + } + if (pos >= expr.length) { + break + } + + add(parseAssignment(globalContext, emptyList())) + } while (pos < expr.length) + + require(pos <= expr.length) { + "Unexpected Lottie expression $expr" + } + } + val block = OpBlock( + expressions = blockFunctionRegistrar + expressions, + scoped = false + ) + pos = -1 + ch = ' ' + if (EXPR_DEBUG_PRINT_ENABLED) { + println("Expression parsed: $expr") + } + return block.asScript() + } + + private fun prepareNextChar() { + while (ch.skip() && pos < expr.length) { + nextChar() + } + } + + private fun nextChar() { + ch = if (++pos < expr.length) expr[pos] else ' ' + } + + private fun prevChar() { + ch = if (--pos > 0 && pos < expr.length) expr[pos] else ' ' + } + + private fun Char.skip(): Boolean = this == ' ' || this == '\n' + + private fun eat(charToEat: Char): Boolean { + while (ch.skip() && pos < expr.length) + nextChar() + + if (ch == charToEat) { + nextChar() + return true + } + return false + } + + private fun nextCharIs(condition: (Char) -> Boolean): Boolean { + var i = pos + + while (i < expr.length) { + if (condition(expr[i])) + return true + if (expr[i].skip()) + i++ + else return false + } + return false + } + + private fun eatSequence(seq: String): Boolean { + + val p = pos + val c = ch + + if (seq.isEmpty()) + return true + + if (!eat(seq[0])) { + return false + } + + return if (expr.indexOf(seq, startIndex = pos - 1) == pos - 1) { + pos += seq.length - 1 + ch = expr[pos.coerceIn(expr.indices)] + true + } else { + pos = p + ch = c + false + } + } + + private fun nextSequenceIs(seq: String): Boolean { + + val p = pos + val c = ch + + if (seq.isEmpty()) + return true + + if (!eat(seq[0])) { + return false + } + + return if (expr.indexOf(seq, startIndex = pos - 1) == pos - 1) { + pos = p + ch = c + true + } else { + pos = p + ch = c + false + } + } + + private fun parseAssignment(context: Expression, blockContext : List): Expression { + var x = parseExpressionOp(context, blockContext = blockContext) + if (EXPR_DEBUG_PRINT_ENABLED) { + println("Parsing assignment for $x") + } + while (true) { + prepareNextChar() + x = when { + eatSequence("+=") -> parseAssignmentValue(x, globalContext::sum) + eatSequence("-=") -> parseAssignmentValue(x, globalContext::sub) + eatSequence("*=") -> parseAssignmentValue(x, globalContext::mul) + eatSequence("/=") -> parseAssignmentValue(x, globalContext::div) + eatSequence("%=") -> parseAssignmentValue(x, globalContext::mod) + eat('=') -> parseAssignmentValue(x, null) + eatSequence("++") -> { + check(x.isAssignable()) { + "Not assignable" + } + OpIncDecAssign( + variable = x, + preAssign = false, + op = globalContext::inc + ) + } + + eatSequence("--") -> { + check(x.isAssignable()) { + "Not assignable" + } + OpIncDecAssign( + variable = x, + preAssign = false, + op = globalContext::dec + ) + } + + else -> return x + } + } + } + + private fun parseAssignmentValue(x: Expression, merge: ((Any?, Any?) -> Any?)? = null) = + when { + x is OpIndex && x.variable is OpGetVariable -> OpAssignByIndex( + variableName = x.variable.name, + scope = x.variable.assignmentType, + index = x.index, + assignableValue = parseAssignment(globalContext, emptyList()), + merge = merge + ).also { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("parsed assignment with index for ${x.variable.name}") + } + } + + x is OpGetVariable -> OpAssign( + variableName = x.name, + assignableValue = parseAssignment(globalContext, emptyList()), + type = x.assignmentType, + merge = merge + ).also { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("parsed assignment for ${x.name}") + } + } + + else -> error("Invalid assignment") + } + + private fun parseExpressionOp( + context: Expression, + logicalContext: LogicalContext? = null, + blockContext : List + ): Expression { + var x = parseTermOp(context, blockContext) + while (true) { + prepareNextChar() + x = when { + logicalContext != LogicalContext.Compare && eatSequence("&&") -> + OpBoolean( + parseExpressionOp(globalContext, LogicalContext.And,blockContext), + x, + globalContext::isFalse, Boolean::and + ) + + logicalContext == null && eatSequence("||") -> + OpBoolean( + parseExpressionOp(globalContext, LogicalContext.Or,blockContext), + x, + globalContext::isFalse, Boolean::or + ) + + eatSequence("<=") -> OpCompare( + x, + parseExpressionOp(globalContext, LogicalContext.Compare,blockContext) + ) { a, b -> + OpLessComparator(a, b) || OpEqualsComparator(a, b) + } + + eatSequence("<") -> OpCompare( + x, + parseExpressionOp(globalContext, LogicalContext.Compare,blockContext), + OpLessComparator + ) + + eatSequence(">=") -> OpCompare( + x, + parseExpressionOp(globalContext, LogicalContext.Compare,blockContext) + ) { a, b -> + OpGreaterComparator(a, b) || OpEqualsComparator(a, b) + } + + eatSequence(">") -> OpCompare( + x, + parseExpressionOp(globalContext, LogicalContext.Compare,blockContext), + OpGreaterComparator + ) + + eatSequence("===") -> OpEquals( + x, + parseExpressionOp(globalContext, LogicalContext.Compare,blockContext), + true + ) + + eatSequence("==") -> OpEquals( + x, + parseExpressionOp(globalContext, LogicalContext.Compare,blockContext), + false + ) + + eatSequence("!==") -> OpNot( + OpEquals( + x, + parseExpressionOp(globalContext, LogicalContext.Compare,blockContext), + false + ), + globalContext::isFalse + ) + + eatSequence("!=") -> OpNot( + OpEquals( + x, + parseExpressionOp(globalContext, LogicalContext.Compare, blockContext), + true + ), + globalContext::isFalse + ) + + !nextSequenceIs("++") && !nextSequenceIs("+=") && eat('+') -> + Delegate(x, parseTermOp(globalContext, blockContext), globalContext::sum) + + !nextSequenceIs("--") && !nextSequenceIs("-=") && eat('-') -> + Delegate(x, parseTermOp(globalContext, blockContext), globalContext::sub) + + else -> return x + } + } + } + + private fun parseTermOp(context: Expression, blockContext : List): Expression { + var x = parseFactorOp(context, blockContext) + while (true) { + prepareNextChar() + x = when { + !nextSequenceIs("*=") && eat('*') -> Delegate( + x, + parseFactorOp(globalContext,blockContext), + globalContext::mul + ) + + !nextSequenceIs("/=") && eat('/') -> Delegate( + x, + parseFactorOp(globalContext,blockContext), + globalContext::div + ) + + !nextSequenceIs("%=") && eat('%') -> Delegate( + x, + parseFactorOp(globalContext, blockContext), + globalContext::mod + ) + + else -> return x + } + } + } + + private fun parseFactorOp(context: Expression, blockContext : List): Expression { + val parsedOp = when { + + nextCharIs('{'::equals) -> parseBlock(context = emptyList()) + + context is GlobalContext && eatSequence("++") -> { + val start = pos + val variable = parseFactorOp(globalContext, blockContext) + require(variable.isAssignable()) { + "Unexpected '++' as $start" + } + OpIncDecAssign( + variable = variable, + preAssign = true, + op = globalContext::inc + ) + } + + context is GlobalContext && eatSequence("--") -> { + val start = pos + val variable = parseFactorOp(globalContext, blockContext) + require(variable.isAssignable()) { + "Unexpected '--' as $start" + } + OpIncDecAssign( + variable = variable, + preAssign = true, + op = globalContext::dec + ) + } + + context is GlobalContext && eat('+') -> + Delegate(parseFactorOp(context, blockContext), globalContext::pos) + + context is GlobalContext && eat('-') -> + Delegate(parseFactorOp(context, blockContext), globalContext::neg) + + context is GlobalContext && !nextSequenceIs("!=") && eat('!') -> + OpNot(parseExpressionOp(context, blockContext = blockContext), globalContext::isFalse) + + context is GlobalContext && eat('(') -> { + parseExpressionOp(context, blockContext = blockContext).also { + require(eat(')')) { + "Bad expression: Missing ')'" + } + } + } + + context is GlobalContext && nextCharIs { it.isDigit() || it == '.' } -> { + if (EXPR_DEBUG_PRINT_ENABLED) { + print("making const number... ") + } + var numberFormat = NumberFormat.Dec + var isFloat = nextCharIs { it == '.' } + val startPos = pos + do { + nextChar() + when (ch.lowercaseChar()) { + '.' -> { + if (isFloat) { + break + } + isFloat = true + } + + NumberFormat.Hex.prefix -> { + check(numberFormat == NumberFormat.Dec && !isFloat) { + "Invalid number at pos $startPos" + } + numberFormat = NumberFormat.Hex + } + + NumberFormat.Oct.prefix -> { + check(numberFormat == NumberFormat.Dec && !isFloat) { + "Invalid number at pos $startPos" + } + numberFormat = NumberFormat.Oct + } + + NumberFormat.Bin.prefix -> { + if (numberFormat == NumberFormat.Hex) { + continue + } + check(numberFormat == NumberFormat.Dec && !isFloat) { + "Invalid number at pos $startPos" + } + numberFormat = NumberFormat.Bin + } + } + } while (ch.lowercaseChar().let { + it in numberFormat.alphabet || it in NumberFormatIndicators + }) + val num = try { + expr.substring(startPos, pos).let { + if (it.endsWith('.')) { + prevChar() + isFloat = false + } + if (isFloat) { + it.toDouble() + } else { + it.trimEnd('.') + .let { n -> numberFormat.prefix?.let(n::substringAfter) ?: n } + .toULong(numberFormat.radix) + .toLong() + } + } + } catch (t: NumberFormatException) { + throw SyntaxError("Unexpected token ${expr[startPos]} at $startPos") + } + if (EXPR_DEBUG_PRINT_ENABLED) { + println(num) + } + OpConstant(num) + } + + context is GlobalContext && nextCharIs('\''::equals) || nextCharIs('"'::equals) -> { + if (EXPR_DEBUG_PRINT_ENABLED) { + print("making const string... ") + } + val c = ch + val startPos = pos + do { + nextChar() + } while (!eat(c)) + val str = expr.substring(startPos, pos).drop(1).dropLast(1) + if (EXPR_DEBUG_PRINT_ENABLED) { + println(str) + } + OpConstant(str) + } + + context is GlobalContext && eat('[') -> { // make array + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making array... ") + } + val arrayArgs = buildList { + do { + if (eat(']')) { // empty list + return@buildList + } + add(parseExpressionOp(context,blockContext = blockContext)) + } while (eat(',')) + require(eat(']')) { + "Bad expression: missing ]" + } + } + OpMakeArray(arrayArgs) + } + + context !is GlobalContext && eat('[') -> { // index + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making index... ") + } + OpIndex(context, parseExpressionOp(globalContext, blockContext = blockContext)).also { + require(eat(']')) { + "Bad expression: Missing ']'" + } + } + } + + + ch.isFun() -> { + + val startPos = pos + do { + nextChar() + } while ( + pos < expr.length && ch.isFun() && !(isReserved( + expr.substring( + startPos, + pos + ) + ) && ch == ' ') + ) + + val func = expr.substring(startPos, pos).trim() + + parseFunction(context, func, blockContext) + } + + else -> throw SyntaxError("Unexpected token $ch at pos $pos") + } + + return parsedOp.finish(blockContext) + } + + private fun Expression.finish(blockContext : List): Expression { + return when { + // inplace function invocation + this is InterpretationContext<*> && nextCharIs { it == '(' } -> { + parseFunction(this, null, blockContext) + } + // begin condition || property || index + this is OpVar<*> + || eat('.') + || nextCharIs('['::equals) -> + parseFactorOp(this, blockContext) // continue with receiver + + else -> this + } + } + + private fun parseFunctionArgs(name: String?): List>? { + + if (!nextCharIs('('::equals)) { + return null + } + return buildList { + when { + eat('(') -> { + if (eat(')')) { + return@buildList //empty args + } + do { + add(parseAssignment(globalContext, emptyList())) + } while (eat(',')) + + require(eat(')')) { + "Bad expression:Missing ')' after argument to $name" + } + } + } + } + } + + private fun parseFunction( + context: Expression, + func: String?, + blockContext : List + ): Expression { + + return when (func) { + "var", "let", "const" -> { + OpVar( + when (func) { + "var" -> VariableType.Global + "let" -> VariableType.Local + else -> VariableType.Const + } + ) + } + + "undefined" -> OpConstant(Unit) + "null" -> OpConstant(null) + "true" -> OpConstant(true) + "false" -> OpConstant(false) + "function" -> { + blockFunctionRegistrar += parseFunctionDefinition(blockContext = blockContext) + OpConstant(Unit) + } + "for" -> { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making for loop") + } + parseForLoop(blockContext) + } + + "while" -> { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making while loop") + } + + OpWhileLoop( + condition = parseWhileCondition(), + body = parseBlock(context = blockContext + BlockContext.Loop), + isFalse = globalContext::isFalse + ) + } + + "do" -> { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making do/while loop") + } + + val body = parseBlock(context = blockContext + BlockContext.Loop) + + check(body is OpBlock) { + "Invalid do/while syntax" + } + + check(eatSequence("while")) { + "Missing while condition in do/while block" + } + val condition = parseWhileCondition() + + OpDoWhileLoop( + condition = condition, + body = body, + isFalse = globalContext::isFalse + + ) + } + + "if" -> { + + if (EXPR_DEBUG_PRINT_ENABLED) { + print("parsing if...") + } + + val condition = parseExpressionOp(globalContext, blockContext = blockContext) + + val onTrue = parseBlock(context = blockContext) + + val onFalse = if (eatSequence("else")) { + parseBlock(context = blockContext) + } else null + + OpIfCondition( + condition = condition, + onTrue = onTrue, + onFalse = onFalse + ) + } + + "continue" -> { + if(BlockContext.Loop in blockContext){ + if (EXPR_DEBUG_PRINT_ENABLED) { + println("parsing loop continue") + } + OpContinue() + } else{ + throw SyntaxError("Illegal continue statement: no surrounding iteration statement") + } + } + + "break" -> { + if(BlockContext.Loop in blockContext){ + if (EXPR_DEBUG_PRINT_ENABLED) { + println("parsing loop break") + } + OpBreak() + } else{ + throw SyntaxError("Illegal break statement") + } + } + + "return" -> { + if (BlockContext.Function in blockContext) { + val expr = parseExpressionOp(globalContext,blockContext = blockContext) + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making return with $expr") + } + OpReturn(expr) + } else { + throw SyntaxError("Illegal return statement") + } + } + + "try" -> { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making try $expr") + } + parseTryCatch(blockContext) + } + + else -> { + val args = parseFunctionArgs(func) + + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making fun $func") + } + + return when (context) { + is InterpretationContext -> context.interpret(func, args) + ?: run { + if (args != null && func != null) { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("parsed call for defined function $func") + } + OpFunctionExec(func, null, args) + } else null + } + ?: run { + if (args == null && func != null) { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making GetVariable $func...") + } + OpGetVariable(name = func, receiver = null) + } else { + null + } + } + ?: unresolvedReference( + ref = func ?: "null", + obj = context::class.simpleName + ?.substringAfter("Op") + ?.substringBefore("Context") + ) + + else -> { + globalContext.interpret(context, func, args) + ?: run { + if (args != null && func != null) { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("parsed call for function $func with receiver $context") + } + OpFunctionExec( + name = func, + receiver = context, + parameters = args + ) + } else null + } + ?: run { + if (args == null && func != null) { + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making GetVariable $func with receiver $context... ") + } + OpGetVariable(name = func, receiver = context) + } else { + null + } + } + ?: unresolvedReference(func ?: "null") + } + } + } + } + } + + private fun parseWhileCondition(): Expression { + check(eat('(')) { + "Missing while loop condition" + } + + val condition = parseExpressionOp(globalContext, blockContext = emptyList()) + + check(eat(')')) { + "Missing closing ')' in loop condition" + } + return condition + } + + private fun parseTryCatch(blockContext : List) : Expression { + val tryBlock = parseBlock(requireBlock = true, context = blockContext) + val catchBlock = if (eatSequence("catch")) { + + if (eat('(')) { + val start = pos + while (!eat(')') && pos < expr.length) { + //nothing + } + expr.substring(start, pos).trim() to parseBlock( + scoped = false, + requireBlock = true, + context = blockContext + ) + } else { + null to parseBlock(requireBlock = true, context = blockContext) + } + } else null + + val finallyBlock = if (eatSequence("finally")) { + parseBlock(requireBlock = true, context = blockContext) + } else null + + return OpTryCatch( + tryBlock = tryBlock, + catchVariableName = catchBlock?.first, + catchBlock = catchBlock?.second, + finallyBlock = finallyBlock + ) + } + + private fun parseForLoop(parentBlockContext: List): Expression { + check(eat('(')) + + val assign = if (eat(';')) null else parseAssignment(globalContext, emptyList()) + check(assign is OpAssign?) + if (assign != null) { + check(eat(';')) + } + println(assign) + val comparison = if (eat(';')) null else parseAssignment(globalContext, emptyList()) + if (comparison != null) { + check(eat(';')) + } + println(comparison) + val increment = if (eat(')')) null else parseAssignment(globalContext, emptyList()) + + println(increment) + if (increment != null) { + check(eat(')')) + } + + val body = parseBlock(scoped = false, context = parentBlockContext + BlockContext.Loop) + + return OpForLoop( + assignment = assign, + increment = increment, + comparison = comparison, + isFalse = globalContext::isFalse, + body = body + ) + } + + private fun parseFunctionDefinition(name: String? = null, blockContext: List): Expression { + + val start = pos + + val actualName = name ?: run { + + while (ch != '(') { + nextChar() + } + + expr.substring(start, pos).trim() + } + if (EXPR_DEBUG_PRINT_ENABLED) { + println("making defined function $actualName") + } + + val args = parseFunctionArgs(actualName).let { args -> + args?.map { + when (it) { + is OpGetVariable -> FunctionParam(name = it.name, default = null) + is OpAssign -> FunctionParam( + name = it.variableName, + default = it.assignableValue + ) + + else -> error("Invalid function declaration at $start") + } + } + } + + checkNotNull(args) { + "Missing function args" + } + + + check(nextCharIs('{'::equals)) { + "Missing function body at $pos" + } + + + val block = parseBlock( + scoped = false, + context = blockContext + BlockContext.Function + ) + + val function = OpFunction( + name = actualName, + parameters = args, + body = block + ) + + return OpAssign( + type = VariableType.Const, + variableName = actualName, + assignableValue = OpConstant(function), + merge = null + ) + } + + private fun parseBlock( + scoped: Boolean = true, + requireBlock: Boolean = false, + context: List + ): Expression { + + val oldRegistrar = blockFunctionRegistrar + try { + blockFunctionRegistrar = mutableListOf() + val list = buildList { + if (eat('{')) { + while (!eat('}') && pos < expr.length) { + add(parseAssignment(globalContext, context)) + eat(';') + } + } else { + if (requireBlock) { + throw SyntaxError("Unexpected token at $pos: block start was expected") + } + add(parseAssignment(globalContext, context)) + } + } + return OpBlock(blockFunctionRegistrar + list, scoped) + } finally { + blockFunctionRegistrar = oldRegistrar + } + } +} + + +@OptIn(ExperimentalContracts::class) +internal fun checkArgsNotNull(args : List<*>?, func : String) { + contract { + returns() implies (args != null) + } + checkNotNull(args){ + "$func call was missing" + } +} + +@OptIn(ExperimentalContracts::class) +internal fun checkArgs(args : List<*>?, count : Int, func : String) { + contract { + returns() implies (args != null) + } + checkNotNull(args){ + "$func call was missing" + } + require(args.size == count){ + "$func takes $count arguments, but ${args.size} got" + } +} + +private val funMap = (('a'..'z').toList() + ('A'..'Z').toList() + '$' + '_' ).associateBy { it } + +private fun Char.isFun() = isDigit() || funMap[this] != null + + +private enum class NumberFormat( + val radix : Int, + val alphabet : String, + val prefix : Char? +) { + Dec(10, ".0123456789", null), + Hex(16, "0123456789abcdef", 'x'), + Oct(8, "01234567", 'o'), + Bin(2, "01", 'b') +} + +private val NumberFormatIndicators = NumberFormat.entries.mapNotNull { it.prefix } + +private val reservedKeywords = setOf( + "function","return","do","while","for" +) + +private fun isReserved(keyword : String) = keyword in reservedKeywords diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/Object.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/Object.kt new file mode 100644 index 00000000..bd074664 --- /dev/null +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/ecmascript/Object.kt @@ -0,0 +1,65 @@ +package io.github.alexzhirkevich.skriptie.ecmascript + +import io.github.alexzhirkevich.skriptie.Expression +import io.github.alexzhirkevich.skriptie.ScriptContext +import io.github.alexzhirkevich.skriptie.common.FunctionParam +import io.github.alexzhirkevich.skriptie.common.OpFunction +import io.github.alexzhirkevich.skriptie.common.OpGetVariable + +internal class Object( + private val name : String, + private val map : MutableMap = mutableMapOf() +) : MutableMap by map { + override fun toString(): String { + return if (name.isNotBlank()){ + "[object $name]" + } else { + "[object]" + } + } +} + + +internal sealed interface ObjectScope { + + infix fun String.eq(value: Any?) + + fun String.func( + vararg args: FunctionParam, + body: (args: List>) -> Expression + ) + + fun String.func( + vararg args: String, + params: (String) -> FunctionParam = { FunctionParam(it) }, + body: (args: List>) -> Expression + ) { + func( + args = args.map(params).toTypedArray(), + body = body + ) + } +} + +private class ObjectScopeImpl(name: String) : ObjectScope { + val o = Object(name) + + override fun String.func( + vararg args: FunctionParam, + body: (args: List>) -> Expression + ) { + this eq OpFunction( + this, + parameters = args.toList(), + body = body(args.map { OpGetVariable(it.name, null) }) + ) + } + + override fun String.eq(value: Any?) { + o[this] = value + } +} + +internal fun obj(name: String, builder : ObjectScope.() -> Unit) : Object { + return ObjectScopeImpl(name).also(builder).o +} \ No newline at end of file diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JS.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JS.kt deleted file mode 100644 index 576c37c4..00000000 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JS.kt +++ /dev/null @@ -1,25 +0,0 @@ -package io.github.alexzhirkevich.skriptie.javascript - -import io.github.alexzhirkevich.skriptie.Script -import io.github.alexzhirkevich.skriptie.ScriptEngine -import io.github.alexzhirkevich.skriptie.ecmascript.EcmascriptInterpreter - -public class JS( - override val context: JSScriptContext = JSScriptContext(), - private val globalContext: JsGlobalContext = JsGlobalContext(), - private val extensionContext : JsExtensionContext = JsExtensionContext(), -) : ScriptEngine { - - override fun compile(script: String): Script { - return EcmascriptInterpreter( - expr = script, - scriptContext = context, - globalContext = globalContext, - extensionContext = extensionContext - ).interpret() - } - - override fun reset() { - context.reset() - } -} \ No newline at end of file diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JsGlobalContext.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JSInterpretationContext.kt similarity index 55% rename from skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JsGlobalContext.kt rename to skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JSInterpretationContext.kt index 7e8b966d..06371ddc 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JsGlobalContext.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JSInterpretationContext.kt @@ -1,98 +1,111 @@ package io.github.alexzhirkevich.skriptie.javascript -import io.github.alexzhirkevich.skriptie.javascript.math.JsInfinity -import io.github.alexzhirkevich.skriptie.javascript.math.JsMath import io.github.alexzhirkevich.skriptie.Expression import io.github.alexzhirkevich.skriptie.GlobalContext +import io.github.alexzhirkevich.skriptie.argAt import io.github.alexzhirkevich.skriptie.common.fastMap -import kotlin.math.min +import io.github.alexzhirkevich.skriptie.ecmascript.checkArgs +import io.github.alexzhirkevich.skriptie.javascript.iterable.JsIndexOf +import io.github.alexzhirkevich.skriptie.javascript.number.JsNumberContext +import io.github.alexzhirkevich.skriptie.javascript.string.JsStringContext +import kotlin.math.absoluteValue -public open class JsGlobalContext : GlobalContext { +public open class JSInterpretationContext : GlobalContext { override fun interpret( callable: String?, args: List>? + ): Expression? = null + + override fun interpret( + parent: Expression, + op: String?, + args: List>? ): Expression? { - return when (callable) { - "Infinity" -> JsInfinity - "Math" -> JsMath - else -> null + return if (args != null){ + when (op) { + "toString" -> Expression { parent(it).toString() } + "indexOf", "lastIndexOf" -> { + checkArgs(args, 1, op) + JsIndexOf( + value = parent, + search = args.argAt(0), + last = op == "lastIndexOf" + ) + } + + else -> JsNumberContext.interpret(parent, op, args) + ?: JsStringContext.interpret(parent, op, args) + } + } else { + JsNumberContext.interpret(parent, op, args) + ?: JsStringContext.interpret(parent, op, args) } } + override fun isFalse(a: Any?): Boolean { + return a == null + || a == false + || a is Number && a.toDouble() == 0.0 + || a is CharSequence && a.isEmpty() + || a is Unit + } + override fun sum(a: Any?, b: Any?): Any? { - return jssum(a?.validateJsNumber(), b?.validateJsNumber()) + return jssum( + a?.numberOrThis(false), + b?.numberOrThis(false) + ) } override fun sub(a: Any?, b: Any?): Any? { - return jssub(a?.validateJsNumber(), b?.validateJsNumber()) + return jssub(a?.numberOrThis(), b?.numberOrThis()) } override fun mul(a: Any?, b: Any?): Any? { - return jsmul(a?.validateJsNumber(), b?.validateJsNumber()) + return jsmul(a?.numberOrThis(), b?.numberOrThis()) } override fun div(a: Any?, b: Any?): Any? { - return jsdiv(a?.validateJsNumber(), b?.validateJsNumber()) + return jsdiv(a?.numberOrThis(), b?.numberOrThis()) } override fun mod(a: Any?, b: Any?): Any { - return jsmod(a?.validateJsNumber(), b?.validateJsNumber()) + return jsmod(a?.numberOrThis(), b?.numberOrThis()) } override fun inc(a: Any?): Any { - return jsinc(a?.validateJsNumber()) + return jsinc(a?.numberOrThis()) } override fun dec(a: Any?): Any { - return jsdec(a?.validateJsNumber()) + return jsdec(a?.numberOrThis()) } override fun neg(a: Any?): Any { - return jsneg(a?.validateJsNumber()) + return jsneg(a?.numberOrThis()) + } + + override fun pos(a: Any?): Any { + return jspos(a?.numberOrThis()) } } private fun jssum(a : Any?, b : Any?) : Any? { + val a = if (a is List<*>) + a.joinToString(",") + else a + val b = if (b is List<*>) + b.joinToString(",") + else b return when { a == null && b == null -> 0L a == null && b is Number || a is Number && b == null -> a ?: b b is Unit || a is Unit -> Double.NaN a is Long && b is Long -> a + b a is Number && b is Number -> a.toDouble() + b.toDouble() - a is List<*> && b is List<*> -> { - a as List - b as List - - List(min(a.size, b.size)) { - a[it].toDouble() + b[it].toDouble() - } - } - - a is List<*> && b is Number -> { - if (a is MutableList<*>) { - a as MutableList - a[0] = a[0].toDouble() + b.toDouble() - a - } else { - listOf((a as List).first().toDouble() + b.toDouble()) + a.drop(1) - } - } - - a is Number && b is List<*> -> { - if (b is MutableList<*>) { - b as MutableList - b[0] = b[0].toDouble() + a.toDouble() - b - } else { - listOf(a.toDouble() + (b as List).first().toDouble()) + b.drop(1) - } - } - - a is CharSequence || b is CharSequence -> a.toString() + b.toString() - - else -> error("Cant calculate the sum of $a and $b") + else -> a.toString() + b.toString() } } @@ -103,42 +116,7 @@ private fun jssub(a : Any?, b : Any?) : Any? { a is Long? && b is Long? -> (a ?: 0L) - (b ?: 0L) a is Double? && b is Double? ->(a ?: 0.0) - (b ?: 0.0) a is Number? && b is Number? ->(a?.toDouble() ?: 0.0) - (b?.toDouble() ?: 0.0) - a is List<*> && b is List<*> -> { - a as List - b as List - List(min(a.size, b.size)) { - a[it].toDouble() - b[it].toDouble() - } - } - a is CharSequence || b is CharSequence -> { - stringMath(a?.toString(), b?.toString(), Long::minus, Double::minus) - } - else -> error("Cant subtract $b from $a") - } -} - -private fun stringMath( - a : String?, - b : String?, - long : (Long, Long) -> Long, - double: (Double,Double) -> Double -) : Any { - val sa = a ?: "0" - val sb = b ?: "0" - - val la = sa.toLongOrNull() - val lb = sb.toLongOrNull() - - return if (la != null && lb != null) { - long(la, lb) - } else { - val da = sa.toDoubleOrNull() - val db = sb.toDoubleOrNull() - if (da != null && db != null) { - double(da, db) - } else { - Double.NaN - } + else -> Double.NaN } } @@ -160,10 +138,7 @@ private fun jsmul(a : Any?, b : Any?) : Any? { val af = a.toDouble() b.fastMap { it.toDouble() * af } } - a is CharSequence || b is CharSequence -> { - stringMath(a.toString(), b.toString(), Long::times, Double::times) - } - else -> error("Cant multiply $a by $b") + else -> Double.NaN } } @@ -189,21 +164,18 @@ private fun jsdiv(a : Any?, b : Any?) : Any { a.fastMap { it.toDouble() / bf } } - a is CharSequence || b is CharSequence -> { - stringMath(a?.toString(), b?.toString(), Long::div, Double::div) - } - - else -> error("Cant divide $a by $b") + else -> Double.NaN } } private fun jsmod(a : Any?, b : Any?) : Any { return when { + b == null || a == Unit || b == Unit -> Double.NaN + (b as? Number)?.toDouble()?.absoluteValue?.let { it < Double.MIN_VALUE } == true -> Double.NaN a == null -> 0L - b == null -> Double.NaN a is Long && b is Long -> a % b a is Number && b is Number -> a.toDouble() % b.toDouble() - else -> error("Can't get mod of $a and $b") + else -> Double.NaN } } @@ -214,7 +186,7 @@ private fun jsinc(v : Any?) : Any { is Long -> v + 1 is Double -> v + 1 is Number -> v.toDouble() + 1 - else -> error("can't increment $v") + else -> Double.NaN } } @@ -224,7 +196,7 @@ private fun jsdec(v : Any?) : Any { is Long -> v - 1 is Double -> v - 1 is Number -> v.toDouble() - 1 - else -> error("can't decrement $v") + else -> Double.NaN } } @@ -238,11 +210,20 @@ private fun jsneg(v : Any?) : Any { v.fastMap { -it.toDouble() } } - else -> error("Cant apply unary minus to $v") + else -> Double.NaN } } -internal fun Any.validateJsNumber() = when(this) { +private fun jspos(v : Any?) : Any { + return when (v) { + null -> 0 + is Number -> v + else -> Double.NaN + } +} + + +public fun Any.numberOrNull(withNaNs : Boolean = true) : Any? = when(this) { is Byte -> toLong() is UByte -> toLong() is Short -> toLong() @@ -251,6 +232,19 @@ internal fun Any.validateJsNumber() = when(this) { is UInt -> toLong() is ULong -> toLong() is Float -> toDouble() - else -> this + is Long, is Double -> this + is String -> if (withNaNs) { + toLongOrNull() ?: toDoubleOrNull() + } else null + is List<*> -> { + if (withNaNs) { + singleOrNull()?.numberOrNull(withNaNs) + } else{ + null + } + } + else -> null } + +public fun Any.numberOrThis(withMagic : Boolean = true) : Any = numberOrNull(withMagic) ?: this diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JSScriptContext.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JSScriptContext.kt index 6de11cd8..fda45916 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JSScriptContext.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JSScriptContext.kt @@ -1,7 +1,22 @@ package io.github.alexzhirkevich.skriptie.javascript -import io.github.alexzhirkevich.skriptie.BaseScriptContext -import io.github.alexzhirkevich.skriptie.GlobalContext -import io.github.alexzhirkevich.skriptie.ScriptContext +import io.github.alexzhirkevich.skriptie.EcmascriptContext +import io.github.alexzhirkevich.skriptie.VariableType +import io.github.alexzhirkevich.skriptie.javascript.math.JsMath -public open class JSScriptContext() : BaseScriptContext() \ No newline at end of file +public open class JSScriptContext : EcmascriptContext() { + + init { + recreate() + } + + override fun reset() { + super.reset() + recreate() + } + + private fun recreate(){ + variables["Math"] = VariableType.Const to JsMath() + variables["Infinity"] = VariableType.Const to Double.POSITIVE_INFINITY + } +} \ No newline at end of file diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JsExtensionContext.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JsExtensionContext.kt deleted file mode 100644 index ae1b8567..00000000 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/JsExtensionContext.kt +++ /dev/null @@ -1,39 +0,0 @@ -package io.github.alexzhirkevich.skriptie.javascript - -import io.github.alexzhirkevich.skriptie.javascript.number.JsNumberContext -import io.github.alexzhirkevich.skriptie.javascript.string.JsStringContext -import io.github.alexzhirkevich.skriptie.Expression -import io.github.alexzhirkevich.skriptie.ExtensionContext -import io.github.alexzhirkevich.skriptie.argAt -import io.github.alexzhirkevich.skriptie.ecmascript.checkArgs -import io.github.alexzhirkevich.skriptie.javascript.iterable.JsIndexOf - -public open class JsExtensionContext: ExtensionContext { - - override fun interpret( - parent: Expression, - op: String?, - args: List>? - ): Expression? { - return if (args != null){ - when (op) { - "toString" -> Expression { parent(it).toString() } - "indexOf", "lastIndexOf" -> { - checkArgs(args, 1, op) - JsIndexOf( - value = parent, - search = args.argAt(0), - last = op == "lastIndexOf" - ) - } - - else -> JsNumberContext.interpret(parent, op, args) - ?: JsStringContext.interpret(parent, op, args) - } - } else { - JsNumberContext.interpret(parent, op, args) - ?: JsStringContext.interpret(parent, op, args) - } - } -} - diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/math/JsMath.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/math/JsMath.kt index 1c7c525f..55ae26e9 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/math/JsMath.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/math/JsMath.kt @@ -1,161 +1,232 @@ package io.github.alexzhirkevich.skriptie.javascript.math import io.github.alexzhirkevich.skriptie.Expression -import io.github.alexzhirkevich.skriptie.InterpretationContext +import io.github.alexzhirkevich.skriptie.ScriptContext import io.github.alexzhirkevich.skriptie.argAt -import io.github.alexzhirkevich.skriptie.common.OpConstant +import io.github.alexzhirkevich.skriptie.common.FunctionParam import io.github.alexzhirkevich.skriptie.common.fastMap import io.github.alexzhirkevich.skriptie.common.fastSumBy +import io.github.alexzhirkevich.skriptie.ecmascript.Object import io.github.alexzhirkevich.skriptie.ecmascript.checkArgs +import io.github.alexzhirkevich.skriptie.ecmascript.obj import io.github.alexzhirkevich.skriptie.javascript.JSScriptContext -import io.github.alexzhirkevich.skriptie.javascript.validateJsNumber +import io.github.alexzhirkevich.skriptie.javascript.numberOrThis import kotlin.math.* import kotlin.random.Random -internal val JsInfinity = OpConstant(Double.POSITIVE_INFINITY) - -internal object JsMath : InterpretationContext { - - override fun invoke(context: JSScriptContext): Any = this - - override fun interpret( - callable: String?, - args: List>? - ): Expression { - return if (args == null){ - interpretVar(callable) - } else { - interpretFun(callable, args) - } - } - - private fun interpretVar( - op: String?, - ): Expression { - return when (op) { - "PI" -> PI - "E" -> E - "LN10" -> LN10 - "LN2" -> LN2 - "LOG10E" -> LOG10E - "LOG2E" -> LOG2E - "SQRT1_2" -> SQRT1_2 - "SQRT2" -> SQRT2 - else -> OpConstant(Unit) +internal fun JsMath() : Object { + + return obj("Math") { + + "PI" eq PI + "E" eq E + "LN10" eq 2.302585092994046 + "LN2" eq 0.6931471805599453 + "LOG10E" eq 0.4342944819032518 + "LOG2E" eq 1.4426950408889634 + "SQRT1_2" eq 0.7071067811865476 + "SQRT2" eq 1.4142135623730951 + + "abs".func("x") { op1(it, ::acos) } + "asoc".func("x") { op1(it, ::acos) } + "asoch".func("x") { op1(it, ::acosh) } + "asin".func("x") { op1(it, ::asin) } + "asinh".func("x") { op1(it, ::asinh) } + "atan".func("x") { op1(it, ::atan) } + "atan2".func("y", "x") { op2(it, ::atan2) } + "atanh".func("x") { op1(it, ::atanh) } + "cbrt".func("x") { op1(it, ::cbrt) } + "ceil".func("x") { op1(it, ::ceil) } + "cos".func("x") { op1(it, ::cos) } + "cosh".func("x") { op1(it, ::cosh) } + "exp".func("x") { op1(it, ::exp) } + "expm1".func("x") { op1(it, ::expm1) } + "floor".func("x") { op1(it, ::floor) } + "hypot".func( + "values", + params = { FunctionParam(it, isVararg = true) } + ) { opVararg(it, ::hypotN) } + "imul".func("x", "y",) { op2(it, ::imul) } + "log".func("x") { op1(it, ::ln) } + "log10".func("x") { op1(it, ::log10) } + "log1p ".func("x") { op1(it, ::ln1p) } + "log2".func("x") { op1(it, ::log2) } + "max".func( + "values", + params = { FunctionParam(it, isVararg = true) } + ) { + opVararg(it, List::max) } + "min".func( + "values", + params = { FunctionParam(it, isVararg = true) } + ) { opVararg(it, List::min) } + "pow".func("x", "y",) { op2(it, Double::pow) } + "random".func("x") { Expression { Random.nextDouble() } } + "round".func("x") { op1(it, ::round) } + "sign".func("x") { op1(it, ::sign) } + "sin".func("x") { op1(it, ::sin) } + "sinh".func("x") { op1(it, ::sinh) } + "sqrt".func("x") { op1(it, ::sqrt) } + "tan".func("x") { op1(it, ::tan) } + "tanh".func("x") { op1(it, ::tanh) } + "trunc".func("x") { op1(it, ::truncate) } } - private fun interpretFun( - op: String?, - args: List> - ): Expression { - return when (op) { - "abs" -> op1(args, ::abs, op) - "asoc" -> op1(args, ::acos, op) - "asoch" -> op1(args, ::acosh, op) - "asin" -> op1(args, ::asin, op) - "asinh" -> op1(args, ::asinh, op) - "atan" -> op1(args, ::atan, op) - "atan2" -> op2(args, ::atan2, op) - "atanh" -> op1(args, ::atanh, op) - "cbrt" -> op1(args, ::cbrt, op) - "ceil" -> op1(args, ::ceil, op) - "cos" -> op1(args, ::cos, op) - "cosh" -> op1(args, ::cosh, op) - "exp" -> op1(args, ::exp, op) - "expm1" -> op1(args, ::expm1, op) - "floor" -> op1(args, ::floor, op) - "hypot" -> opN(args, ::hypotN, op) - "imul" -> op2(args, ::imul, op) - "log" -> op2(args, ::log, op) - "log10" -> op1(args, ::log10, op) - "log1p " -> op1(args, ::ln1p, op) - "log2" -> op1(args, ::log2, op) - "max" -> opN(args, List::max, op) - "min" -> opN(args, List::min, op) - "pow" -> op2(args, Double::pow, op) - "random" -> Expression { Random.nextDouble() } - "round" -> op1(args, Double::roundToInt, op) - "sign" -> op1(args, Double::sign, op) - "sin" -> op1(args, ::sin, op) - "sinh" -> op1(args, ::sinh, op) - "sqrt" -> op1(args, ::sqrt, op) - "tan" -> op1(args, ::tan, op) - "tanh" -> op1(args, ::tanh, op) - "trunc" -> op1(args, ::truncate, op) - - else -> OpConstant(Unit) +} + +//internal object JsMath : InterpretationContext { +// +// override fun invoke(context: JSScriptContext): Any = this +// +// override fun interpret( +// callable: String?, +// args: List>? +// ): Expression { +// return if (args == null){ +// interpretVar(callable) +// } else { +// interpretFun(callable, args) +// } +// } +// +// private fun interpretVar( +// op: String?, +// ): Expression { +// return when (op) { +// "PI" -> PI +// "E" -> E +// "LN10" -> LN10 +// "LN2" -> LN2 +// "LOG10E" -> LOG10E +// "LOG2E" -> LOG2E +// "SQRT1_2" -> SQRT1_2 +// "SQRT2" -> SQRT2 +// else -> OpConstant(Unit) +// } +// } +// private fun interpretFun( +// op: String?, +// args: List> +// ): Expression { +// return when (op) { +// "abs" -> op1(args, ::abs, op) +// "asoc" -> op1(args, ::acos, op) +// "asoch" -> op1(args, ::acosh, op) +// "asin" -> op1(args, ::asin, op) +// "asinh" -> op1(args, ::asinh, op) +// "atan" -> op1(args, ::atan, op) +// "atan2" -> op2(args, ::atan2, op) +// "atanh" -> op1(args, ::atanh, op) +// "cbrt" -> op1(args, ::cbrt, op) +// "ceil" -> op1(args, ::ceil, op) +// "cos" -> op1(args, ::cos, op) +// "cosh" -> op1(args, ::cosh, op) +// "exp" -> op1(args, ::exp, op) +// "expm1" -> op1(args, ::expm1, op) +// "floor" -> op1(args, ::floor, op) +// "hypot" -> opN(args, ::hypotN, op) +// "imul" -> op2(args, ::imul, op) +// "log" -> op2(args, ::log, op) +// "log10" -> op1(args, ::log10, op) +// "log1p " -> op1(args, ::ln1p, op) +// "log2" -> op1(args, ::log2, op) +// "max" -> opN(args, List::max, op) +// "min" -> opN(args, List::min, op) +// "pow" -> op2(args, Double::pow, op) +// "random" -> Expression { Random.nextDouble() } +// "round" -> op1(args, Double::roundToInt, op) +// "sign" -> op1(args, Double::sign, op) +// "sin" -> op1(args, ::sin, op) +// "sinh" -> op1(args, ::sinh, op) +// "sqrt" -> op1(args, ::sqrt, op) +// "tan" -> op1(args, ::tan, op) +// "tanh" -> op1(args, ::tanh, op) +// "trunc" -> op1(args, ::truncate, op) +// +// else -> OpConstant(Unit) +// } +// } +// +// +// +// +// private val PI = OpConstant(kotlin.math.PI) +// private val E = OpConstant(kotlin.math.E) +// private val LN10 = OpConstant(2.302585092994046) +// private val LN2 = OpConstant(0.6931471805599453) +// private val LOG10E = OpConstant(0.4342944819032518) +// private val LOG2E = OpConstant(1.4426950408889634) +// private val SQRT1_2 = OpConstant(0.7071067811865476) +// private val SQRT2 = OpConstant(1.4142135623730951) +//} + +private fun op1( + args: List>, + func: (Double) -> Number +): Expression { + checkArgs(args, 1, "") + + val a = args.argAt(0) + + return Expression { + var a = a(it)?.numberOrThis() ?: 0.0 + + if (a !is Number){ + a = a.toString().toDoubleOrNull() ?: return@Expression Double.NaN } - } - private fun op1( - args: List>, - func: (Double) -> Number, - name: String - ): Expression { - checkArgs(args, 1, name) - - val a = args.argAt(0) - return Expression { - val a = a(it)?.validateJsNumber() ?: 0.0 - require(a is Number) { - "Can't get Math.$name of $a" - } + if (a is Number){ func(a.toDouble()) + } else { + Double.NaN } } +} - private fun op2( - args: List>, - func: (Double, Double) -> Number, - name: String - ): Expression { - checkArgs(args, 2, name) - - val a = args.argAt(0) - val b = args.argAt(1) - return Expression { - val a = a(it)?.validateJsNumber() ?: 0 - val b = b(it)?.validateJsNumber() ?: 0 - require(a is Number && b is Number) { - "Can't get Math.$name of ($a,$b)" - } +private fun op2( + args: List>, + func: (Double, Double) -> Number, +): Expression { + checkArgs(args, 2, "") + + val a = args.argAt(0) + val b = args.argAt(1) + return Expression { + var a = a(it)?.numberOrThis() ?: 0.0 + var b = b(it)?.numberOrThis() ?: 0.0 + if (a !is Number){ + a = a.toString().toDoubleOrNull() ?: return@Expression Double.NaN + } + if (b !is Number){ + b = b.toString().toDoubleOrNull() ?: return@Expression Double.NaN + } + if (a is Number && b is Number){ func(a.toDouble(), b.toDouble()) + } else { + Double.NaN } } +} - private fun opN( - args: List>, - func: (List) -> Number, - name: String - ): Expression { - check(args.isNotEmpty()){ - "Math.$name must have at least 1 argument" - } - return Expression { context -> - - val a = args.fastMap { - val n = it(context)?.validateJsNumber().also { - check(it is Number?) { - "Illegal arguments for Math.$name" - } - } as Number? +private fun opVararg( + args: List>, + func: (List) -> Number, +): Expression { + check(args.isNotEmpty()){ - n?.toDouble() ?: 0.0 + } + return Expression { context -> + val a = (args[0].invoke(context) as List<*>).fastMap { + when (it){ + is Number -> it.toDouble() + null -> 0.0 + else -> { + it.toString().toDoubleOrNull() ?: return@Expression Double.NaN + } } - - func(a) } + func(a) } - - - private val PI = OpConstant(kotlin.math.PI) - private val E = OpConstant(kotlin.math.E) - private val LN10 = OpConstant(2.302585092994046) - private val LN2 = OpConstant(0.6931471805599453) - private val LOG10E = OpConstant(0.4342944819032518) - private val LOG2E = OpConstant(1.4426950408889634) - private val SQRT1_2 = OpConstant(0.7071067811865476) - private val SQRT2 = OpConstant(1.4142135623730951) } private fun hypotN(args : List): Double { diff --git a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/number/JsToPrecision.kt b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/number/JsToPrecision.kt index d8049bd5..0297fb8b 100644 --- a/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/number/JsToPrecision.kt +++ b/skriptie/src/commonMain/kotlin/io/github/alexzhirkevich/skriptie/javascript/number/JsToPrecision.kt @@ -2,9 +2,8 @@ package io.github.alexzhirkevich.skriptie.javascript.number import io.github.alexzhirkevich.skriptie.Expression import io.github.alexzhirkevich.skriptie.common.checkNotEmpty -import io.github.alexzhirkevich.skriptie.common.unresolvedReference import io.github.alexzhirkevich.skriptie.javascript.JSScriptContext -import io.github.alexzhirkevich.skriptie.javascript.validateJsNumber +import io.github.alexzhirkevich.skriptie.javascript.numberOrThis import kotlin.math.pow import kotlin.math.roundToInt import kotlin.math.roundToLong @@ -14,9 +13,9 @@ internal fun JsToPrecision( digits : Expression? = null ) = Expression { context -> - val number = checkNotEmpty(number(context)?.validateJsNumber() as? Number?).toDouble() + val number = checkNotEmpty(number(context)?.numberOrThis() as? Number?).toDouble() - val digits = (digits?.invoke(context)?.validateJsNumber() as Number?)?.toInt() + val digits = (digits?.invoke(context)?.numberOrThis() as Number?)?.toInt() ?.takeIf { it > 0 } ?: return@Expression number @@ -27,9 +26,9 @@ internal fun JsToFixed( number : Expression, digits : Expression? ) = Expression { context -> - val number = checkNotEmpty(number(context)?.validateJsNumber() as? Number?).toDouble() + val number = checkNotEmpty(number(context)?.numberOrThis() as? Number?).toDouble() - val digits = (digits?.invoke(context)?.validateJsNumber() as Number?)?.toInt() ?: 0 + val digits = (digits?.invoke(context)?.numberOrThis() as Number?)?.toInt() ?: 0 if (digits == 0) { return@Expression number.roundToLong().toString() diff --git a/skriptie/src/commonTest/kotlin/js/AssignExpressionTest.kt b/skriptie/src/commonTest/kotlin/js/AssignExpressionTest.kt deleted file mode 100644 index 12d74df1..00000000 --- a/skriptie/src/commonTest/kotlin/js/AssignExpressionTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -//package js -// -//import expressions.assertExprReturns -//import expressions.ret -//import io.github.alexzhirkevich.compottie.internal.animation.Vec2 -//import kotlin.test.Test -// -// -//class AssignExpressionTest { -// -// @Test -// fun add_sub_mull_div_assign() { -// -// "var $ret = 13; $ret += 17".assertExprReturns(30f) -// "var $ret = 56; $ret -=17".assertExprReturns(39f) -// "var $ret = 5; $ret *=2".assertExprReturns(10f) -// "var $ret = 13; $ret *= -2*2".assertExprReturns(-52f) -// "var $ret = 144; $ret /=6".assertExprReturns(24f) -// -// "var $ret = []; $ret[0] = 5; $ret[1] = 10; $ret[(5-5)] += 10-3; $ret[5-4] += (4*2);" -// .assertExprReturns(Vec2(12f, 18f)) -// -// "var $ret = []\n $ret[0] = 5\n $ret[1] = 10\n $ret[(5-5)] += 10-3\n $ret[5-4] += (4*2);" -// .assertExprReturns(Vec2(12f, 18f)) -// } -//} diff --git a/skriptie/src/commonTest/kotlin/js/AssignTest.kt b/skriptie/src/commonTest/kotlin/js/AssignTest.kt new file mode 100644 index 00000000..1bc2309e --- /dev/null +++ b/skriptie/src/commonTest/kotlin/js/AssignTest.kt @@ -0,0 +1,23 @@ +package js + +import kotlin.test.Test + + +class AssignTest { + + @Test + fun add_sub_mull_div_assign() { + + "var x = 13; x += 17".eval().assertEqualsTo(30L) + "var x = 56; x -=17".eval().assertEqualsTo(39L) + "var x = 5; x *=2".eval().assertEqualsTo(10L) + "var x = 13; x *= -2*2".eval().assertEqualsTo(-52L) + "var x = 144; x /=6".eval().assertEqualsTo(24L) + + "var x = []; x[0] = 5; x[1] = 10; x[(5-5)] += 10-3; x[5-4] += (4*2); x" + .eval().assertEqualsTo(listOf(12L, 18L)) + + "var x = []\n x[0] = 5\n x[1] = 10\n x[(5-5)] += 10-3\n x[5-4] += (4*2); x" + .eval().assertEqualsTo(listOf(12L, 18L)) + } +} diff --git a/skriptie/src/commonTest/kotlin/js/BooleanExpressionsTest.kt b/skriptie/src/commonTest/kotlin/js/BooleanExpressionsTest.kt deleted file mode 100644 index 6ba1e329..00000000 --- a/skriptie/src/commonTest/kotlin/js/BooleanExpressionsTest.kt +++ /dev/null @@ -1,60 +0,0 @@ -//package js -// -//import expressions.assertSimpleExprEquals -//import kotlin.test.Test -// -//class BooleanExpressionsTest { -// -// @Test -// fun and() { -// "true && true".assertSimpleExprEquals(true) -// "true && true && true".assertSimpleExprEquals(true) -// -// "false && false".assertSimpleExprEquals(false) -// "true && false".assertSimpleExprEquals(false) -// "false && true".assertSimpleExprEquals(false) -// -// "true && true && false".assertSimpleExprEquals(false) -// "false && true && true".assertSimpleExprEquals(false) -// } -// -// @Test -// fun or() { -// "true || true".assertSimpleExprEquals(true) -// "true || true || true".assertSimpleExprEquals(true) -// -// "true || false".assertSimpleExprEquals(true) -// "false || true".assertSimpleExprEquals(true) -// "false || false".assertSimpleExprEquals(false) -// -// "true || true || false".assertSimpleExprEquals(true) -// "false || true || true".assertSimpleExprEquals(true) -// "false || false || true".assertSimpleExprEquals(true) -// "false || false || false".assertSimpleExprEquals(false) -// } -// -// @Test -// fun and_or_order() { -// "true && true || false".assertSimpleExprEquals(true) -// "false || true && true".assertSimpleExprEquals(true) -// -// "(false && true) || (true && true)".assertSimpleExprEquals(true) -// "false && true || true && true".assertSimpleExprEquals(true) -// "(false && true || true) && true".assertSimpleExprEquals(true) -//// -// "true || false && false".assertSimpleExprEquals(true) -// "(true || false) && false".assertSimpleExprEquals(false) -// } -// -// @Test -// fun with_different_source() { -// "false || 1 == 1".assertSimpleExprEquals(true) -// "true && 1 == 2".assertSimpleExprEquals(false) -// -// "(1 == 2) || false || (1+1) == 2".assertSimpleExprEquals(true) -// "1 == 2 || false || (1+1) == 2".assertSimpleExprEquals(true) -// "1 == 1 && 2 == 2".assertSimpleExprEquals(true) -// -// "1 == 2 && 2 == 1 || 2 * 2 == 4".assertSimpleExprEquals(true) -// } -//} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/BooleansTest.kt b/skriptie/src/commonTest/kotlin/js/BooleansTest.kt new file mode 100644 index 00000000..d7496d48 --- /dev/null +++ b/skriptie/src/commonTest/kotlin/js/BooleansTest.kt @@ -0,0 +1,59 @@ +package js + +import kotlin.test.Test + +class BooleansTest { + + @Test + fun and() { + "true && true".eval().assertEqualsTo(true) + "true && true && true".eval().assertEqualsTo(true) + + "false && false".eval().assertEqualsTo(false) + "true && false".eval().assertEqualsTo(false) + "false && true".eval().assertEqualsTo(false) + + "true && true && false".eval().assertEqualsTo(false) + "false && true && true".eval().assertEqualsTo(false) + } + + @Test + fun or() { + "true || true".eval().assertEqualsTo(true) + "true || true || true".eval().assertEqualsTo(true) + + "true || false".eval().assertEqualsTo(true) + "false || true".eval().assertEqualsTo(true) + "false || false".eval().assertEqualsTo(false) + + "true || true || false".eval().assertEqualsTo(true) + "false || true || true".eval().assertEqualsTo(true) + "false || false || true".eval().assertEqualsTo(true) + "false || false || false".eval().assertEqualsTo(false) + } + + @Test + fun and_or_order() { + "true && true || false".eval().assertEqualsTo(true) + "false || true && true".eval().assertEqualsTo(true) + + "(false && true) || (true && true)".eval().assertEqualsTo(true) + "false && true || true && true".eval().assertEqualsTo(true) + "(false && true || true) && true".eval().assertEqualsTo(true) + + "true || false && false".eval().assertEqualsTo(true) + "(true || false) && false".eval().assertEqualsTo(false) + } + + @Test + fun with_different_source() { + "false || 1 == 1".eval().assertEqualsTo(true) + "true && 1 == 2".eval().assertEqualsTo(false) + + "(1 == 2) || false || (1+1) == 2".eval().assertEqualsTo(true) + "1 == 2 || false || (1+1) == 2".eval().assertEqualsTo(true) + "1 == 1 && 2 == 2".eval().assertEqualsTo(true) + + "1 == 2 && 2 == 1 || 2 * 2 == 4".eval().assertEqualsTo(true) + } +} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/ConditionExpressionTest.kt b/skriptie/src/commonTest/kotlin/js/ConditionExpressionTest.kt deleted file mode 100644 index ad1b37a1..00000000 --- a/skriptie/src/commonTest/kotlin/js/ConditionExpressionTest.kt +++ /dev/null @@ -1,39 +0,0 @@ -//package js -// -//import expressions.assertExprReturns -//import expressions.ret -//import kotlin.test.Test -// -//class ConditionExpressionTest { -// -// @Test -// fun if_with_else() { -// "var $ret = 1; if (true) { $ret = $ret+1 }".assertExprReturns(2f) -// "var $ret = 1; if (true) $ret+=1".assertExprReturns(2f) -// "var $ret = 1; if (1==1) { $ret = $ret+1 }".assertExprReturns(2f) -// "var $ret = 1; if (1==1) $ret +=1".assertExprReturns(2f) -// "var $ret = 1; if (true) { $ret = $ret+1;$ret = $ret+1 }".assertExprReturns(3f) -// "var $ret = 1; if (true) { $ret = $ret+1\n$ret +=1 }".assertExprReturns(3f) -// -// "var $ret = 1; if (false) { $ret = $ret } else { $ret = $ret+1 }" -// .assertExprReturns(2f) -// -// "var $ret = 1.0; if (false) $ret +=1" -// .assertExprReturns(1f) -// -// "var $ret = 1; if (1 != 1) $ret = 0 else { $ret = $ret+1;$ret = $ret+1 }" -// .assertExprReturns(3f) -// -// "var $ret = 1; if (!(1 == 1)) $ret = 0 else { $ret +=1;$ret = $ret+1 }" -// .assertExprReturns(3f) -// -// "var $ret = 0; if (true) { if (true) { $ret +=1 } }" -// .assertExprReturns(1f) -// -// "var $ret = 0; if (true) { if (false) { $ret = 0 } else { $ret += 1 } }" -// .assertExprReturns(1f) -// -// "var $ret = 0; if (true) if (false) $ret = 0 else $ret += 1 " -// .assertExprReturns(1f) -// } -//} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/ConditionTest.kt b/skriptie/src/commonTest/kotlin/js/ConditionTest.kt new file mode 100644 index 00000000..f897c7d7 --- /dev/null +++ b/skriptie/src/commonTest/kotlin/js/ConditionTest.kt @@ -0,0 +1,37 @@ +package js + +import kotlin.test.Test + +class ConditionTest { + + @Test + fun if_with_else() { + "var x = 1; if (true) { x = x+1 }; x".eval().assertEqualsTo(2L) + "var x = 1; if (true) x+=1; x".eval().assertEqualsTo(2L) + "var x = 1; if (1==1) { x = x+1 }; x".eval().assertEqualsTo(2L) + "var x = 1; if (1==1) x +=1; x".eval().assertEqualsTo(2L) + "var x = 1; if (true) { x = x+1;x = x+1 }; x".eval().assertEqualsTo(3L) + "var x = 1; if (true) { x = x+1\nx +=1 }; x".eval().assertEqualsTo(3L) + + "var x = 1; if (false) { x = x } else { x = x+1 }; x" + .eval().assertEqualsTo(2L) + + "var x = 1.0; if (false) x +=1; x" + .eval().assertEqualsTo(1.0) + + "var x = 1; if (1 != 1) x = 0 else { x = x+1;x = x+1 }; x" + .eval().assertEqualsTo(3L) + + "var x = 1; if (!(1 == 1)) x = 0 else { x +=1;x = x+1 }; x" + .eval().assertEqualsTo(3L) + + "var x = 0; if (true) { if (true) { x +=1 } }; x" + .eval().assertEqualsTo(1L) + + "var x = 0; if (true) { if (false) { x = 0 } else { x += 1 } }; x" + .eval().assertEqualsTo(1L) + + "var x = 0; if (true) if (false) x = 0 else x += 1; x " + .eval().assertEqualsTo(1L) + } +} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/CustomFunctionsTest.kt b/skriptie/src/commonTest/kotlin/js/CustomFunctionsTest.kt deleted file mode 100644 index 5a001ae3..00000000 --- a/skriptie/src/commonTest/kotlin/js/CustomFunctionsTest.kt +++ /dev/null @@ -1,78 +0,0 @@ -//package js -// -//import expressions.assertExprReturns -//import expressions.ret -//import kotlin.test.Test -// -//class CustomFunctionsTest { -// -// @Test -// fun creation() { -// """ -// var $ret; -// function test(a,b) { return sum(a,b) } -// $ret = test(1,2) -// """.trimIndent().assertExprReturns(3f) -// -// """ -// var $ret; -// function test(a,b) { -// return sum(a,b) -// } -// $ret = test(1,2) -// """.trimIndent().assertExprReturns(3f) -// -// """ -// var $ret; -// function test(a,b) -// { -// let x = b + 1 -// return sum(a,x) -// } -// $ret = test(1,2) -// """.trimIndent().assertExprReturns(4f) -// } -// -// -// @Test -// fun defaultArgs(){ -// """ -// var $ret; -// function test(a, b = 2) -// { -// return sum(a,b) -// } -// $ret = test(1) -// """.trimIndent().assertExprReturns(3f) -// -// """ -// var $ret; -// function test(a, b = 2) -// { -// return sum(a,b) -// } -// $ret = test(2,3) -// """.trimIndent().assertExprReturns(5f) -// -// """ -// var $ret; -// function test(a = 1, b = 2) -// { -// return sum(a,b) -// } -// $ret = test() -// """.trimIndent().assertExprReturns(3f) -// } -// -// @Test -// fun namedArgs(){ -// """ -// var $ret; -// function test(a, b) -// { -// return sum(a,b) -// } -// $ret = test(b = 2, a = 1) -// """.trimIndent().assertExprReturns(3f) -// } -//} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/DivTest.kt b/skriptie/src/commonTest/kotlin/js/DivTest.kt index 7726d269..cd55afae 100644 --- a/skriptie/src/commonTest/kotlin/js/DivTest.kt +++ b/skriptie/src/commonTest/kotlin/js/DivTest.kt @@ -7,45 +7,44 @@ class DivTest { @Test fun numbers() { - "26 / 2.0".runJs().assertEqualsTo(13.0) - "26 / 2".runJs().assertEqualsTo(13L) - "-26 / 2.0".runJs().assertEqualsTo(-13.0) - "-26 / 2".runJs().assertEqualsTo(-13L) - - "-26 / -2.0".runJs().assertEqualsTo(13.0) - "-26 / -2".runJs().assertEqualsTo(13L) - "-52 / -2.0 / 2".runJs().assertEqualsTo(13.0) - - "10/0".runJs().assertEqualsTo(Double.POSITIVE_INFINITY) - "10.0/0".runJs().assertEqualsTo(Double.POSITIVE_INFINITY) - "10/0.0".runJs().assertEqualsTo(Double.POSITIVE_INFINITY) + "26 / 2.0".eval().assertEqualsTo(13.0) + "26 / 2".eval().assertEqualsTo(13L) + "-26 / 2.0".eval().assertEqualsTo(-13.0) + "-26 / 2".eval().assertEqualsTo(-13L) + + "-26 / -2.0".eval().assertEqualsTo(13.0) + "-26 / -2".eval().assertEqualsTo(13L) + "-52 / -2.0 / 2".eval().assertEqualsTo(13.0) + + "10/0".eval().assertEqualsTo(Double.POSITIVE_INFINITY) + "10.0/0".eval().assertEqualsTo(Double.POSITIVE_INFINITY) + "10/0.0".eval().assertEqualsTo(Double.POSITIVE_INFINITY) } @Test - fun string(){ - "'30' / '3'".runJs().assertEqualsTo(10L) - "30.0 / '3'".runJs().assertEqualsTo(10.0) - "'30' / 3.0".runJs().assertEqualsTo(10.0) + fun string() { + "'30' / '3'".eval().assertEqualsTo(10L) + "30.0 / '3'".eval().assertEqualsTo(10.0) + "'30' / 3.0".eval().assertEqualsTo(10.0) - "'30' / 0".runJs().assertEqualsTo(Double.POSITIVE_INFINITY) - "'30' / 0.0".runJs().assertEqualsTo(Double.POSITIVE_INFINITY) - - "'qsd' / 3".runJs().assertEqualsTo(Double.NaN) - "'0' / null".runJs().assertEqualsTo(Double.NaN) - "null / '0'".runJs().assertEqualsTo(Double.NaN) + "'30' / 0".eval().assertEqualsTo(Double.POSITIVE_INFINITY) + "'30' / 0.0".eval().assertEqualsTo(Double.POSITIVE_INFINITY) } @Test - fun null_undefined(){ - "null / 5".runJs().assertEqualsTo(0L) - "5 / null".runJs().assertEqualsTo(Double.POSITIVE_INFINITY) - "0 / null".runJs().assertEqualsTo(Double.NaN) - "null / 0".runJs().assertEqualsTo(Double.NaN) - "null / null".runJs().assertEqualsTo(Double.NaN) - - "undefined / null".runJs().assertEqualsTo(Double.NaN) - "5 / undefined".runJs().assertEqualsTo(Double.NaN) - "undefined / undefined".runJs().assertEqualsTo(Double.NaN) + fun null_undefined() { + "null / 5".eval().assertEqualsTo(0L) + "5 / null".eval().assertEqualsTo(Double.POSITIVE_INFINITY) + "0 / null".eval().assertEqualsTo(Double.NaN) + "null / 0".eval().assertEqualsTo(Double.NaN) + "null / null".eval().assertEqualsTo(Double.NaN) + + "undefined / null".eval().assertEqualsTo(Double.NaN) + "5 / undefined".eval().assertEqualsTo(Double.NaN) + "undefined / undefined".eval().assertEqualsTo(Double.NaN) + + "'qsd' / 3".eval().assertEqualsTo(Double.NaN) + "'0' / null".eval().assertEqualsTo(Double.NaN) + "null / '0'".eval().assertEqualsTo(Double.NaN) } -} - +} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/FunctionsTest.kt b/skriptie/src/commonTest/kotlin/js/FunctionsTest.kt new file mode 100644 index 00000000..37274795 --- /dev/null +++ b/skriptie/src/commonTest/kotlin/js/FunctionsTest.kt @@ -0,0 +1,90 @@ +package js + +import io.github.alexzhirkevich.skriptie.common.ReferenceError +import kotlin.test.Test +import kotlin.test.assertFailsWith + +class FunctionsTest { + + @Test + fun creation() { + """ + var x; + function test(a,b) { return a + b } + x = test(1,2) + """.trimIndent().eval().assertEqualsTo(3L) + + """ + function test(a,b) { + return a + b + } + test(1,2) + """.trimIndent().eval().assertEqualsTo(3L) + + """ + function test(a,b) + { + let x = b + 1 + return a + x + } + test(1,2) + """.trimIndent().eval().assertEqualsTo(4L) + } + + @Test + fun defaultArgs(){ + """ + function test(a, b = 2) + { + return a + b + } + test(1) + """.trimIndent().eval().assertEqualsTo(3L) + + """ + var x; + function test(a, b = 2) + { + return a + b + } + x = test(2,3) + """.trimIndent().eval().assertEqualsTo(5L) + + """ + function test(a = 1, b = 2) + { + return a + b + } + test() + """.trimIndent().eval().assertEqualsTo(3L) + } + + @Test + fun scope(){ + """ + let x = 1 + + function fun1(){ + function fun2() { + x = 2 + } + + fun2() + } + fun1() + + x + """.trimIndent().eval().assertEqualsTo(2L) + + assertFailsWith { + """ + function fun1(){ + function fun2() { + + } + } + fun2() + """.trimIndent().eval().assertEqualsTo(2L) + } + } +} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/JsTestUtil.kt b/skriptie/src/commonTest/kotlin/js/JsTestUtil.kt index 6cb8d77d..12a3df3a 100644 --- a/skriptie/src/commonTest/kotlin/js/JsTestUtil.kt +++ b/skriptie/src/commonTest/kotlin/js/JsTestUtil.kt @@ -1,29 +1,20 @@ package js +import io.github.alexzhirkevich.skriptie.ScriptEngine +import io.github.alexzhirkevich.skriptie.ecmascript.EcmascriptInterpreter import io.github.alexzhirkevich.skriptie.invoke -import io.github.alexzhirkevich.skriptie.javascript.JS +import io.github.alexzhirkevich.skriptie.javascript.JSInterpretationContext +import io.github.alexzhirkevich.skriptie.javascript.JSScriptContext import kotlin.test.assertEquals internal fun Any?.assertEqualsTo(other : Any?) = assertEquals(other,this) -internal fun Any?.assertEqualsTo(other : Double, tolerance: Double = 0.0001) = - assertEquals(other,this as Double, tolerance) +internal fun Any?.assertEqualsTo(other : Double, tolerance: Double = 0.0001) { + assertEquals(other, this as Double, tolerance) +} -internal fun String.runJs() : Any? { - return JS().invoke(this) +internal fun String.eval() : Any? { + return ScriptEngine( + JSScriptContext(), + EcmascriptInterpreter(JSInterpretationContext()) + ).invoke(this) } -// -//internal fun String.assertSimpleExprEquals(expected : Any) { -// "var $ret=$this".assertSimpleExprReturns(expected) -//} -// -//internal fun String.assertSimpleExprReturns(expected : Any) { -// assertEquals(expected, runJs()) -//} -// -//internal fun String.assertSimpleExprEquals(expected : Double) { -// "var $ret=$this".assertSimpleExprReturns(expected) -//} -// -//internal fun String.assertSimpleExprReturns(expected : Double) { -// assertEquals(expected, runJs() as Double, 0.00001) -//} diff --git a/skriptie/src/commonTest/kotlin/js/LoopExpressionsTest.kt b/skriptie/src/commonTest/kotlin/js/LoopExpressionsTest.kt deleted file mode 100644 index 7b982877..00000000 --- a/skriptie/src/commonTest/kotlin/js/LoopExpressionsTest.kt +++ /dev/null @@ -1,35 +0,0 @@ -package js - -import kotlin.test.Test - -class LoopExpressionsTest { - - @Test - fun whileLoop() { - """ - var x = 0 - while(x != 3) { - x += 1 - } - x - """.trimIndent().runJs().assertEqualsTo(3L) - - """ - var x = 0 - while(x < 3) - x += 1 - x - """.trimIndent().runJs().assertEqualsTo(3L) - } - - @Test - fun doWhileLoop() { - """ - var x = 0 - do { - x+=1 - } while(x != 3) - x - """.trimIndent().runJs().assertEqualsTo(3L) - } -} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/LoopsTest.kt b/skriptie/src/commonTest/kotlin/js/LoopsTest.kt new file mode 100644 index 00000000..b29e862f --- /dev/null +++ b/skriptie/src/commonTest/kotlin/js/LoopsTest.kt @@ -0,0 +1,150 @@ +package js + +import kotlin.test.Test + +class LoopsTest { + + @Test + fun whileLoop() { + """ + var x = 0 + while(x != 3) { + x += 1 + } + x + """.trimIndent().eval().assertEqualsTo(3L) + + """ + var x = 0 + while(x < 3) + x += 1 + x + """.trimIndent().eval().assertEqualsTo(3L) + } + + @Test + fun doWhileLoop() { + """ + var x = 0 + do { + x+=1 + } while(x != 3) + x + """.trimIndent().eval().assertEqualsTo(3L) + } + + @Test + fun forLoop(){ + """ + var x = 0 + for(let i = 0; i<3;i++){ + x+=1 + } + x + """.trimIndent().eval().assertEqualsTo(3L) + + """ + let i = 0 + for(i = 0; i<3;i++){ + + } + i + """.trimIndent().eval().assertEqualsTo(3L) + + """ + let i = 0 + for(i = 0; i<3;){ + i++ + } + i + """.trimIndent().eval().assertEqualsTo(3L) + + """ + let i = 0 + for(; i<3;){ + i++ + } + i + """.trimIndent().eval().assertEqualsTo(3L) + + """ + let i = 0 + for(;;){ + i++ + if (i >= 3) + break + } + i + """.trimIndent().eval().assertEqualsTo(3L) + } + + @Test + fun early_return(){ + """ + var x = 0 + for(let i = 0; i<3;i++){ + break + x+=1 + } + x + """.trimIndent().eval().assertEqualsTo(0L) + + """ + var x = 0 + for(let i = 0; i<3;i++){ + if (i % 2 == 1) + continue + x+=1 + } + x + """.trimIndent().eval().assertEqualsTo(2L) + + """ + var i = 0 + var x = 0 + while(x < 3) { + i++ + if (i == 1) + break + x += 1 + } + i + """.trimIndent().eval().assertEqualsTo(1L) + + """ + var i = 0 + var x = 0 + do { + i++ + if (i % 2 == 1) + continue + x += 1 + } while(x < 3) + i + """.trimIndent().eval().assertEqualsTo(6L) + + """ + var i = 0 + var x = 0 + while(x < 3) { + i++ + if (i == 1) + break + x += 1 + } + i + """.trimIndent().eval().assertEqualsTo(1L) + + """ + var i = 0 + var x = 0 + do { + i++ + if (i % 2 == 1) + continue + x += 1 + } while(x < 3) + i + """.trimIndent().eval().assertEqualsTo(6L) + } +} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/MathTest.kt b/skriptie/src/commonTest/kotlin/js/MathTest.kt index 9f23eabe..a539b2f2 100644 --- a/skriptie/src/commonTest/kotlin/js/MathTest.kt +++ b/skriptie/src/commonTest/kotlin/js/MathTest.kt @@ -6,26 +6,26 @@ class MathTest { @Test fun math() { - "Math.sin(Math.PI/2)".runJs().assertEqualsTo(1.0) - "Math.sin(Math.PI)".runJs().assertEqualsTo(0.0) - "Math.sin(0)".runJs().assertEqualsTo(0.0) - "Math.sin(0.0)".runJs().assertEqualsTo(0.0) + "Math.sin(Math.PI/2)".eval().assertEqualsTo(1.0) + "Math.sin(Math.PI)".eval().assertEqualsTo(0.0) + "Math.sin(0)".eval().assertEqualsTo(0.0) + "Math.sin(0.0)".eval().assertEqualsTo(0.0) - "Math.cos(Math.PI)".runJs().assertEqualsTo(-1.0) - "Math.cos(0)".runJs().assertEqualsTo(1.0) - "Math.cos(0.0)".runJs().assertEqualsTo(1.0) + "Math.cos(Math.PI)".eval().assertEqualsTo(-1.0) + "Math.cos(0)".eval().assertEqualsTo(1.0) + "Math.cos(0.0)".eval().assertEqualsTo(1.0) - "Math.sqrt(16)".runJs().assertEqualsTo(4.0) - "Math.sqrt(16.0)".runJs().assertEqualsTo(4.0) + "Math.sqrt(16)".eval().assertEqualsTo(4.0) + "Math.sqrt(16.0)".eval().assertEqualsTo(4.0) - "Math.imul(3,4)".runJs().assertEqualsTo(12L) - "Math.imul(-5,12)".runJs().assertEqualsTo(-60L) - "Math.imul(0xffffffff, 5)".runJs().assertEqualsTo(-5L) - "Math.imul(0xfffffffe, 5)".runJs().assertEqualsTo(-10L) + "Math.imul(3,4)".eval().assertEqualsTo(12L) + "Math.imul(-5,12)".eval().assertEqualsTo(-60L) + "Math.imul(0xffffffff, 5)".eval().assertEqualsTo(-5L) + "Math.imul(0xfffffffe, 5)".eval().assertEqualsTo(-10L) - "Math.hypot(3, 4)".runJs().assertEqualsTo(5.0) - "Math.hypot(5, 12)".runJs().assertEqualsTo(13.0) - "Math.hypot(3, 4, 5)".runJs().assertEqualsTo(7.071068) - "Math.hypot(-5)".runJs().assertEqualsTo(5.0) + "Math.hypot(3, 4)".eval().assertEqualsTo(5.0) + "Math.hypot(5, 12)".eval().assertEqualsTo(13.0) + "Math.hypot(3, 4, 5)".eval().assertEqualsTo(7.071068) + "Math.hypot(-5)".eval().assertEqualsTo(5.0) } } \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/ModExpressionTest.kt b/skriptie/src/commonTest/kotlin/js/ModExpressionTest.kt deleted file mode 100644 index dd8756db..00000000 --- a/skriptie/src/commonTest/kotlin/js/ModExpressionTest.kt +++ /dev/null @@ -1,15 +0,0 @@ -//package js -// -//import expressions.assertExprEquals -//import kotlin.test.Test -// -// -//class ModExpressionTest { -// -// @Test -// fun mod_num(){ -// "mod(25,4)".assertExprEquals(1f) -// "mod(25.1,4)".assertExprEquals(1.1f) -// } -//} -// diff --git a/skriptie/src/commonTest/kotlin/js/ModTest.kt b/skriptie/src/commonTest/kotlin/js/ModTest.kt new file mode 100644 index 00000000..b504470c --- /dev/null +++ b/skriptie/src/commonTest/kotlin/js/ModTest.kt @@ -0,0 +1,39 @@ +package js + +import kotlin.test.Test + + +class ModTest { + + @Test + fun numbers() { + "13 % 7".eval().assertEqualsTo(6L) + "13 % -7".eval().assertEqualsTo(6L) + "-13 % 7".eval().assertEqualsTo(-6L) + "-13 % -7".eval().assertEqualsTo(-6L) + + "13 % 0".eval().assertEqualsTo(Double.NaN) + "0 % 0".eval().assertEqualsTo(Double.NaN) + "0 % 13".eval().assertEqualsTo(0L) + } + + @Test + fun string() { + "'13' % '7'".eval().assertEqualsTo(6L) + "'13' % 7".eval().assertEqualsTo(6L) + "13 % '7'".eval().assertEqualsTo(6L) + } + + @Test + fun null_undefined() { + "null % 5".eval().assertEqualsTo(0L) + "5 % null".eval().assertEqualsTo(Double.NaN) + "0 % null".eval().assertEqualsTo(Double.NaN) + "null % 0".eval().assertEqualsTo(Double.NaN) + "null % null".eval().assertEqualsTo(Double.NaN) + + "undefined % null".eval().assertEqualsTo(Double.NaN) + "5 % undefined".eval().assertEqualsTo(Double.NaN) + "undefined % undefined".eval().assertEqualsTo(Double.NaN) + } +} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/MulTest.kt b/skriptie/src/commonTest/kotlin/js/MulTest.kt index 8708345e..5169ed0d 100644 --- a/skriptie/src/commonTest/kotlin/js/MulTest.kt +++ b/skriptie/src/commonTest/kotlin/js/MulTest.kt @@ -7,32 +7,32 @@ class MulTest { @Test fun numbers() { - "13 * 17.0".runJs().assertEqualsTo(221.0) - "-13 * -17".runJs().assertEqualsTo(221L) - "-13.0 * 17 * 2".runJs().assertEqualsTo(-442.0) + "13 * 17.0".eval().assertEqualsTo(221.0) + "-13 * -17".eval().assertEqualsTo(221L) + "-13.0 * 17 * 2".eval().assertEqualsTo(-442.0) } @Test fun string(){ - "'10' * '3'".runJs().assertEqualsTo(30L) - "10 * '3'".runJs().assertEqualsTo(30L) - "'10' * 3".runJs().assertEqualsTo(30L) - - "'10.5' * '3'".runJs().assertEqualsTo(31.5) - "10.5 * '3'".runJs().assertEqualsTo(31.5) - "'10.5' * 3".runJs().assertEqualsTo(31.5) - "'qsd' * 3".runJs().assertEqualsTo(Double.NaN) + "'10' * '3'".eval().assertEqualsTo(30L) + "10 * '3'".eval().assertEqualsTo(30L) + "'10' * 3".eval().assertEqualsTo(30L) + + "'10.5' * '3'".eval().assertEqualsTo(31.5) + "10.5 * '3'".eval().assertEqualsTo(31.5) + "'10.5' * 3".eval().assertEqualsTo(31.5) + "'qsd' * 3".eval().assertEqualsTo(Double.NaN) } @Test fun null_undefined(){ - "null * 5".runJs().assertEqualsTo(0L) - "5 * null".runJs().assertEqualsTo(0L) - "null * null".runJs().assertEqualsTo(0L) + "null * 5".eval().assertEqualsTo(0L) + "5 * null".eval().assertEqualsTo(0L) + "null * null".eval().assertEqualsTo(0L) - "undefined * null".runJs().assertEqualsTo(Double.NaN) - "5 * undefined".runJs().assertEqualsTo(Double.NaN) - "undefined * undefined".runJs().assertEqualsTo(Double.NaN) + "undefined * null".eval().assertEqualsTo(Double.NaN) + "5 * undefined".eval().assertEqualsTo(Double.NaN) + "undefined * undefined".eval().assertEqualsTo(Double.NaN) } } diff --git a/skriptie/src/commonTest/kotlin/js/NumberFormatTest.kt b/skriptie/src/commonTest/kotlin/js/NumberFormatTest.kt index 3a12a607..98e8bd6b 100644 --- a/skriptie/src/commonTest/kotlin/js/NumberFormatTest.kt +++ b/skriptie/src/commonTest/kotlin/js/NumberFormatTest.kt @@ -6,12 +6,12 @@ class NumberFormatTest { @Test fun test(){ - "123".runJs().assertEqualsTo(123L) - "123.1".runJs().assertEqualsTo(123.1) - ".1".runJs().assertEqualsTo(.1) + "123".eval().assertEqualsTo(123L) + "123.1".eval().assertEqualsTo(123.1) + ".1".eval().assertEqualsTo(.1) - "0xff".runJs().assertEqualsTo(255L) - "0b11".runJs().assertEqualsTo(3L) - "0o123".runJs().assertEqualsTo(83L) + "0xff".eval().assertEqualsTo(255L) + "0b11".eval().assertEqualsTo(3L) + "0o123".eval().assertEqualsTo(83L) } } \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/SubTest.kt b/skriptie/src/commonTest/kotlin/js/SubTest.kt index 7bf568d8..601d78bb 100644 --- a/skriptie/src/commonTest/kotlin/js/SubTest.kt +++ b/skriptie/src/commonTest/kotlin/js/SubTest.kt @@ -5,39 +5,44 @@ import kotlin.test.Test class SubTest { + @Test + fun randomJsPizdec(){ + "10 - [[[[[[[[[[5]]]]]]]]]]".eval().assertEqualsTo(5L) + } + @Test fun numbers() { - "13-17".runJs().assertEqualsTo(-4L) - "13 - 17".runJs().assertEqualsTo(-4L) - "-13-17".runJs().assertEqualsTo(-30L) - "13.0-17.0".runJs().assertEqualsTo(-4.0) - "13 - 17.0".runJs().assertEqualsTo(-4.0) - "-13.0 -17".runJs().assertEqualsTo(-30.0) + "13-17".eval().assertEqualsTo(-4L) + "13 - 17".eval().assertEqualsTo(-4L) + "-13-17".eval().assertEqualsTo(-30L) + "13.0-17.0".eval().assertEqualsTo(-4.0) + "13 - 17.0".eval().assertEqualsTo(-4.0) + "-13.0 -17".eval().assertEqualsTo(-30.0) } @Test fun string(){ - "'10' - '3'".runJs().assertEqualsTo(7L) - "10 - '3'".runJs().assertEqualsTo(7L) - "'10' - 3".runJs().assertEqualsTo(7L) - - "'10.5' - '3'".runJs().assertEqualsTo(7.5) - "10.5 - '3'".runJs().assertEqualsTo(7.5) - "'10.5' - 3".runJs().assertEqualsTo(7.5) - "'qsd' - 3".runJs().assertEqualsTo(Double.NaN) + "'10' - '3'".eval().assertEqualsTo(7L) + "10 - '3'".eval().assertEqualsTo(7L) + "'10' - 3".eval().assertEqualsTo(7L) + + "'10.5' - '3'".eval().assertEqualsTo(7.5) + "10.5 - '3'".eval().assertEqualsTo(7.5) + "'10.5' - 3".eval().assertEqualsTo(7.5) + "'qsd' - 3".eval().assertEqualsTo(Double.NaN) } @Test fun null_undefined(){ - "null - 5".runJs().assertEqualsTo(-5L) - "5 - null".runJs().assertEqualsTo(5L) - "null - null".runJs().assertEqualsTo(0L) - "null - '123'".runJs().assertEqualsTo(-123L) - "null - '123.5'".runJs().assertEqualsTo(-123.5) - - "undefined - 5".runJs().assertEqualsTo(Double.NaN) - "5 - undefined".runJs().assertEqualsTo(Double.NaN) - "undefined - undefined".runJs().assertEqualsTo(Double.NaN) + "null - 5".eval().assertEqualsTo(-5L) + "5 - null".eval().assertEqualsTo(5L) + "null - null".eval().assertEqualsTo(0L) + "null - '123'".eval().assertEqualsTo(-123L) + "null - '123.5'".eval().assertEqualsTo(-123.5) + + "undefined - 5".eval().assertEqualsTo(Double.NaN) + "5 - undefined".eval().assertEqualsTo(Double.NaN) + "undefined - undefined".eval().assertEqualsTo(Double.NaN) } } diff --git a/skriptie/src/commonTest/kotlin/js/SumTest.kt b/skriptie/src/commonTest/kotlin/js/SumTest.kt index 72d8c7ae..645e5a76 100644 --- a/skriptie/src/commonTest/kotlin/js/SumTest.kt +++ b/skriptie/src/commonTest/kotlin/js/SumTest.kt @@ -1,35 +1,41 @@ package js import kotlin.test.Test -import kotlin.test.assertEquals class SumTest { + @Test + fun randomJsPizdec(){ + "'b' + 'a' + + 'a' + 'a'".eval().assertEqualsTo("baNaNa") + "[5] + 1".eval().assertEqualsTo("51") + "[1,2] + [3,3]".eval().assertEqualsTo("1,23,3") + } + @Test fun numbers() { - "13+17".runJs().assertEqualsTo(30L) - "-13+ 17".runJs().assertEqualsTo(4L) - "-13+ -17".runJs().assertEqualsTo(-30L) - "-13+ -17.0 + 10 - 4.0".runJs().assertEqualsTo(-24.0) + "13+17".eval().assertEqualsTo(30L) + "-13+ 17".eval().assertEqualsTo(4L) + "-13+ -17".eval().assertEqualsTo(-30L) + "-13+ -17.0 + 10 - 4.0".eval().assertEqualsTo(-24.0) } @Test fun string(){ - "'10' + '5'".runJs().assertEqualsTo("105") - "'10' + 5".runJs().assertEqualsTo("105") - "10 + '5'".runJs().assertEqualsTo("105") + "'10' + '5'".eval().assertEqualsTo("105") + "'10' + 5".eval().assertEqualsTo("105") + "10 + '5'".eval().assertEqualsTo("105") } @Test fun null_undefined(){ - "null + 5".runJs().assertEqualsTo(5L) - "5 + null".runJs().assertEqualsTo(5L) - "null + null".runJs().assertEqualsTo(0L) + "null + 5".eval().assertEqualsTo(5L) + "5 + null".eval().assertEqualsTo(5L) + "null + null".eval().assertEqualsTo(0L) - "undefined + 5".runJs().assertEqualsTo(Double.NaN) - "5 + undefined".runJs().assertEqualsTo(Double.NaN) - "undefined + undefined".runJs().assertEqualsTo(Double.NaN) + "undefined + 5".eval().assertEqualsTo(Double.NaN) + "5 + undefined".eval().assertEqualsTo(Double.NaN) + "undefined + undefined".eval().assertEqualsTo(Double.NaN) } } diff --git a/skriptie/src/commonTest/kotlin/js/SyntaxExpressionsTest.kt b/skriptie/src/commonTest/kotlin/js/SyntaxExpressionsTest.kt deleted file mode 100644 index 236d5ff8..00000000 --- a/skriptie/src/commonTest/kotlin/js/SyntaxExpressionsTest.kt +++ /dev/null @@ -1,85 +0,0 @@ -package js - -import kotlin.test.Test -import kotlin.test.assertFails - -class SyntaxExpressionsTest { - - @Test - fun newline_property() { - """ - Math - .imul(3,4) - .toString() - """.trimIndent().runJs().assertEqualsTo("12") - - """ - Math - - .imul(3,4) - - .toString() - """.trimIndent().runJs().assertEqualsTo("12") - - """ - Math - - .imul(3,4) - - .toString() - ; - """.trimIndent().runJs().assertEqualsTo("12") - - - assertFails { - """ - Math - .imul(3,4); - .toString() - """.trimIndent().runJs() - } - } - - @Test - fun increment_decrement() { - "let x = 5; x++".runJs().assertEqualsTo(6L) - "let x = 5; ++x".runJs().assertEqualsTo(6L) - - "let x = 5; x--".runJs().assertEqualsTo(4L) - "let x = 5; --x".runJs().assertEqualsTo(4L) - - "let x = 5; --x".runJs().assertEqualsTo(4L) - "let x = 5; ++x".runJs().assertEqualsTo(6L) - "let x = 5; x--".runJs().assertEqualsTo(4L) - "let x = 5; x++".runJs().assertEqualsTo(6L) - } - - @Test - fun variable_scopes() { - """ - var x; - if(true) { - x = 5 - } - x - """.trimIndent().runJs().assertEqualsTo(5L) - - """ - var x = 1; - if(true){ - let x = 5 - } - x - """.trimIndent().runJs().assertEqualsTo(1L) - } - - @Test - fun constMutating() { - assertFails { - """ - const x = 1; - x++ - """.trimIndent().runJs() - } - } -} \ No newline at end of file diff --git a/skriptie/src/commonTest/kotlin/js/SyntaxTest.kt b/skriptie/src/commonTest/kotlin/js/SyntaxTest.kt new file mode 100644 index 00000000..dc94149f --- /dev/null +++ b/skriptie/src/commonTest/kotlin/js/SyntaxTest.kt @@ -0,0 +1,142 @@ +package js + +import io.github.alexzhirkevich.skriptie.common.ReferenceError +import io.github.alexzhirkevich.skriptie.common.SyntaxError +import io.github.alexzhirkevich.skriptie.common.TypeError +import kotlin.test.Test +import kotlin.test.assertFailsWith + +class SyntaxTest { + + @Test + fun newline_property() { + """ + Math + .imul(3,4) + .toString() + """.trimIndent().eval().assertEqualsTo("12") + + """ + Math + + .imul(3,4) + + .toString() + """.trimIndent().eval().assertEqualsTo("12") + + """ + Math + + .imul(3,4) + + .toString() + ; + """.trimIndent().eval().assertEqualsTo("12") + + + assertFailsWith { + """ + Math + .imul(3,4); + .toString() + """.trimIndent().eval() + } + } + + @Test + fun increment_decrement() { + "let x = 5; x++".eval().assertEqualsTo(5L) + "let x = 5; ++x".eval().assertEqualsTo(6L) + + "let x = 5; x--".eval().assertEqualsTo(5L) + "let x = 5; --x".eval().assertEqualsTo(4L) + + "let x = 0; let y = x++; y".eval().assertEqualsTo(0L) + "let x = 0; let y = x++; x".eval().assertEqualsTo(1L) + "let x = 0; let y = ++x; y".eval().assertEqualsTo(1L) + "let x = 0; let y = ++x; x".eval().assertEqualsTo(1L) + + "let x = 1; let y = x--; y".eval().assertEqualsTo(1L) + "let x = 1; let y = x--; x".eval().assertEqualsTo(0L) + "let x = 1; let y = --x; y".eval().assertEqualsTo(0L) + "let x = 1; let y = --x; x".eval().assertEqualsTo(0L) + } + + @Test + fun variable_scopes() { + """ + var x; + if(true) { + x = 5 + } + x + """.trimIndent().eval().assertEqualsTo(5L) + + """ + var x = 1; + if(true){ + let x = 5 + } + x + """.trimIndent().eval().assertEqualsTo(1L) + + + """ + if(true){ + var x = 5 + } + x + """.trimIndent().eval().assertEqualsTo(5L) + + assertFailsWith { + """ + if(true){ + let x = 5 + } + x + """.trimIndent().eval() + } + assertFailsWith { + """ + if(true){ + const x = 5 + } + x + """.trimIndent().eval() + } + } + + @Test + fun constMutating() { + assertFailsWith { "const x = 1; x++".eval() } + } + + @Test + fun variable_redeclaration() { + assertFailsWith { "const x = 1; const x = 2".eval() } + assertFailsWith { "const x = 1; let x = 2".eval() } + assertFailsWith { "const x = 1; var x = 2".eval() } + assertFailsWith { "var x = 1; const x = 2".eval() } + assertFailsWith { "var x = 1; let x = 2".eval() } + assertFailsWith { "var x = 1; var x = 2".eval() } + assertFailsWith { "let x = 1; const x = 2".eval() } + assertFailsWith { "let x = 1; var x = 2".eval() } + assertFailsWith { "let x = 1; let x = 2".eval() } + + "const x = 1; { const x = 2 }; x".eval().assertEqualsTo(1L) + "const x = 1; { let x = 2 }; x".eval().assertEqualsTo(1L) + assertFailsWith { + "const x = 1; { var x = 2 }; x".eval().assertEqualsTo(1L) + } + "var x = 1; { const x = 2 }; x".eval().assertEqualsTo(1L) + "var x = 1; { let x = 2 }; x".eval().assertEqualsTo(1L) + assertFailsWith { + "var x = 1; { var x = 2 }; x".eval().assertEqualsTo(1L) + } + "let x = 1; { const x = 2 }; x".eval().assertEqualsTo(1L) + assertFailsWith { + "let x = 1; { var x = 2 }; x".eval().assertEqualsTo(1L) + } + "let x = 1; { let x = 2 }; x".eval().assertEqualsTo(1L) + } +} \ No newline at end of file