Skip to content

Commit

Permalink
add CandidCodeGenerator.kt
Browse files Browse the repository at this point in the history
  • Loading branch information
seniorjoinu committed Jun 29, 2020
1 parent c1ffcf1 commit 5b4097f
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 16 deletions.
24 changes: 24 additions & 0 deletions src/main/kotlin/senior/joinu/candid/CandidCodeGenerator.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package senior.joinu.candid

import com.github.h0tk3y.betterParse.grammar.parseToEnd
import senior.joinu.candid.transpile.KtTranspiler
import java.nio.charset.Charset
import java.nio.charset.StandardCharsets
import java.nio.file.Path

object CandidCodeGenerator {
fun generateFor(
didPath: Path,
genPath: Path,
genPackage: String,
didEncoding: Charset = StandardCharsets.UTF_8
) {
val did = didPath.toFile().readText(didEncoding)

val program = IDLGrammar.parseToEnd(did)
val ktContext = KtTranspiler.transpile(program, genPackage, genPath.fileName.toString())
val spec = ktContext.currentSpec.build()

spec.writeTo(genPath)
}
}
1 change: 0 additions & 1 deletion src/main/kotlin/senior/joinu/candid/IDLType.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package senior.joinu.candid
import com.squareup.kotlinpoet.CodeBlock
import com.squareup.kotlinpoet.asTypeName
import senior.joinu.candid.serialize.getTypeSerForType
import senior.joinu.leb128.Leb128
import java.nio.ByteBuffer

class TypeTable(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package senior.joinu.leb128
package senior.joinu.candid


import senior.joinu.candid.reverseOrder
import senior.joinu.candid.toBytesLE
import senior.joinu.candid.toUBytesLE
import java.math.BigInteger
import java.nio.ByteBuffer
import kotlin.experimental.and
Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/senior/joinu/candid/serialize/TypeSers.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package senior.joinu.candid.serialize

import com.squareup.kotlinpoet.CodeBlock
import senior.joinu.candid.*
import senior.joinu.leb128.Leb128
import senior.joinu.candid.Leb128
import java.nio.ByteBuffer
import java.nio.charset.StandardCharsets

Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/senior/joinu/candid/serialize/ValueSers.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package senior.joinu.candid.serialize

import com.squareup.kotlinpoet.CodeBlock
import senior.joinu.candid.*
import senior.joinu.leb128.Leb128
import senior.joinu.leb128.Leb128BI
import senior.joinu.candid.Leb128
import senior.joinu.candid.Leb128BI
import java.math.BigInteger
import java.nio.ByteBuffer
import java.nio.charset.StandardCharsets
Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/senior/joinu/candid/transpile/Utils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import com.squareup.kotlinpoet.*
import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy
import senior.joinu.candid.*
import senior.joinu.candid.serialize.*
import senior.joinu.leb128.Leb128
import senior.joinu.candid.Leb128
import java.nio.ByteBuffer
import java.nio.ByteOrder
import java.util.*
Expand Down
12 changes: 5 additions & 7 deletions src/test/kotlin/senior/joinu/candid/parser/Test.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,16 @@ import java.math.BigInteger
import java.nio.ByteBuffer
import java.nio.ByteOrder
import java.util.Base64
import kotlin.Boolean
import kotlin.ByteArray
import kotlin.Int
import kotlin.String
import kotlin.collections.List
import senior.joinu.candid.CanisterId
import senior.joinu.candid.EdDSAKeyPair
import senior.joinu.candid.Null
import senior.joinu.candid.SimpleIDLFunc
import senior.joinu.candid.SimpleIDLService
import senior.joinu.candid.serialize.*
import senior.joinu.leb128.Leb128
import senior.joinu.candid.Leb128

data class Value(
val i: BigInteger,
Expand Down Expand Up @@ -49,17 +47,17 @@ sealed class Sign {

object SignValueSer : ValueSer<Sign> {
override fun calcSizeBytes(value: Sign): Int = when (value) {
is Sign.Plus -> senior.joinu.leb128.Leb128.sizeUnsigned(0)
is Sign.Minus -> senior.joinu.leb128.Leb128.sizeUnsigned(1)
is Sign.Plus -> Leb128.sizeUnsigned(0)
is Sign.Minus -> Leb128.sizeUnsigned(1)
}

override fun ser(buf: ByteBuffer, value: Sign) {
when (value) {
is Sign.Plus -> {
senior.joinu.leb128.Leb128.writeUnsigned(buf, 0)
Leb128.writeUnsigned(buf, 0)
}
is Sign.Minus -> {
senior.joinu.leb128.Leb128.writeUnsigned(buf, 1)
Leb128.writeUnsigned(buf, 1)
}
}
}
Expand Down

0 comments on commit 5b4097f

Please sign in to comment.