Subversion Repositories wimsdev

Rev

Rev 10 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /*    Copyright (C) 2002-2003 XIAO, Gang of Universite de Nice - Sophia Antipolis
  2.  *
  3.  *  This program is free software; you can redistribute it and/or modify
  4.  *  it under the terms of the GNU General Public License as published by
  5.  *  the Free Software Foundation; either version 2 of the License, or
  6.  *  (at your option) any later version.
  7.  *
  8.  *  This program is distributed in the hope that it will be useful,
  9.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.  *  GNU General Public License for more details.
  12.  *
  13.  *  You should have received a copy of the GNU General Public License
  14.  *  along with this program; if not, write to the Free Software
  15.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  16.  */
  17.  
  18. #include "mathexp.h"
  19.  
  20. char *typenames[]={
  21.     "number", "variable",
  22.       "parentheses","matrix","set","function",
  23.       "exponentiation","term","cupcap","addition",
  24.       "equation","inequality","not","and","or","implication",
  25.       "comma","quantifier"
  26. };
  27.  
  28. op oppunct[]={
  29.     {"(",       exp_paren},
  30.     {"[",       exp_matrix},
  31.     {"{",       exp_set},
  32.     {"^",       exp_exp},
  33.     {"**",      exp_exp},
  34.     {"*",       exp_muldiv},
  35.     {"/",       exp_muldiv},
  36.     {"-",       exp_add},
  37.     {"+",       exp_add},
  38.     {"!=",      exp_eq},
  39.     {"<>",      exp_eq},
  40.     {"<==>",    exp_imply},
  41.     {"<==",     exp_imply},
  42.     {"<=>",     exp_imply},
  43.     {"=>",      exp_imply},
  44.     {"==>",     exp_imply},
  45.     {"<=",      exp_ineq},
  46.     {">=",      exp_ineq},
  47.     {"<",       exp_ineq},
  48.     {">",       exp_ineq},
  49.     {"==",      exp_eq},
  50.     {"=",       exp_eq},
  51.     {",",       exp_comma},
  52.     {";",       exp_comma},
  53. };
  54. int oppunctno=(sizeof(oppunct)/sizeof(oppunct[0]));
  55.  
  56. op opalpha[]={
  57.     {"cup",     exp_cupcap},
  58.     {"cap",     exp_cupcap},
  59.     {"and",     exp_and},
  60.     {"or",      exp_or},
  61.     {"not",     exp_not},
  62.     {"in",      exp_quantifier},
  63.     {"forall",  exp_quantifier},
  64.     {"exist",   exp_quantifier},
  65.     {"exists",  exp_quantifier},
  66. };
  67. int opalphano=(sizeof(opalpha)/sizeof(opalpha[0]));
  68.  
  69. ex exptype[]={
  70.         {"addition",    exp_add, exp_add},
  71.         {"algexp",      0, exp_add},
  72.         {"and",         exp_and, exp_and},
  73.         {"andor",       exp_and, exp_or},
  74.         {"equation",    exp_eq, exp_eq},
  75.         {"equations",   exp_eq, exp_eq},
  76.         {"function",    exp_fn, exp_fn},
  77.         {"functions",   exp_fn, exp_fn},
  78.         {"inequalities",exp_ineq, exp_ineq},
  79.         {"inequality",  exp_ineq, exp_ineq},
  80.         {"inequation",  exp_eq, exp_ineq},
  81.         {"inequations", exp_eq, exp_ineq},
  82.         {"logic",       exp_not, exp_or},
  83.         {"matrix",      exp_matrix, exp_matrix},
  84.         {"mult",        exp_muldiv, exp_muldiv},
  85.         {"multiplication", exp_muldiv, exp_muldiv},
  86.         {"or",          exp_or, exp_or},
  87.         {"parentheses", exp_paren, exp_paren},
  88.         {"parenthesis", exp_paren, exp_paren},
  89.         {"predicate",   exp_eq, exp_quantifier},
  90.         {"set",         exp_set, exp_set},
  91.         {"term",        0, exp_muldiv},
  92.         {"variable",    exp_variable, exp_variable},
  93.         {"variables",   exp_variable, exp_variable},
  94. };
  95.  
  96. int exptypeno=(sizeof(exptype)/sizeof(exptype[0]));
  97.  
  98.