classifyNode static method
Classifies a LatexNode into an AtomType.
Some node types require finer classification based on content, while others use default classification.
Implementation
static AtomType classifyNode(LatexNode node) {
if (node is TextNode) {
return _classifyText(node.content);
} else if (node is SymbolNode) {
return _classifySymbol(node.symbol, node.unicode);
} else if (node is OperatorNode) {
return _classifyOperatorText();
} else if (node is BigOperatorNode) {
return AtomType.op;
} else if (node is FractionNode || node is BinomialNode) {
return AtomType.inner;
} else if (node is RootNode ||
node is SuperscriptNode ||
node is SubscriptNode) {
return AtomType.ord;
} else if (node is DelimitedNode) {
return AtomType.inner;
} else if (node is ManualSizedDelimiterNode) {
return _classifyDelimiterString(node.delimiter);
} else if (node is SpaceNode || node is HSpaceNode) {
return AtomType.ord;
} else if (node is GroupNode) {
return AtomType.ord;
} else if (node is AccentNode) {
return AtomType.ord;
} else if (node is StackNode) {
return AtomType.ord;
} else if (node is ExtensibleArrowNode) {
return AtomType.rel;
} else if (node is TextModeNode) {
return AtomType.ord;
} else if (node is BoxedNode) {
return AtomType.inner;
} else if (node is MatrixNode) {
return AtomType.inner;
} else if (node is OperatorNameNode) {
return AtomType.op;
} else if (node is ModOperatorNode) {
return AtomType.bin;
} else {
return AtomType.ord;
}
}