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 16, 2024
1 parent 2191070 commit ea5c0e3
Showing 1 changed file with 16 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,11 @@ class PythonTranslator(provider: TypeProvider, importList: ImportList, config: R
}
s"${PythonCompiler.types2class(enumSpec.name, isExternal)}.$label"
}
override def doEnumById(enumSpec: EnumSpec, id: String): String =
override def doEnumById(enumSpec: EnumSpec, id: String): String = {
importList.add(s"from kaitaistruct import ${PythonCompiler.kstreamName}")

s"${PythonCompiler.kstreamName}.resolve_enum(${PythonCompiler.types2class(enumSpec.name, enumSpec.isExternal(provider.nowClass))}, $id)"
}

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

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 ea5c0e3

Please sign in to comment.