elect
05/19/2020, 1:02 PMreturn
(short and elegantly)?
fun getArgCount(): Int {
when (lastToken) {
null -> return 1
is Token.OpenParentheses, is Token.ArgumentSeparator -> {
return 1
}
else -> (lastToken as? Token.Operator)?.operator?.let { lastOp ->
if (lastOp.numOperands == 2 || lastOp.numOperands == 1 && !lastOp.isLeftAssociative)
return 1
}
}
return 2
}
elect
05/19/2020, 1:06 PMfun getArgCount(): Int = when (lastToken) {
null -> 1
is Token.OpenParentheses, is Token.ArgumentSeparator -> 1
else -> {
val lastOp = (lastToken as? Token.Operator)?.operator
when {
lastOp != null && (lastOp.numOperands == 2 || lastOp.numOperands == 1 && !lastOp.isLeftAssociative) -> 1
else -> 2
}
}
}
Kroppeb
05/19/2020, 1:47 PM