// Copyright (c) 2009-2022 The MathJax Consortium
// SPDX-License-Identifier: Apache-2.0
// Sources: ts/input/tex/base/BaseMethods.ts (FrameBox), TexParser.ts.

package tex

import 

func ( *parser) ( string) ([]*mml.Node, error) {
	var  [2]string
	for  := range  {
		, ,  := .readBrackets(nil)
		if  != nil {
			if ,  := .(*Error);  && .ID == "MissingCloseBracket" {
				return nil, texError(.ID, "Could not find closing ']' for argument to \\%s", )
			}
			return nil, 
		}
		[] = 
	}
	// GetArgument's GetNext uses JavaScript whitespace, including BOM and
	// excluding NEL. Keep that local helper boundary separate from math text.
	for .pos < len(.source) && internalTextSpace(.peekRune()) {
		.consumeRune()
	}
	, ,  := .readArgumentAtCursor(, false)
	if  != nil {
		return nil, 
	}
	,  := .internalMath(, "", false)
	if  != nil {
		return nil, 
	}
	if [0] != "" {
		 := "center"
		if [1] == "l" {
			 = "left"
		} else if [1] == "r" {
			 = "right"
		}
		 := node("mpadded", ...)
		.Attributes.Set("width", [0])
		.Attributes.Set("data-align", )
		 = []*mml.Node{}
	}
	 := setAttributes(node("menclose", ...), map[string]any{"notation": "box"})
	return []*mml.Node{texAtom(, mml.TeXClassOrd)}, nil
}