Skip to content

Commit e74d667

Browse files
committed
Translators: added bytesToStr() everywhere
1 parent 564851f commit e74d667

File tree

6 files changed

+14
-1
lines changed

6 files changed

+14
-1
lines changed

shared/src/main/scala/io/kaitai/struct/translators/CSharpTranslator.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ class CSharpTranslator(provider: TypeProvider) extends BaseTranslator(provider)
6161
s"Convert.ToInt64(${translate(s)}, ${translate(base)})"
6262
override def intToStr(i: expr, base: expr): String =
6363
s"Convert.ToString(${translate(i)}, ${translate(base)})"
64+
override def bytesToStr(bytesExpr: String, encoding: Ast.expr): String =
65+
s"System.Text.Encoding.GetEncoding(${translate(encoding)}).GetString($bytesExpr)"
6466
override def strLength(s: expr): String =
6567
s"${translate(s)}.Length"
6668

shared/src/main/scala/io/kaitai/struct/translators/CppTranslator.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ class CppTranslator(provider: TypeProvider) extends BaseTranslator(provider) {
7171
case _ => throw new UnsupportedOperationException(baseStr)
7272
}
7373
}
74+
override def bytesToStr(bytesExpr: String, encoding: Ast.expr): String =
75+
s"${CppCompiler.kstreamName}::bytes_to_str($bytesExpr, ${translate(encoding)})"
7476
override def strLength(s: expr): String =
7577
s"${translate(s)}.length()"
7678
override def strReverse(s: expr): String =

shared/src/main/scala/io/kaitai/struct/translators/JavaScriptTranslator.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ class JavaScriptTranslator(provider: TypeProvider) extends BaseTranslator(provid
5050
override def intToStr(i: expr, base: expr): String =
5151
s"(${translate(i)}).toString(${translate(base)})"
5252

53+
override def bytesToStr(bytesExpr: String, encoding: Ast.expr): String =
54+
s"${JavaScriptCompiler.kstreamName}.arrayToString($bytesExpr, ${translate(encoding)})"
55+
5356
override def strLength(s: expr): String =
5457
s"${translate(s)}.length"
5558

shared/src/main/scala/io/kaitai/struct/translators/PHPTranslator.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ class PHPTranslator(provider: TypeProvider, lang: PHPCompiler) extends BaseTrans
6262
s"base_convert(strval(${translate(i)}), 10, $baseStr)"
6363
}
6464
}
65-
65+
override def bytesToStr(bytesExpr: String, encoding: Ast.expr): String =
66+
s"${PHPCompiler.kstreamName}::toUtf8($bytesExpr, ${translate(encoding)})"
6667
override def strLength(s: expr): String =
6768
s"strlen(${translate(s)})"
6869
override def strReverse(s: expr): String =

shared/src/main/scala/io/kaitai/struct/translators/PerlTranslator.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package io.kaitai.struct.translators
33
import io.kaitai.struct.exprlang.Ast
44
import io.kaitai.struct.exprlang.Ast.expr
55
import io.kaitai.struct.exprlang.DataType.{BaseType, IntType}
6+
import io.kaitai.struct.languages.PHPCompiler
67

78
class PerlTranslator(provider: TypeProvider) extends BaseTranslator(provider) {
89
override def numericBinOp(left: Ast.expr, op: Ast.operator, right: Ast.expr) = {
@@ -91,6 +92,8 @@ class PerlTranslator(provider: TypeProvider) extends BaseTranslator(provider) {
9192

9293
s"sprintf('$format', ${translate(i)})"
9394
}
95+
override def bytesToStr(bytesExpr: String, encoding: Ast.expr): String =
96+
s"Encode::decode(${translate(encoding)}, $bytesExpr)"
9497
override def strLength(value: Ast.expr): String =
9598
s"length(${translate(value)})"
9699
override def strReverse(value: Ast.expr): String =

shared/src/main/scala/io/kaitai/struct/translators/PythonTranslator.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ class PythonTranslator(provider: TypeProvider) extends BaseTranslator(provider)
6969

7070
s"$func(${translate(i)})"
7171
}
72+
override def bytesToStr(bytesExpr: String, encoding: Ast.expr): String =
73+
s"($bytesExpr).decode(${translate(encoding)})"
7274
override def strLength(value: Ast.expr): String =
7375
s"len(${translate(value)})"
7476
override def strReverse(value: Ast.expr): String =

0 commit comments

Comments
 (0)