translator: loglevel fix

This commit is contained in:
e5l
2016-08-16 10:22:13 +03:00
parent e66e0dc0fd
commit 1f4e3d7205
5 changed files with 12 additions and 32 deletions
@@ -26,7 +26,7 @@ class ClassCodegen(state: TranslationState,
override val type: LLVMReferenceType override val type: LLVMReferenceType
init { init {
type = LLVMReferenceType(structName, "class", align = state.pointerAllign, size = state.pointerSize, byRef = true) type = LLVMReferenceType(structName, "class", align = state.pointerAlign, size = state.pointerSize, byRef = true)
if (parentCodegen != null) { if (parentCodegen != null) {
type.location.addAll(parentCodegen.type.location) type.location.addAll(parentCodegen.type.location)
type.location.add(parentCodegen.structName) type.location.add(parentCodegen.structName)
@@ -43,7 +43,7 @@ class ClassCodegen(state: TranslationState,
calculateTypeSize() calculateTypeSize()
type.size = size type.size = size
type.align = state.pointerAllign type.align = state.pointerAlign
} }
private fun indexFields(parameters: MutableList<KtParameter>) { private fun indexFields(parameters: MutableList<KtParameter>) {
@@ -20,7 +20,7 @@ class ObjectCodegen(state: TranslationState,
override val type: LLVMReferenceType override val type: LLVMReferenceType
init { init {
type = LLVMReferenceType(structName, "class", align = state.pointerAllign, size = state.pointerSize, byRef = true) type = LLVMReferenceType(structName, "class", align = state.pointerAlign, size = state.pointerSize, byRef = true)
if (parentCodegen != null) { if (parentCodegen != null) {
type.location.addAll(parentCodegen.type.location) type.location.addAll(parentCodegen.type.location)
type.location.add(parentCodegen.structName) type.location.add(parentCodegen.structName)
@@ -29,7 +29,7 @@ class ObjectCodegen(state: TranslationState,
calculateTypeSize() calculateTypeSize()
type.size = size type.size = size
type.align = state.pointerAllign type.align = state.pointerAlign
} }
override fun prepareForGenerate() { override fun prepareForGenerate() {
@@ -34,7 +34,7 @@ class TranslationState(val environment: KotlinCoreEnvironment, val bindingContex
var objects = HashMap<String, ObjectCodegen>() var objects = HashMap<String, ObjectCodegen>()
var properties = HashMap<String, PropertyCodegen>() var properties = HashMap<String, PropertyCodegen>()
val codeBuilder = LLVMBuilder(arm) val codeBuilder = LLVMBuilder(arm)
val pointerAllign = if (arm) 4 else 8 val pointerAlign = if (arm) 4 else 8
val pointerSize = if (arm) 4 else 8 val pointerSize = if (arm) 4 else 8
val extensionFunctions = HashMap<String, HashMap<String, FunctionCodegen>>() val extensionFunctions = HashMap<String, HashMap<String, FunctionCodegen>>()
} }
@@ -48,8 +48,12 @@ fun parseAndAnalyze(sources: List<String>, disposer: Disposable, arm: Boolean =
override fun hasErrors(): Boolean = hasError override fun hasErrors(): Boolean = hasError
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation) { override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation) {
System.err.println("[${severity.toString()}]${location.path} ${location.line}:${location.column} $message") if (!severity.isError) {
hasError = severity.isError || hasError return
}
System.err.println("[${severity.toString()}]${location.path} ${location.line}:${location.column} $message")
hasError = true
} }
} }
@@ -30,7 +30,7 @@ fun LLVMInstanceOfStandardType(name: String, type: KotlinType, scope: LLVMScope
type.isUnit() -> LLVMVariable("", LLVMVoidType(), name, scope) type.isUnit() -> LLVMVariable("", LLVMVoidType(), name, scope)
type.isMarkedNullable -> LLVMVariable(name, LLVMReferenceType(type.toString().dropLast(1), prefix = "class"), name, scope, pointer = 1) type.isMarkedNullable -> LLVMVariable(name, LLVMReferenceType(type.toString().dropLast(1), prefix = "class"), name, scope, pointer = 1)
else -> { else -> {
val refType = state.classes[type.toString()]?.type ?: LLVMReferenceType(type.toString(), align = state.pointerAllign, prefix = "class") val refType = state.classes[type.toString()]?.type ?: LLVMReferenceType(type.toString(), align = state.pointerAlign, prefix = "class")
val result = LLVMVariable(name, refType, name, scope, pointer = 1) val result = LLVMVariable(name, refType, name, scope, pointer = 1)
refType.location.addAll(type.getSubtypesPredicate().toString().split(".").dropLast(1)) refType.location.addAll(type.getSubtypesPredicate().toString().split(".").dropLast(1))
@@ -1,28 +1,4 @@
enum class WireType(val id: Int) {
VARINT(0), // int32, int64, uint32, uint64, sint32, sint64, bool, enum
FIX_64(1), // fixed64, sfixed64, double
LENGTH_DELIMITED(2), // string, bytes, embedded messages, packed repeated fields
START_GROUP(3), // groups (deprecated)
END_GROUP(4), // groups (deprecated)
FIX_32(5), // fixed32, sfixed32, float
UNDEFINED(6); // indicates error when parsing from Int
companion object {
fun from (value: Byte): WireType {
return when (value) {
0.toByte() -> VARINT
1.toByte() -> FIX_64
2.toByte() -> LENGTH_DELIMITED
3.toByte() -> START_GROUP
4.toByte() -> END_GROUP
5.toByte() -> FIX_32
else -> UNDEFINED
}
}
}
}
fun enum_field_test1(i: Byte): Int { fun enum_field_test1(i: Byte): Int {
return WireType.from(i).id return WireType.from(i).id
} }