function Options(data) {
	    this.style = data.style;
	    this.color = data.color;
	    this.size = data.size;
	    this.phantom = data.phantom;
	    this.font = data.font;

	    if (data.parentStyle === undefined) {
	        this.parentStyle = data.style;
	    } else {
	        this.parentStyle = data.parentStyle;
	    }

	    if (data.parentSize === undefined) {
	        this.parentSize = data.size;
	    } else {
	        this.parentSize = data.parentSize;
	    }
	}
Parses an "expression", which is a list of atoms.

@param {boolean} breakOnInfix Should the parsing stop when we hit infix
                 nodes? This happens when functions have higher precendence
                 than infix nodes in implicit parses.

@param {?string} breakOnToken The token that the expression should end with,
                 or `null` if something else should end the expression.

@return {ParseNode}