classifyNode static method

AtomType classifyNode(
  1. LatexNode node
)

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;
  }
}