Skip to content

Commit

Permalink
Python, Construct: add missing imports of KaitaiStream
Browse files Browse the repository at this point in the history
Fixes tests:
- Python:
  - ExprBytesNonLiteral
- Construct:
  - EnumOfValueInst
  - ExprBytesNonLiteral
  - ExprBytesOps
  - ExprEnum
  • Loading branch information
Mingun committed Apr 8, 2024
1 parent 128e179 commit 10ce7b6
Showing 1 changed file with 16 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,11 @@ class PythonTranslator(provider: TypeProvider, importList: ImportList) extends B

override def doEnumByLabel(enumTypeAbs: List[String], label: String): String =
s"${PythonCompiler.types2class(enumTypeAbs)}.$label"
override def doEnumById(enumTypeAbs: List[String], id: String): String =
override def doEnumById(enumTypeAbs: List[String], id: String): String = {
importList.add(s"from kaitaistruct import ${PythonCompiler.kstreamName}")

s"${PythonCompiler.kstreamName}.resolve_enum(${PythonCompiler.types2class(enumTypeAbs)}, $id)"
}

override def booleanOp(op: Ast.boolop) = op match {
case Ast.boolop.Or => "or"
Expand Down Expand Up @@ -98,16 +101,25 @@ class PythonTranslator(provider: TypeProvider, importList: ImportList) extends B

override def bytesLength(value: Ast.expr): String =
s"len(${translate(value)})"
override def bytesSubscript(container: Ast.expr, idx: Ast.expr): String =
override def bytesSubscript(container: Ast.expr, idx: Ast.expr): String = {
importList.add(s"from kaitaistruct import ${PythonCompiler.kstreamName}")

s"${PythonCompiler.kstreamName}.byte_array_index(${translate(container)}, ${translate(idx)})"
}
override def bytesFirst(a: Ast.expr): String =
bytesSubscript(a, Ast.expr.IntNum(0))
override def bytesLast(a: Ast.expr): String =
bytesSubscript(a, Ast.expr.IntNum(-1))
override def bytesMin(b: Ast.expr): String =
override def bytesMin(b: Ast.expr): String = {
importList.add(s"from kaitaistruct import ${PythonCompiler.kstreamName}")

s"${PythonCompiler.kstreamName}.byte_array_min(${translate(b)})"
override def bytesMax(b: Ast.expr): String =
}
override def bytesMax(b: Ast.expr): String = {
importList.add(s"from kaitaistruct import ${PythonCompiler.kstreamName}")

s"${PythonCompiler.kstreamName}.byte_array_max(${translate(b)})"
}


override def strLength(value: Ast.expr): String =
Expand Down

0 comments on commit 10ce7b6

Please sign in to comment.