1 /* 2 3 This file is part of the Maude 2 interpreter. 4 5 Copyright 1997-2003 SRI International, Menlo Park, CA 94025, USA. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 20 21 */ 22 23 24 /************************************************ 25 ** SCP Parsing Algorithm ** 26 ** Maude Implementation ** 27 ** Jose F. Quesada ** 28 ** CSL - SRI Int. 1998 ** 29 ************************************************/ 30 31 /******* 32 ******* scp_kernel.hh 33 *******/ 34 35 #ifndef _scp_kernel_hh_ 36 #define _scp_kernel_hh_ 37 38 class ScpBaseNT 39 { 40 friend class ScpParser; 41 int smallestPrec; 42 int largestPrec; 43 int firstAbs; 44 int lastAbs; 45 }; 46 47 class ScpAbslNT 48 { 49 friend class ScpParser; 50 int baseNT; 51 int precNT; 52 int nextNT; 53 int lhsdefs; 54 char adjbubble; 55 int bubblecov; 56 int bubbletermn; 57 int bubbleev; 58 }; 59 60 class ScpProdtn 61 { 62 friend class ScpParser; 63 int lhs; 64 int lrhs; 65 int rhs; 66 int lgather; 67 int bubble; 68 }; 69 70 class ScpCov 71 { 72 friend class ScpParser; 73 int prodtn; 74 int next; 75 int ldernext; 76 }; 77 78 class ScpBubble 79 { 80 friend class ScpParser; 81 int abslnt; 82 int lbound; 83 int ubound; 84 int lparen; 85 int rparen; 86 int addrbubexcept; 87 int except; 88 int lexcept; 89 int prodtn; 90 }; 91 92 class ScpEvent 93 { 94 friend class ScpParser; 95 int prodtn; 96 int dot; 97 int fpos; 98 int nextsymbol; 99 int addrnextsymbol; 100 int nextevent; 101 int subsumed; 102 int prevevent; 103 int prevnode; 104 }; 105 106 class ScpNode 107 { 108 friend class ScpParser; 109 int fpos; 110 int lpos; 111 int symbol; 112 int nextnode; 113 int initanal; 114 int skipanal; 115 }; 116 117 class ScpAnal 118 { 119 friend class ScpParser; 120 int prodtn; 121 int prevnode; 122 int prevevent; 123 int nextanal; 124 }; 125 126 #endif // _scp_kernel_hh 127