<grammar xmlns="http://relaxng.org/ns/structure/1.0"> <define name="cd.token.unary.class" combine="choice"> <choice> <ref name="factorial.token"/> <ref name="unary_minus.token"/> <ref name="not.token"/> <ref name="abs.token"/> <ref name="conjugate.token"/> <ref name="arg.token"/> <ref name="real.token"/> <ref name="imaginary.token"/> <ref name="floor.token"/> <ref name="ceiling.token"/> </choice> </define> <define name="cd.token.binary.class" combine="choice"> <choice> <ref name="quotient.token"/> <ref name="divide.token"/> <ref name="minus.token"/> <ref name="power.token"/> <ref name="rem.token"/> <ref name="root.token"/> <ref name="implies.token"/> </choice> </define> <define name="cd.token.nary.class" combine="choice"> <choice> <ref name="max.token"/> <ref name="min.token"/> <ref name="plus.token"/> <ref name="times.token"/> <ref name="gcd.token"/> <ref name="and.token"/> <ref name="or.token"/> <ref name="xor.token"/> <ref name="lcm.token"/> </choice> </define> <define name="cd.binder.class" combine="choice"> <choice> <ref name="forall.token"/> <ref name="exists.token"/> </choice> </define> <define name="quotient.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="quotient.token"> <element name="quotient"> <ref name="quotient.content"/> </element> </define> <define name="factorial.content"> <ref name="Token.type"/> </define> <define name="factorial.token"> <element name="factorial"> <ref name="factorial.content"/> </element> </define> <define name="divide.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="divide.token"> <element name="divide"> <ref name="divide.content"/> </element> </define> <define name="max.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="max.token"> <element name="max"> <ref name="max.content"/> </element> </define> <define name="min.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="min.token"> <element name="min"> <ref name="min.content"/> </element> </define> <define name="minus.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="minus.token"> <element name="minus"> <ref name="minus.content"/> </element> </define> <define name="unary_minus.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="unary_minus.token"> <element name="minus"> <ref name="unary_minus.content"/> </element> </define> <define name="plus.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="plus.token"> <element name="plus"> <ref name="plus.content"/> </element> </define> <define name="power.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="power.token"> <element name="power"> <ref name="power.content"/> </element> </define> <define name="rem.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="rem.token"> <element name="rem"> <ref name="rem.content"/> </element> </define> <define name="times.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="times.token"> <element name="times"> <ref name="times.content"/> </element> </define> <define name="root.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="root.token"> <element name="root"> <ref name="root.content"/> </element> </define> <define name="gcd.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="gcd.token"> <element name="gcd"> <ref name="gcd.content"/> </element> </define> <define name="and.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="and.token"> <element name="and"> <ref name="and.content"/> </element> </define> <define name="or.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="or.token"> <element name="or"> <ref name="or.content"/> </element> </define> <define name="xor.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="xor.token"> <element name="xor"> <ref name="xor.content"/> </element> </define> <define name="not.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="not.token"> <element name="not"> <ref name="not.content"/> </element> </define> <define name="implies.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="implies.token"> <element name="implies"> <ref name="implies.content"/> </element> </define> <define name="forall.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="forall.token"> <element name="forall"> <ref name="forall.content"/> </element> </define> <define name="exists.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="exists.token"> <element name="exists"> <ref name="exists.content"/> </element> </define> <define name="abs.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="abs.token"> <element name="abs"> <ref name="abs.content"/> </element> </define> <define name="conjugate.content"> <ref name="Token.type"/> </define> <define name="conjugate.token"> <element name="conjugate"> <ref name="conjugate.content"/> </element> </define> <define name="arg.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="arg.token"> <element name="arg"> <ref name="arg.content"/> </element> </define> <define name="real.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="real.token"> <element name="real"> <ref name="real.content"/> </element> </define> <define name="imaginary.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="imaginary.token"> <element name="imaginary"> <ref name="imaginary.content"/> </element> </define> <define name="lcm.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="lcm.token"> <element name="lcm"> <ref name="lcm.content"/> </element> </define> <define name="floor.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="floor.token"> <element name="floor"> <ref name="floor.content"/> </element> </define> <define name="ceiling.content"> <ref name="Token.type"/> <optional> <attribute name="type"> <ref name="MathMLtype"/> </attribute> </optional> </define> <define name="ceiling.token"> <element name="ceiling"> <ref name="ceiling.content"/> </element> </define> </grammar>