// Copyright 2017-2022 The MathJax Consortium // SPDX-License-Identifier: Apache-2.0 // Source: PhysicsMethods.Expectation and outputBraket.
package tex import func ( *parser) ( string) ([]*mml.Node, error) { := .readStar() := && .readStar() , , := .readArgument(, false) if != nil { return nil, } // Source GetNext commits whitespace even when no second argument follows. for .pos < len(.source) && internalTextSpace(.peekRune()) { .consumeRune() } := "" if .pos < len(.source) && .source[.pos] == '{' { , _, = .readArgument(, true) if != nil { return nil, } } // Both raw arguments must be truthy. A consumed empty argument does not // select the three-operand expansion, and discarded source is not parsed. var string if != "" && != "" { switch { case : = "\\left\\langle{" + + "}\\middle\\vert{" + + "}\\middle\\vert{" + + "}\\right\\rangle" case : = "\\langle{" + + "}\\vert{" + + "}\\vert{" + + "}\\rangle" default: = "\\left\\langle{" + + "}\\right\\vert{" + + "}\\left\\vert{" + + "}\\right\\rangle" } } else if { = "\\langle {" + + "} \\rangle" } else { = "\\left\\langle {" + + "} \\right\\rangle" } // One fresh TexParser copies the complete lexical environment. Both // occurrences of arg2 share its budget, while registrations remain shared. , := .parseChild() if != nil { return nil, } return unwrapInferred(), nil }