1 	/******************************************************************************
2 Copyright (c) 2007 netAllied GmbH, Tettnang
3 
4 Permission is hereby granted, free of charge, to any person
5 obtaining a copy of this software and associated documentation
6 files (the "Software"), to deal in the Software without
7 restriction, including without limitation the rights to use,
8 copy, modify, merge, publish, distribute, sublicense, and/or sell
9 copies of the Software, and to permit persons to whom the
10 Software is furnished to do so, subject to the following
11 conditions:
12 
13 The above copyright notice and this permission notice shall be
14 included in all copies or substantial portions of the Software.
15 
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23 OTHER DEALINGS IN THE SOFTWARE.
24 ******************************************************************************/
25 
26 #ifndef __MATHML_PARSER_CONSTANTS_H__
27 #define __MATHML_PARSER_CONSTANTS_H__
28 
29 namespace MathML
30 {
31     const static char URL_CONTAINER_ID_DELIMITER = '#';
32     const static String FILE_PROTOCOL = "file:///";
33 
34     // CONSTANTS FOR XML PARSING AND REPRESENTATION
35     const static String UNKNOWN_ELEMENT = "UNKNOWN_ELEMENT";
36     const static String ELEMENT_APPLY_NAME = "apply";
37     const static String ELEMENT_DECLARE_NAME = "declare";
38     const static String ELEMENT_CN_NAME = "cn";
39     const static String ELEMENT_CI_NAME = "ci";
40     const static String ELEMENT_CSYMBOL_NAME = "csymbol";
41     const static String ELEMENT_SEP_NAME = "sep";
42     const static String ATTRIBUTE_TYPE_NAME = "type";
43     const static String ATTRIBUTE_BASE_NAME = "base";
44     const static String ATTRIBUTE_TYPE_VAL_RATIONAL = "rational";
45     const static String ATTRIBUTE_DEFINITION_URL_NAME = "definitionURL";
46     const static String ATTRIBUTE_NARGS_NAME = "nargs";
47     const static String ATTRIBUTE_TYPE_VAL_FUNCTION = "function";
48     const static String ATTRIBUTE_ID_NAME = "id";
49     const static String ATTRIBUTE_ENCODING_NAME = "encoding";
50     const static String ATTRIBUTE_ENCODING_VAL_DEFAULT = "text/xml";
51 
52     const static String ELEMENT_PI_NAME = "pi";
53     const static double PI_NUMBER = 3.14159265358979;
54     const static String PI_STRING_VALUE = "3.14159";
55     const static String ELEMENT_EXPONENTIALE_NAME = "exponentiale";
56     const static double EULERS_NUMBER = 2.718281828459;
57     const static String EULER_STRING_VALUE = "2.71828";
58     const static String ELEMENT_TRUE_NAME = "true";
59     const static String ELEMENT_FALSE_NAME = "false";
60 
61     const static String ELEMENT_PLUS_NAME = "plus";
62     const static String ELEMENT_SUM_NAME = "sum";
63     const static String ELEMENT_MINUS_NAME = "minus";
64     const static String ELEMENT_TIMES_NAME = "times";
65     const static String ELEMENT_PRODUCT_NAME = "product";
66     const static String ELEMENT_QUOTIENT_NAME = "quotient";
67     const static String ELEMENT_DIVIDE_NAME = "divide";
68 
69     const static String NO_OPERATOR = "NO_OPERATOR";
70     const static String OPERATOR_ADD = "+";
71     const static String OPERATOR_SUB = "-";
72     const static String OPERATOR_MUL = "*";
73     const static String OPERATOR_DIV = "/";
74 
75     const static String ELEMENT_EQ_NAME = "eq";
76     const static String ELEMENT_NEQ_NAME = "neq";
77     const static String ELEMENT_LEQ_NAME = "leq";
78     const static String ELEMENT_GEQ_NAME = "geq";
79     const static String ELEMENT_LT_NAME = "lt";
80     const static String ELEMENT_GT_NAME = "gt";
81     const static String ELEMENT_EQUIVALENT_NAME = "equivalent";
82 
83     const static String NO_REL_OPERATOR = "NO_REL_OPERATOR";
84     const static String REL_OPERATOR_EQ = "==";
85     const static String REL_OPERATOR_NEQ = "!=";
86     const static String REL_OPERATOR_LEQ = "<=";
87     const static String REL_OPERATOR_GEQ = ">=";
88     const static String REL_OPERATOR_LT = "<";
89     const static String REL_OPERATOR_GT = ">";
90 
91     const static String ELEMENT_NOT_NAME = "not";
92     const static String ELEMENT_AND_NAME = "and";
93     const static String ELEMENT_OR_NAME = "or";
94     const static String ELEMENT_XOR_NAME = "xor";
95 
96     const static String NO_LOGIC_OPERATOR = "NO_LOGIC_OPERATOR";
97     const static String LOGIC_OPERATOR_NOT = "!";
98     const static String LOGIC_OPERATOR_AND = "&&";
99     const static String LOGIC_OPERATOR_OR = "||";
100     const static String LOGIC_OPERATOR_XOR = "^";
101 
102     const static String ELEMENT_POWER_NAME = "power";
103     const static String ELEMENT_ROOT_NAME = "root";
104     const static String ELEMENT_MIN_NAME = "min";
105     const static String ELEMENT_MAX_NAME = "max";
106     const static String ELEMENT_GCD_NAME = "gcd";
107     const static String ELEMENT_LCM_NAME = "lcm";
108     const static String ELEMENT_REM_NAME = "rem";
109     const static String ELEMENT_FLOOR_NAME = "floor";
110     const static String ELEMENT_CEILING_NAME = "ceiling";
111     const static String ELEMENT_FACTORIAL_NAME = "factorial";
112     const static String ELEMENT_ABS_NAME = "abs";
113 
114     const static String ELEMENT_EXP_NAME = "exp";
115     const static String ELEMENT_LN_NAME = "ln";
116     const static String ELEMENT_LOG_NAME = "log";
117     const static String ELEMENT_LOGBASE_NAME = "logbase";
118 
119     const static String ELEMENT_SIN_NAME = "sin";
120     const static String ELEMENT_COS_NAME = "cos";
121     const static String ELEMENT_TAN_NAME = "tan";
122     const static String ELEMENT_SEC_NAME = "sec";
123     const static String ELEMENT_CSC_NAME = "csc";
124     const static String ELEMENT_COT_NAME = "cot";
125 
126     const static String ELEMENT_ARCSIN_NAME = "arcsin";
127     const static String ELEMENT_ARCCOS_NAME = "arccos";
128     const static String ELEMENT_ARCTAN_NAME = "arctan";
129     const static String ELEMENT_ARCSEC_NAME = "arcsec";
130     const static String ELEMENT_ARCCSC_NAME = "arccsc";
131     const static String ELEMENT_ARCCOT_NAME = "arccot";
132 
133     const static String ELEMENT_SINH_NAME = "sinh";
134     const static String ELEMENT_COSH_NAME = "cosh";
135     const static String ELEMENT_TANH_NAME = "tanh";
136     const static String ELEMENT_SECH_NAME = "sech";
137     const static String ELEMENT_CSCH_NAME = "csch";
138     const static String ELEMENT_COTH_NAME = "coth";
139 
140     const static String ELEMENT_ARCCOSH_NAME = "arccosh";
141     const static String ELEMENT_ARCCOTH_NAME = "arccoth";
142     const static String ELEMENT_ARCCSCH_NAME = "arccsch";
143     const static String ELEMENT_ARCSECH_NAME = "arcsech";
144     const static String ELEMENT_ARCSINH_NAME = "arcsinh";
145     const static String ELEMENT_ARCTANH_NAME = "arctanh";
146 
147 
148 
149     const static String NO_FUNCTION = "NO_FUNCTION";
150     const static String FUNCTION_PI = "pi";
151     const static String FUNCTION_SIN = "sin";
152     const static String FUNCTION_COS = "cos";
153     const static String FUNCTION_TAN = "tan";
154     const static String FUNCTION_SEC = "sec";
155     const static String FUNCTION_CSC = "cosec";
156     const static String FUNCTION_COT = "cotan";
157     const static String FUNCTION_SINH = "sinh";
158     const static String FUNCTION_COSH = "cosh";
159     const static String FUNCTION_TANH = "tanh";
160     const static String FUNCTION_SECH = "sech";
161     const static String FUNCTION_CSCH = "cosech";
162     const static String FUNCTION_COTH = "cotanh";
163     const static String FUNCTION_ABS = "abs";
164     const static String FUNCTION_EXP = "exp";
165     const static String FUNCTION_LOGN = "logn";
166     const static String FUNCTION_POW = "power";
167 
168     const static String FUNCTION_ARCSIN = "arcsin";
169     const static String FUNCTION_ARCCOS = "arccos";
170     const static String FUNCTION_ARCTAN = "arctan";
171     const static String FUNCTION_ARCSEC = "arcsec";
172     const static String FUNCTION_ARCCSC = "arccsc";
173     const static String FUNCTION_ARCCOT = "arccotan";
174     const static String FUNCTION_ARCSINH = "arcsinh";
175     const static String FUNCTION_ARCCOSH = "arccosh";
176     const static String FUNCTION_ARCTANH = "arctanh";
177     const static String FUNCTION_ARCSECH = "arcsech";
178     const static String FUNCTION_ARCCSCH = "arccsch";
179     const static String FUNCTION_ARCCOTH = "arccotanh";
180     const static String FUNCTION_MIN = "min";
181     const static String FUNCTION_MAX = "max";
182     const static String FUNCTION_GCD = "gcd";
183     const static String FUNCTION_LCM = "lcm";
184     const static String FUNCTION_REM = "rem";
185     const static String FUNCTION_FLOOR = "floor";
186     const static String FUNCTION_CEILING = "ceiling";
187     const static String FUNCTION_FACTORIAL = "factorial";
188 
189     const static String FUNCTION_ROOT = "root";
190     const static String FUNCTION_LOG = "log";
191 
192 } //namespace MathML
193 
194 #endif //__MATHML_PARSER_CONSTANTS_H__
195