| /* translation of file "occur.k" */ |
| /* generated by: |
| * @(#)$Author$ |
| */ |
| #define KC_FUNCTIONS_occur_ |
| |
| #include <stdlib.h> |
| #include "k.h" |
| #include "occur.h" |
| namespace kc { } |
| using namespace kc; |
| /* included stuff */ |
| // |
| // The Termprocessor Kimwitu++ |
| // |
| // Copyright (C) 1991 University of Twente, Dept TIOS. |
| // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics |
| // All rights reserved. |
| // |
| // Kimwitu++ is free software; you can redistribute it and/or modify |
| // it under the terms of the GNU General Public License as published by |
| // the Free Software Foundation; either version 2 of the License, or |
| // (at your option) any later version. |
| // |
| // Kimwitu++ is distributed in the hope that it will be useful, |
| // but WITHOUT ANY WARRANTY; without even the implied warranty of |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| // GNU General Public License for more details. |
| // |
| // You should have received a copy of the GNU General Public License |
| // along with Kimwitu++; if not, write to the Free Software |
| // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| // |
| |
| static char occur_kAccesSid[] = "@(#)$Id$"; |
| |
| inline static void |
| NF(ID id, problem prob) |
| { |
| v_report(NonFatal( FileLine( id->file, id->line ), prob)); |
| } |
| |
| /* end included stuff */ |
| |
| |
| namespace kc { |
| |
| #ifndef KC_TRACE_PROVIDED |
| #define KC_TRACE_PROVIDED(COND,FILE,LINE,NODE) COND |
| #endif |
| |
| static void do_v_extendoccur (ID id, IDtype it, bool warn); |
| static bool occurlanguagename (ID id); |
| void v_defoccur(ID id, IDtype it) |
| { |
| uniqID uid; |
| { |
| ID kc_selvar_0_1 = phylum_cast<ID>( id ); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID _uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| uid = _uid; |
| } else |
| kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); |
| } |
| id->type = it; |
| |
| { |
| IDtype kc_selvar_0_1 = phylum_cast<IDtype>( id->type); |
| IDtype kc_selvar_0_2 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUnknown)) { |
| return; |
| } else |
| if ((kc_selvar_0_2->prod_sel() == sel_ITUnknown)) { |
| uid->type = it; uid->line = id->line; uid->file = id->file; return; |
| } else |
| { |
| |
| } |
| } |
| |
| { |
| IDtype kc_selvar_0_1 = phylum_cast<IDtype>( id->type); |
| IDtype kc_selvar_0_2 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserFunction) && (kc_selvar_0_2->prod_sel() == sel_ITUserFunction) && (phylum_cast<const impl_IDtype_ITUserFunction*>(kc_selvar_0_2)->fnclass_1->prod_sel() == sel_DestructorFn)) { |
| |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserFunction) && (kc_selvar_0_2->prod_sel() == sel_ITUserFunction) && (phylum_cast<const impl_IDtype_ITUserFunction*>(kc_selvar_0_2)->fnclass_1->prod_sel() == sel_ConstructorFn)) { |
| |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserFunction) && (kc_selvar_0_2->prod_sel() == sel_ITUserFunction) && (phylum_cast<const impl_IDtype_ITUserFunction*>(kc_selvar_0_2)->fnclass_1->prod_sel() == sel_MemberFn)) { |
| |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserFunction) && (kc_selvar_0_2->prod_sel() == sel_ITUserFunction) && (phylum_cast<const impl_IDtype_ITUserFunction*>(kc_selvar_0_2)->fnclass_1->prod_sel() == sel_StaticFn)) { |
| const fnclass it_fnc = phylum_cast<const impl_IDtype_ITUserFunction*>(kc_selvar_0_1)->fnclass_1; |
| |
| { |
| fnclass kc_selvar_1_1 = phylum_cast<fnclass>( it_fnc ); |
| if ((kc_selvar_1_1->prod_sel() == sel_StaticFn)) { |
| |
| if (uid->file->eq(id->file )) |
| NF(id, Problem1S1ID( "illegal redefinition of local function:", id )); |
| |
| } else |
| if ((kc_selvar_1_1->prod_sel() == sel_GlobalFn)) { |
| NF(id, Problem1S1ID( "illegal redefinition of local function:", id )); |
| } else |
| kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); |
| } |
| |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserFunction) && (kc_selvar_0_2->prod_sel() == sel_ITUserFunction) && (phylum_cast<const impl_IDtype_ITUserFunction*>(kc_selvar_0_2)->fnclass_1->prod_sel() == sel_GlobalFn)) { |
| const fnclass it_fnc = phylum_cast<const impl_IDtype_ITUserFunction*>(kc_selvar_0_1)->fnclass_1; |
| |
| |
| |
| |
| |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPatternVariable) && (kc_selvar_0_2->prod_sel() == sel_ITPatternVariable)) { |
| const integer i_s = phylum_cast<const impl_IDtype_ITPatternVariable*>(kc_selvar_0_1)->integer_1; |
| const integer id_s = phylum_cast<const impl_IDtype_ITPatternVariable*>(kc_selvar_0_2)->integer_1; |
| |
| if (i_s == id_s) |
| NF(id, Problem1S1ID( "illegal redefinition of pattern variable:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserRView) && (kc_selvar_0_2->prod_sel() == sel_ITUserRView)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of rewrite view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserRView) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedRView)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of predefined rewrite view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedRView) && (kc_selvar_0_2->prod_sel() == sel_ITUserRView)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of rewrite view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedRView) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedRView)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of predefined rewrite view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserUView) && (kc_selvar_0_2->prod_sel() == sel_ITUserUView)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of unparse view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserUView) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedUView)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of predefined unparse view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedUView) && (kc_selvar_0_2->prod_sel() == sel_ITUserUView)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of unparse view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedUView) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedUView)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of predefined unparse view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITStorageClass) && (kc_selvar_0_2->prod_sel() == sel_ITStorageClass)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of storage class:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITStorageClass) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedStorageClass)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of predefined storage class:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedStorageClass) && (kc_selvar_0_2->prod_sel() == sel_ITStorageClass)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of storage class:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedStorageClass) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedStorageClass)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of predefined storage class:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserOperator) && (kc_selvar_0_2->prod_sel() == sel_ITUserOperator)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserOperator) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedOperator)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of predefined operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedOperator) && (kc_selvar_0_2->prod_sel() == sel_ITUserOperator)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedOperator) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedOperator)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of predefined operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserPhylum) && (kc_selvar_0_2->prod_sel() == sel_ITUserPhylum)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of phylum:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserPhylum) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedPhylum)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of predefined phylum:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedPhylum) && (kc_selvar_0_2->prod_sel() == sel_ITUserPhylum)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of phylum:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedPhylum) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedPhylum)) { |
| |
| NF(id, Problem1S1ID( "illegal predefinition of predefined phylum:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPatternVariable)) { |
| const integer i_s = phylum_cast<const impl_IDtype_ITPatternVariable*>(kc_selvar_0_1)->integer_1; |
| |
| NF(id, Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as pattern variable", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserRView)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as rewrite view", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedRView)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as rewrite view", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserUView)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as unparse view", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedUView)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as unparse view", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserFunction)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as function", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITStorageClass)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as storage class", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedStorageClass)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as storage class:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserOperator)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedOperator)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserPhylum)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as phylum:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedPhylum)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as phylum:", id )); |
| } else |
| kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); |
| } |
| |
| } |
| |
| void v_extendoccur(ID id, IDtype it) |
| { do_v_extendoccur( id, it, true); |
| } |
| |
| void v_extendoccur_nowarning(ID id, IDtype it) |
| { do_v_extendoccur( id, it, false); |
| } |
| |
| static void do_v_extendoccur(ID id, IDtype it, bool warn) |
| { |
| uniqID uid; |
| { |
| ID kc_selvar_0_1 = phylum_cast<ID>( id ); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID _uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| uid = _uid; |
| } else |
| kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); |
| } |
| id->type = it; |
| |
| { |
| IDtype kc_selvar_0_1 = phylum_cast<IDtype>( id->type); |
| IDtype kc_selvar_0_2 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUnknown)) { |
| return; |
| } else |
| if ((kc_selvar_0_2->prod_sel() == sel_ITUnknown)) { |
| uid->type = it; uid->line = id->line; uid->file = id->file; return; |
| } else |
| { |
| |
| } |
| } |
| |
| { |
| IDtype kc_selvar_0_1 = phylum_cast<IDtype>( id->type); |
| IDtype kc_selvar_0_2 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPatternVariable) && (kc_selvar_0_2->prod_sel() == sel_ITPatternVariable)) { |
| const ID id_id = phylum_cast<const impl_IDtype_ITPatternVariable*>(kc_selvar_0_1)->ID_1; |
| const integer id_scope = phylum_cast<const impl_IDtype_ITPatternVariable*>(kc_selvar_0_1)->integer_1; |
| const ID uid_id = phylum_cast<const impl_IDtype_ITPatternVariable*>(kc_selvar_0_2)->ID_1; |
| const integer uid_scope = phylum_cast<const impl_IDtype_ITPatternVariable*>(kc_selvar_0_2)->integer_1; |
| |
| if (id_scope == uid_scope) { |
| if (! id_id->eq( uid_id )) { |
| NF(id, Problem1S1ID1S1ID1S1ID( "type mismatch in redefinition of pattern variable:", id, "old type", uid_id, "new type", id_id )); |
| } |
| } else { |
| uid->scopeinfo = Consscopetypefilelinestack( ScopeTypeFileLine(id_scope, uid->type, uid->file, mkinteger(uid->line)), uid->scopeinfo ); |
| uid->type = it; |
| uid->line = id->line; |
| uid->file = id->file; |
| } |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserRView) && (kc_selvar_0_2->prod_sel() == sel_ITUserRView)) { |
| |
| if (warn) NF(id, Problem1S1ID( "superfluous redeclaration of rewrite view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserRView) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedRView)) { |
| |
| if (warn) NF(id, Problem1S1ID( "superfluous redeclaration of predefined rewrite view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedRView) && (kc_selvar_0_2->prod_sel() == sel_ITUserRView)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of rewrite view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedRView) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedRView)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of predefined rewrite view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserUView) && (kc_selvar_0_2->prod_sel() == sel_ITUserUView)) { |
| |
| if (warn) NF(id, Problem1S1ID( "superfluous redeclaration of unparse view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserUView) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedUView)) { |
| |
| if (warn) NF(id, Problem1S1ID( "superfluous redeclaration of predefined unparse view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedUView) && (kc_selvar_0_2->prod_sel() == sel_ITUserUView)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of unparse view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedUView) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedUView)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of predefined unparse view:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserFunction) && (kc_selvar_0_2->prod_sel() == sel_ITUserFunction)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of function:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITStorageClass) && (kc_selvar_0_2->prod_sel() == sel_ITStorageClass)) { |
| /* EMPTY */ |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITStorageClass) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedStorageClass)) { |
| /* EMPTY */ |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedStorageClass) && (kc_selvar_0_2->prod_sel() == sel_ITStorageClass)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of storage class:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedStorageClass) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedStorageClass)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of predefined storage class:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserOperator) && (kc_selvar_0_2->prod_sel() == sel_ITUserOperator)) { |
| |
| NF(id, Problem1S1ID( "illegal redefinition of operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserOperator) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedOperator)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of predefined operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedOperator) && (kc_selvar_0_2->prod_sel() == sel_ITUserOperator)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedOperator) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedOperator)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of predefined operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserPhylum) && (kc_selvar_0_2->prod_sel() == sel_ITUserPhylum)) { |
| /* EMPTY */ |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserPhylum) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedPhylum)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of predefined phylum:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedPhylum) && (kc_selvar_0_2->prod_sel() == sel_ITUserPhylum)) { |
| |
| NF(id, Problem1S1ID( "illegal extension of phylum:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedPhylum) && (kc_selvar_0_2->prod_sel() == sel_ITPredefinedPhylum)) { |
| /* EMPTY */ |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPatternVariable)) { |
| const ID t_id = phylum_cast<const impl_IDtype_ITPatternVariable*>(kc_selvar_0_1)->ID_1; |
| const integer t_scope = phylum_cast<const impl_IDtype_ITPatternVariable*>(kc_selvar_0_1)->integer_1; |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of", uid->type, "as pattern variable:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserRView)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as rewrite view", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedRView)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as rewrite view", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserUView)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as unparse view", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedUView)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as unparse view", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserFunction)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of", uid->type, "as function:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITStorageClass)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as storage class:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedStorageClass)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as storage class:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserOperator)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedOperator)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as operator:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITUserPhylum)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as phylum:", id )); |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_ITPredefinedPhylum)) { |
| |
| NF(id, Problem1S1t1S1ID( "illegal extension of ", uid->type, "as phylum", id )); |
| } else |
| kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); |
| } |
| |
| } |
| |
| bool f_useoccuroperator(ID id) |
| {{ |
| ID kc_selvar_0_1 = phylum_cast<ID>(id); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| { |
| IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_1_1->prod_sel() == sel_ITUserOperator)) { |
| return true; |
| } else |
| if ((kc_selvar_1_1->prod_sel() == sel_ITPredefinedOperator)) { |
| |
| NF(id, Problem1S1ID( "undefined operator (it's predefined, you're not supposed to use those):", id )); |
| return false; |
| } else |
| { |
| NF(id, Problem1S1tID( "undefined operator", id )); return false; |
| } |
| } |
| |
| } else |
| { kc_no_default_in_with( "f_useoccuroperator", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } |
| |
| bool f_warnifnotvariable(ID id) |
| {{ |
| ID kc_selvar_0_1 = phylum_cast<ID>(id); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| { |
| IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_1_1->prod_sel() == sel_ITUnknown)) { |
| return false; |
| } else |
| if ((kc_selvar_1_1->prod_sel() == sel_ITPatternVariable)) { |
| return false; |
| } else |
| { |
| NF(id, Problem1S1tID( "variable expected:", id )); return true; |
| } |
| } |
| |
| } else |
| { kc_no_default_in_with( "f_warnifnotvariable", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } |
| |
| bool f_useoccurphylum(ID id) |
| {{ |
| ID kc_selvar_0_1 = phylum_cast<ID>(id); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| { |
| IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_1_1->prod_sel() == sel_ITUserPhylum)) { |
| return true; |
| } else |
| if ((kc_selvar_1_1->prod_sel() == sel_ITPredefinedPhylum)) { |
| return true; |
| } else |
| { |
| NF(id, Problem1S1tID( "undefined phylum", id )); return false; |
| } |
| } |
| |
| } else |
| { kc_no_default_in_with( "f_useoccurphylum", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } |
| |
| bool f_useoccurlistphylum(ID id) |
| {{ |
| ID kc_selvar_0_1 = phylum_cast<ID>(id); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| { |
| IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_1_1->prod_sel() == sel_ITUserPhylum)) { |
| const phylumdeclaration pd = phylum_cast<const impl_IDtype_ITUserPhylum*>(kc_selvar_1_1)->phylumdeclaration_1; |
| { |
| phylumdeclaration kc_selvar_2_1 = phylum_cast<phylumdeclaration>( pd ); |
| if ((kc_selvar_2_1->prod_sel() == sel_PhylumDeclaration) && (phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_2_1)->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) { |
| |
| NF(id, Problem1S1ID( "undefined list phylum (it's a predefined phylum):", id )); |
| return false; |
| } else |
| if ((kc_selvar_2_1->prod_sel() == sel_PhylumDeclaration) && (phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_2_1)->productionblock_1->prod_sel() == sel_NonlistAlternatives)) { |
| |
| NF(id, Problem1S1ID( "undefined list phylum (it's a non-list phylum):", id )); |
| return false; |
| } else |
| if ((kc_selvar_2_1->prod_sel() == sel_PhylumDeclaration) && (phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_2_1)->productionblock_1->prod_sel() == sel_ListAlternatives)) { |
| return true; |
| } else |
| if ((kc_selvar_2_1->prod_sel() == sel_PhylumDeclaration) && (phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_2_1)->productionblock_1->prod_sel() == sel_Emptyproductionblock)) { |
| |
| NF(id, Problem1S1ID( "undefined list phylum (the productionblock is empty):", id )); |
| return false; |
| } else |
| { kc_no_default_in_with( "f_useoccurlistphylum", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } else |
| { |
| NF(id, Problem1S1tID( "undefined list phylum", id )); return false; |
| } |
| } |
| |
| } else |
| { kc_no_default_in_with( "f_useoccurlistphylum", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } |
| |
| bool f_useoccuruviewname(ID id) |
| {{ |
| ID kc_selvar_0_1 = phylum_cast<ID>(id); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| { |
| IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_1_1->prod_sel() == sel_ITUserUView)) { |
| return true; |
| } else |
| if ((kc_selvar_1_1->prod_sel() == sel_ITPredefinedUView)) { |
| return true; |
| } else |
| { |
| NF(id, Problem1S1tID( "undefined unparse view:", id )); return false; |
| } |
| } |
| |
| } else |
| { kc_no_default_in_with( "f_useoccuruviewname", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } |
| |
| bool f_useoccurrviewname(ID id) |
| {{ |
| ID kc_selvar_0_1 = phylum_cast<ID>(id); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| { |
| IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_1_1->prod_sel() == sel_ITUserRView)) { |
| return true; |
| } else |
| if ((kc_selvar_1_1->prod_sel() == sel_ITPredefinedRView)) { |
| return true; |
| } else |
| { |
| NF(id, Problem1S1tID( "undefined rewrite view:", id )); return false; |
| } |
| } |
| |
| } else |
| { kc_no_default_in_with( "f_useoccurrviewname", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } |
| |
| bool f_useoccurstorageclass(ID id) |
| {{ |
| ID kc_selvar_0_1 = phylum_cast<ID>(id); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| { |
| IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_1_1->prod_sel() == sel_ITStorageClass)) { |
| return true; |
| } else |
| if ((kc_selvar_1_1->prod_sel() == sel_ITPredefinedStorageClass)) { |
| return true; |
| } else |
| { |
| NF(id, Problem1S1tID( "undefined storage class:", id )); return false; |
| } |
| } |
| |
| } else |
| { kc_no_default_in_with( "f_useoccurstorageclass", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } |
| |
| static bool occurlanguagename(ID id) |
| { |
| { |
| languagenames kc_fe_selvar_1 = Thelanguages; |
| |
| while( |
| kc_fe_selvar_1->prod_sel() == sel_Conslanguagenames |
| ) { |
| ID kc_selvar_0_1 = kc_fe_selvar_1->ID_1; |
| { |
| { |
| { |
| const ID l_id = kc_selvar_0_1; |
| |
| if(id->eq(l_id)) { |
| return true; |
| } |
| |
| } |
| } |
| |
| } |
| kc_fe_selvar_1 = kc_fe_selvar_1->languagenames_1; |
| |
| } |
| } |
| v_report(Fatal( FileLine( id->file, id->line ), |
| Problem1S1tID( "undefined language name:", id ))); |
| return false; |
| |
| } |
| |
| bool f_useoccurlanguagename(languagenames names) |
| {{ |
| languagenames kc_selvar_0_1 = phylum_cast<languagenames>(names); |
| if ((kc_selvar_0_1->prod_sel() == sel_Nillanguagenames)) { |
| return true; |
| } else |
| if ((kc_selvar_0_1->prod_sel() == sel_Conslanguagenames)) { |
| const ID id = (kc_selvar_0_1)->ID_1; |
| const languagenames tail = (kc_selvar_0_1)->languagenames_1; |
| |
| bool res=f_useoccurlanguagename( tail ); |
| return occurlanguagename( id ) && res; |
| |
| } else |
| { kc_no_default_in_with( "f_useoccurlanguagename", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } |
| |
| bool f_useoccurpatternvariable(ID id) |
| {{ |
| ID kc_selvar_0_1 = phylum_cast<ID>(id); |
| if ((kc_selvar_0_1->prod_sel() == sel_Id)) { |
| const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1; |
| { |
| IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type ); |
| if ((kc_selvar_1_1->prod_sel() == sel_ITPatternVariable)) { |
| return true; |
| } else |
| { |
| NF(id, Problem1S1tID( "undefined pattern variable:", id )); return false; |
| } |
| } |
| |
| } else |
| { kc_no_default_in_with( "f_useoccurpatternvariable", __LINE__, __FILE__ ); |
| return static_cast<bool>(0); } |
| } |
| |
| } |
| |
| |
| } // namespace kc |