Kotlin: Escape TRAP strings

This commit is contained in:
Ian Lynagh
2021-08-16 10:45:46 +01:00
parent f85cf27df8
commit bbb9d013e0
4 changed files with 13 additions and 9 deletions

View File

@@ -57,7 +57,7 @@ def genTable(kt, relname, body, enum = None, kind = None, num = None, typ = None
if colname == kind:
kt.write(str(num))
elif db_type == 'string' or db_type == 'date':
kt.write('\\"$' + colname + '\\"') # TODO: Escaping
kt.write('\\"${escapeTrapString(' + colname + ')}\\"')
else:
# TODO: Any reformatting or escaping necessary?
# e.g. float formats?
@@ -70,11 +70,6 @@ with open('src/main/kotlin/KotlinExtractorDbScheme.kt', 'w') as kt:
kt.write('/* Generated by ' + sys.argv[0] + ': Do not edit manually. */\n')
kt.write('package com.github.codeql\n')
kt.write('class Label<T>(val name: Int) {\n')
kt.write(' override fun toString(): String = "#$name"\n')
kt.write('}\n')
# kind enums
for name, kind, body in re.findall(r'case\s+@([^.\s]*)\.([^.\s]*)\s+of\b(.*?);',
dbscheme,

View File

@@ -51,6 +51,12 @@ class KotlinExtractorExtension(private val tests: List<String>) : IrGenerationEx
}
}
class Label<T>(val name: Int) {
override fun toString(): String = "#$name"
}
fun escapeTrapString(str: String) = str.replace("\"", "\"\"")
class Logger() {
private val warningCounts = mutableMapOf<String, Int>()
private val warningLimit: Int