ComparisonOperation.ceylon
import ceylon.ast.core {
ComparisonOperation
}
import com.redhat.ceylon.compiler.typechecker.tree {
Tree {
JComparisonOp=ComparisonOp,
JLargeAsOp=LargeAsOp,
JLargerOp=LargerOp,
JSmallAsOp=SmallAsOp,
JSmallerOp=SmallerOp
}
}
"Converts a RedHat AST [[ComparisonOp|JComparisonOp]] to a `ceylon.ast` [[ComparisonOperation]]."
shared ComparisonOperation comparisonOperationToCeylon(JComparisonOp comparisonOperation) {
assert (is JLargerOp|JSmallerOp|JLargeAsOp|JSmallAsOp comparisonOperation);
switch (comparisonOperation)
case (is JLargerOp) { return largerOperationToCeylon(comparisonOperation); }
case (is JSmallerOp) { return smallerOperationToCeylon(comparisonOperation); }
case (is JLargeAsOp) { return largeAsOperationToCeylon(comparisonOperation); }
case (is JSmallAsOp) { return smallAsOperationToCeylon(comparisonOperation); }
}
"Compiles the given [[code]] for a Comparison Operation
into a [[ComparisonOperation]] using the Ceylon compiler
(more specifically, the rule for a `comparisonExpression`)."
shared ComparisonOperation? compileComparisonOperation(String code) {
if (is JComparisonOp jComparisonExpression = createParser(code).comparisonExpression()) {
return comparisonOperationToCeylon(jComparisonExpression);
} else {
return null;
}
}