Skip to content

Commit d442de6

Browse files
committed
fix csrg reader
1 parent 777f869 commit d442de6

File tree

5 files changed

+43
-37
lines changed

5 files changed

+43
-37
lines changed

src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping/formats/csrg/CsrgReader.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,15 @@ object CsrgReader : FormatReader {
6868

6969
while (!input.exhausted()) {
7070
input.takeWhitespace()
71+
if (input.peek() == '\n') {
72+
input.take()
73+
continue
74+
}
7175
if (input.peek() == '#') {
7276
input.takeLine()
7377
continue
7478
}
79+
7580
val parts = input.takeRemainingLiteralOnLine()
7681
when (parts.size) {
7782
CLASS_MAPPING -> {

src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping/formats/umf/UMFReader.kt

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ object UMFReader : FormatReader {
4949

5050
fun CharReader<*>.takeRemainingFixedOnLine() = buildList {
5151
while (peek() != null && peek() != '\n') {
52-
add(takeNextFixed())
52+
add(takeNextUMF())
5353
}
5454
}
5555

56-
fun CharReader<*>.takeNextFixed(): String? {
56+
fun CharReader<*>.takeNextUMF(): String? {
5757
val isString = peek() == '"'
5858
if (isString) {
5959
val str = takeString()
@@ -185,8 +185,8 @@ object UMFReader : FormatReader {
185185
last?.visitMethod(names)
186186
}
187187
EntryType.PARAMETER -> {
188-
val index = input.takeNextFixed()?.toIntOrNull()
189-
val lvOrd = input.takeNextFixed()?.toIntOrNull()
188+
val index = input.takeNextUMF()?.toIntOrNull()
189+
val lvOrd = input.takeNextUMF()?.toIntOrNull()
190190
if (index == null && lvOrd == null) {
191191
throw IllegalArgumentException("Invalid parameter entry, no index or lvOrd on line $line")
192192
}
@@ -197,23 +197,23 @@ object UMFReader : FormatReader {
197197
last?.visitParameter(index, lvOrd, names)
198198
}
199199
EntryType.LOCAL_VARIABLE -> {
200-
val lvOrd = input.takeNextFixed()!!.toInt()
201-
val startOp = input.takeNextFixed()?.toIntOrNull()
200+
val lvOrd = input.takeNextUMF()!!.toInt()
201+
val startOp = input.takeNextUMF()?.toIntOrNull()
202202
val names = input.takeRemainingFixedOnLine().withIndex().filterNotNullValues().associate { (idx, name) ->
203203
getNamespace(idx) to name
204204
}
205205
last as MethodVisitor?
206206
last?.visitLocalVariable(lvOrd, startOp, names)
207207
}
208208
EntryType.EXCEPTION -> {
209-
val type = input.takeNextFixed()!!.let {
209+
val type = input.takeNextUMF()!!.let {
210210
when (it) {
211211
"+" -> ExceptionType.ADD
212212
"-" -> ExceptionType.REMOVE
213213
else -> throw IllegalArgumentException("Invalid exception type $it")
214214
}
215215
}
216-
val exception = input.takeNextFixed()!!.let { if (unchecked) InternalName.unchecked(it) else InternalName.read(it) }
216+
val exception = input.takeNextUMF()!!.let { if (unchecked) InternalName.unchecked(it) else InternalName.read(it) }
217217
val names = input.takeRemainingFixedOnLine().filterNotNull().map { Namespace(it) }.iterator()
218218
last as MethodVisitor?
219219
last?.visitException(type, exception, names.next(), names.asSequence().toSet())
@@ -228,7 +228,7 @@ object UMFReader : FormatReader {
228228
}
229229
EntryType.WILDCARD -> {
230230
last as ClassVisitor?
231-
val type = input.takeNextFixed()!!.let {
231+
val type = input.takeNextUMF()!!.let {
232232
when (it) {
233233
"f" -> WildcardNode.WildcardType.FIELD
234234
"m" -> WildcardNode.WildcardType.METHOD
@@ -241,7 +241,7 @@ object UMFReader : FormatReader {
241241
last?.visitWildcard(type, descs)
242242
}
243243
EntryType.INNER_CLASS -> {
244-
val type = input.takeNextFixed()!!.let {
244+
val type = input.takeNextUMF()!!.let {
245245
when (it) {
246246
"i" -> InnerClassNode.InnerType.INNER
247247
"a" -> InnerClassNode.InnerType.ANONYMOUS
@@ -262,7 +262,7 @@ object UMFReader : FormatReader {
262262
last?.visitInnerClass(type, names)
263263
}
264264
EntryType.SEAL -> {
265-
val type = input.takeNextFixed()!!.let {
265+
val type = input.takeNextUMF()!!.let {
266266
when (it) {
267267
"+" -> SealedType.ADD
268268
"-" -> SealedType.REMOVE
@@ -271,7 +271,7 @@ object UMFReader : FormatReader {
271271
}
272272
}
273273
val name = if (type != SealedType.CLEAR) {
274-
input.takeNextFixed()?.let {
274+
input.takeNextUMF()?.let {
275275
if (unchecked) InternalName.unchecked(it) else InternalName.read(it)
276276
}
277277
} else null
@@ -280,83 +280,83 @@ object UMFReader : FormatReader {
280280
last?.visitSeal(type, name, names.next(), names.asSequence().toSet())
281281
}
282282
EntryType.INTERFACE -> {
283-
val type = input.takeNextFixed()!!.let {
283+
val type = input.takeNextUMF()!!.let {
284284
when (it) {
285285
"+" -> InterfacesType.ADD
286286
"-" -> InterfacesType.REMOVE
287287
else -> throw IllegalArgumentException("Invalid interface type $it")
288288
}
289289
}
290-
val name = input.takeNextFixed()!!.let {
290+
val name = input.takeNextUMF()!!.let {
291291
if (unchecked) InternalName.unchecked(it) else InternalName.read(it)
292292
}
293293
val names = input.takeRemainingFixedOnLine().filterNotNull().map { Namespace(it) }.iterator()
294294
last as ClassVisitor?
295295
last?.visitInterface(type, name, names.next(), names.asSequence().toSet())
296296
}
297297
EntryType.JAVADOC -> {
298-
val comment = input.takeNextFixed()!!
298+
val comment = input.takeNextUMF()!!
299299
val names = input.takeRemainingFixedOnLine().filterNotNull().map { Namespace(it) }
300300
last as MemberVisitor<*>?
301301
last?.visitJavadoc(comment, names.toSet())
302302
}
303303
EntryType.ANNOTATION -> {
304-
val type = input.takeNextFixed()!!.let {
304+
val type = input.takeNextUMF()!!.let {
305305
when (it) {
306306
"+" -> AnnotationType.ADD
307307
"-" -> AnnotationType.REMOVE
308308
"m" -> AnnotationType.MODIFY
309309
else -> throw IllegalArgumentException("Invalid annotation type $it")
310310
}
311311
}
312-
val key = input.takeNextFixed()
313-
val value = input.takeNextFixed() ?: "()"
312+
val key = input.takeNextUMF()
313+
val value = input.takeNextUMF() ?: "()"
314314
val annotation = if (unchecked) Annotation.unchecked("@$key$value") else Annotation.read("@$key$value")
315315
val names = input.takeRemainingFixedOnLine().filterNotNull().map { Namespace(it) }.iterator()
316316
last as MemberVisitor<*>?
317317
last?.visitAnnotation(type, names.next(), annotation, names.asSequence().toSet())
318318
}
319319
EntryType.ACCESS -> {
320-
val type = input.takeNextFixed()!!.let {
320+
val type = input.takeNextUMF()!!.let {
321321
when (it) {
322322
"+" -> AccessType.ADD
323323
"-" -> AccessType.REMOVE
324324
else -> throw IllegalArgumentException("Invalid access type $it")
325325
}
326326
}
327-
val value = AccessFlag.valueOf(input.takeNextFixed()!!.uppercase())
328-
val conditions = input.takeNextFixed()!!.let { if (unchecked) AccessConditions.unchecked(it) else AccessConditions.read(it) }
327+
val value = AccessFlag.valueOf(input.takeNextUMF()!!.uppercase())
328+
val conditions = input.takeNextUMF()!!.let { if (unchecked) AccessConditions.unchecked(it) else AccessConditions.read(it) }
329329
val accNs = input.takeRemainingFixedOnLine().filterNotNull().map { Namespace(it) }.toSet()
330330
last as MemberVisitor<*>?
331331
last?.visitAccess(type, value, conditions, accNs)
332332
}
333333
EntryType.CONSTANT_GROUP -> {
334-
val type = ConstantGroupNode.InlineType.valueOf(input.takeNextFixed()!!.uppercase())
335-
val name = input.takeNextFixed()
334+
val type = ConstantGroupNode.InlineType.valueOf(input.takeNextUMF()!!.uppercase())
335+
val name = input.takeNextUMF()
336336
val names = input.takeRemainingFixedOnLine().filterNotNull().map { Namespace(it) }.iterator()
337337
last as MappingVisitor?
338338
last?.visitConstantGroup(type, name, names.next(), names.asSequence().toSet())
339339
}
340340
EntryType.CONSTANT -> {
341-
val cls = input.takeNextFixed()!!.let { if (unchecked) InternalName.unchecked(it) else InternalName.read(it) }
342-
val fd = input.takeNextFixed()!!.let { if (unchecked) NameAndDescriptor.unchecked(it) else NameAndDescriptor.read(it) }.getParts()
341+
val cls = input.takeNextUMF()!!.let { if (unchecked) InternalName.unchecked(it) else InternalName.read(it) }
342+
val fd = input.takeNextUMF()!!.let { if (unchecked) NameAndDescriptor.unchecked(it) else NameAndDescriptor.read(it) }.getParts()
343343
last as ConstantGroupVisitor?
344344
last?.visitConstant(cls, fd.first, fd.second?.getFieldDescriptor())
345345
}
346346
EntryType.CONSTANT_TARGET -> {
347-
val target = input.takeNextFixed()!!.let { if (it.isEmpty()) null else if (unchecked) FullyQualifiedName.unchecked(it) else FullyQualifiedName.read(it) }
348-
val paramIdx = input.takeNextFixed()?.toIntOrNull()
347+
val target = input.takeNextUMF()!!.let { if (it.isEmpty()) null else if (unchecked) FullyQualifiedName.unchecked(it) else FullyQualifiedName.read(it) }
348+
val paramIdx = input.takeNextUMF()?.toIntOrNull()
349349
last as ConstantGroupVisitor?
350350
last?.visitTarget(target, paramIdx)
351351
}
352352
EntryType.CONSTANT_EXPRESSION -> {
353-
val constant = input.takeNextFixed()!!.let { if (unchecked) Constant.unchecked(it) else Constant.read(it) }
354-
val expression = input.takeNextFixed()!!.let { if (unchecked) Expression.unchecked(it) else Expression.read(it) }
353+
val constant = input.takeNextUMF()!!.let { if (unchecked) Constant.unchecked(it) else Constant.read(it) }
354+
val expression = input.takeNextUMF()!!.let { if (unchecked) Expression.unchecked(it) else Expression.read(it) }
355355
last as ConstantGroupVisitor?
356356
last?.visitExpression(constant, expression)
357357
}
358358
EntryType.SIGNATURE -> {
359-
val sig = input.takeNextFixed()!!
359+
val sig = input.takeNextUMF()!!
360360
val names = input.takeRemainingFixedOnLine().filterNotNull().map { Namespace(it) }.iterator()
361361
last as SignatureParentVisitor<*>?
362362
last?.visitSignature(sig, names.next(), names.asSequence().toSet())

src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping/jvms/four/AccessFlag.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ enum class AccessFlag(val access: Int, vararg e: ElementType) {
6060
val contentMask = content.map { it.access }.reduce { acc, i -> acc or i }
6161

6262
fun of(type: ElementType, access: Int) = entries.filter { it.elements.contains(type) && it.access and access != 0 }.toSet()
63-
63+
6464
fun visibilityOf(access: Int): AccessFlag? {
6565
val acc = visibility.filter { it.access and access != 0 }
6666
if (acc.size > 1) throw IllegalArgumentException("Multiple visibility flags found")

src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping/propagator/CachedInheritanceTree.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package xyz.wagyourtail.unimined.mapping.propagator
22

33
import xyz.wagyourtail.commonskt.reader.CharReader
44
import xyz.wagyourtail.unimined.mapping.Namespace
5-
import xyz.wagyourtail.unimined.mapping.formats.umf.UMFReader.takeNextFixed
5+
import xyz.wagyourtail.unimined.mapping.formats.umf.UMFReader.takeNextUMF
66
import xyz.wagyourtail.unimined.mapping.formats.umf.UMFReader.takeRemainingFixedOnLine
77
import xyz.wagyourtail.unimined.mapping.formats.umf.UMFWriter.maybeEscape
88
import xyz.wagyourtail.unimined.mapping.jvms.ext.FieldOrMethodDescriptor
@@ -93,15 +93,15 @@ class CachedInheritanceTree(tree: AbstractMappingTree, data: CharReader<*>): Inh
9393
throw IllegalArgumentException("expected method, found double indent")
9494
}
9595
if (indent == 0) {
96-
val cls = data.takeNextFixed()!!
97-
val sup = data.takeNextFixed()?.ifEmpty { null }
96+
val cls = data.takeNextUMF()!!
97+
val sup = data.takeNextUMF()?.ifEmpty { null }
9898
val intf = data.takeRemainingFixedOnLine().map { InternalName.read(it!!) }
9999
ci = ClassInfo(InternalName.read(cls), sup?.let { InternalName.read(it) }, intf)
100100
classes[ci!!.name] = ci!!
101101
} else {
102-
val acc = data.takeNextFixed()!!.split("|").map { AccessFlag.valueOf(it.uppercase()) }
103-
val name = data.takeNextFixed()!!
104-
val desc = FieldOrMethodDescriptor.read(data.takeNextFixed()!!)
102+
val acc = data.takeNextUMF()!!.split("|").map { AccessFlag.valueOf(it.uppercase()) }
103+
val name = data.takeNextUMF()!!
104+
val desc = FieldOrMethodDescriptor.read(data.takeNextUMF()!!)
105105

106106
if (desc.isMethodDescriptor()) {
107107
ci!!.methods.add(

src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping/visitor/delegate/NameCopyVisitor.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class NameCopyDelegate(vararg val from: Pair<Namespace, Set<Namespace>>, val onl
3131
}
3232
}
3333
}
34+
3435
}
3536

3637
override fun visitClass(delegate: MappingVisitor, names: Map<Namespace, InternalName>): ClassVisitor? {

0 commit comments

Comments
 (0)