%{ /* $Id: pvs_parser.y,v 1.28 2001/04/20 13:45:32 dirkl Exp $ $Log: pvs_parser.y,v $ Revision 1.28 2001/04/20 13:45:32 dirkl - added support for records in conds Revision 1.27 2001/03/14 11:13:54 sbeyer fixed judgement bug in grammar (dirkl) Revision 1.26 2001/01/29 12:52:01 dirkl - changed priority of IN and added new prec lambdabodyprec because of problems parsing "let a=b in x OR y" Revision 1.25 2001/01/25 10:44:18 sbeyer finally wrote real 'safe' functions for allocating and deallocation nodes and strings; allocated node is now initialized with zeroes Revision 1.24 2001/01/11 11:46:32 sbeyer renamed subknoten to sub in struct noten Revision 1.23 2001/01/10 12:22:25 sbeyer added source line and source file to node type Revision 1.22 2001/01/09 16:27:31 sbeyer *** empty log message *** Revision 1.21 2001/01/09 13:42:19 sbeyer corrected linenumber count (multiple files) and added filename to error output */ #include #include "tools.h" #include struct knoten *akt_wurzel; %} %union { char *identifier; char *string; char *zahl; struct knoten *tree; } %token ALL %token AND %token ANDTHEN %token ARRAY %token ASSUMING %token ASSUMPTION %token AXIOM %token ENDASSUMING %token BEGINN %token BUT %token BY %token CASES %token CHALLENGE %token CLAIM %token CLOSURE %token COND %token CONJECTURE %token CONTAINING %token CONVERSION %token COROLLARY %token DATATYPE %token ELSE %token ELSIF %token END %token ENDCASES %token ENDCOND %token ENDIF %token ENDTABLE %token EXISTS %token EXPORTING %token FACT %token FALSE %token FORALL %token FORMULA %token FROM %token FUNCTION %token HAS_TYPE %token IF %token IFF %token IMPLIES %token IMPORTING %token IN %token INDUCTIVE %token JUDGEMENT %token LAMBDA %token LAW %token LEMMA %token LET %token LIBRARY %token MEASURE %token NONEMPTY_TYPE %token NOT %token OBLIGATION %token OF %token OR %token ORELSE %token POSTULATE %token PROPOSITION %token RECURSIVE %token SUBLEMMA %token SUBTYPE_OF %token SUBTYPES %token TABLE %token THEN %token THEOREM %token THEORY %token TRUE %token TYPE %token TYPEPLUS %token VAR %token WHEN %token WHERE %token WITH %token XOR %token ECKKLAMMERAUF_RAUTE %token RAUTE_ECKKLAMMERZU %token KLAMMERAUF_DOPPELPUNKT %token DOPPELPUNKT_KLAMMERZU %token ECKKLAMMERAUF_PIPE %token PIPE_ECKKLAMMERZU %token KLAMMERAUF_RAUTE %token RAUTE_KLAMMERZU %token DOPPELPUNKT_DOPPELPUNKT %token OF %token MINUS_GROESSER %token DOPPELPUNKT_GLEICH %token PIPE_MINUS_GROESSER %token PIPE_ECKKLAMMERAUF %token ECKKLAMMERZU_PIPE %token PIPE_PIPE %token ECKKLAMMERAUF_PIPE_PIPE_ECKKLAMMERZU %token KLEINER_GLEICH_GROESSER %token GLEICH_GROESSER %token PLUS_PLUS %token MAL_MAL %token SLASH_SLASH %token DACH_DACH %token PIPE_MINUS %token PIPE_GLEICH %token KLEINER_PIPE %token PIPE_GROESSER %token SLASH_GLEICH %token GLEICH_GLEICH %token KLEINER_GLEICH %token GROESSER_GLEICH %token KLEINER_KLEINER %token GROESSER_GROESSER %token KLEINER_KLEINER_GLEICH %token GROESSER_GROESSER_GLEICH %token AT_AT %token RAUTE_RAUTE %token ECKKLAMMERAUF_ECKKLAMMERZU %token KLEINER_GROESSER %token O_OPERATOR %token ID %token IDAT %token NUMBER %token STRING %type adt_or_theories,adt_or_theory,theory_or_datatype,theory,datatype,adtcase_plus,adtcase; %type constructor,idopstype_expr_list,theoryformals,theoryformal_list,theoryformal; %type theoryformaldecl,exporting,exportings,expname_list,expname,exportingmods,assumingpart; %type assumings,assuming,pdformals_stern,theory_part,theory_elt,importing,modname_list; %type judgement,jdecl_list,jdecl,ename,conversion,ename_list,adformals,adformal,assuming_decl; %type theory_decl,lib_decl,mod_decl,type_decl,type_keyword,type_def,var_decl,const_decl; %type const_value,def_decl,ind_decl,assumption,formula_decl,type_expr,type_expr_sans_name; %type comp_type_expr,dep_type_expr_list,recordtype,field_decls_list,field_decls,fun_array; %type dep_type_expr,funarg,expr,cond_case_list,selection_list,bind,bind_list,elseif_plus; %type expr_leerlist,expr_list,assignment_list,set_expr,cond_case,lambda_body,lambda_formals; %type lambda_formal,set_formals,set_formal,selection,assignment,assign_arg_plus,assign_arg; %type table_expr,col_heading,expr_else_plus,expr_else_plus2,table_entries,table_entry; %type simplebind_list,simplebind,pdformals_plus,modnames,modname,mappings,mapdecl_list; %type mapdecl,typedecl_or_constdecl,idops,idop,ids,typeid,typeids,name,opsym,actuals; %type actual_list,actual,formulaname, %type ID; %type IDAT; %type STRING; %type NUMBER; %nonassoc CONST_GLEICH %left '[' %left '|' %left IN, lambdabodyprec %right PIPE_MINUS PIPE_GLEICH %right IFF KLEINER_GLEICH_GROESSER %right IMPLIES GLEICH_GROESSER WHEN %right OR BACKSLASH_BACKSLASH_SLASH XOR ORELSE %right AND '&' SLASH_BACKSLASH_BACKSLASH ANDTHEN %left NOT %nonassoc TILDE_INITIAL %left '=' SLASH_GLEICH GLEICH_GLEICH '<' KLEINER_GLEICH '>' GROESSER_GLEICH KLEINER_KLEINER GROESSER_GROESSER KLEINER_KLEINER_GLEICH GROESSER_GROESSER_GLEICH KLEINER_PIPE PIPE_GROESSER %left WITH %left WHERE %left '#' %left AT_AT RAUTE_RAUTE PIPE_PIPE %left '+' '-' PLUS_PLUS '~' %left '*' '/' MAL_MAL SLASH_SLASH %left UMINUS %left O_OPERATOR %left ':' DOPPELPUNKT_DOPPELPUNKT HAS_TYPE %left ECKKLAMMERAUF_ECKKLAMMERZU KLEINER_GROESSER %left '^' DACH_DACH %left '`' %left JUX %left ',' %left '(' %% adt_or_theories : adt_or_theory { $$=alloc_knoten(); $$->typ=adt_or_theories; $$->subtyp=0; $$->subanz=1; $$->sub[0]=$1; akt_wurzel=$$; $$->source_line=zeilennummer; $$->source_file=inputfile; } | adt_or_theories adt_or_theory { $$=alloc_knoten(); $$->typ=adt_or_theories; $$->subtyp=1; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; akt_wurzel=$$; $$->source_line=zeilennummer; $$->source_file=inputfile; } adt_or_theory : ID ':' theory_or_datatype { $$=alloc_knoten(); $$->typ=adt_or_theory; $$->subtyp=2; $$->subanz=2; $$->sub[0]=id_knoten($1); $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID theoryformals ':' theory_or_datatype { $$=alloc_knoten(); $$->typ=adt_or_theory; $$->subtyp=3; $$->subanz=3; $$->sub[0]=id_knoten($1); $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } theory_or_datatype : theory { $$=alloc_knoten(); $$->typ=theory_or_datatype; $$->subtyp=4; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | datatype { $$=alloc_knoten(); $$->typ=theory_or_datatype; $$->subtyp=5; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } theory : THEORY BEGINN END ID { $$=alloc_knoten(); $$->typ=theory; $$->subtyp=6; $$->subanz=1; $$->sub[0]=id_knoten($4); $$->source_line=zeilennummer; $$->source_file=inputfile; } | THEORY BEGINN theory_part END ID { $$=alloc_knoten(); $$->typ=theory; $$->subtyp=7; $$->subanz=2; $$->sub[0]=$3; $$->sub[1]=id_knoten($5); $$->source_line=zeilennummer; $$->source_file=inputfile; } | THEORY BEGINN assumingpart END ID { $$=alloc_knoten(); $$->typ=theory; $$->subtyp=8; $$->subanz=2; $$->sub[0]=$3; $$->sub[1]=id_knoten($5); $$->source_line=zeilennummer; $$->source_file=inputfile; } | THEORY BEGINN assumingpart theory_part END ID { $$=alloc_knoten(); $$->typ=theory; $$->subtyp=9; $$->subanz=3; $$->sub[0]=$3; $$->sub[1]=$4; $$->sub[2]=id_knoten($6); $$->source_line=zeilennummer; $$->source_file=inputfile; } | THEORY exporting BEGINN END ID { $$=alloc_knoten(); $$->typ=theory; $$->subtyp=10; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=id_knoten($5); $$->source_line=zeilennummer; $$->source_file=inputfile; } | THEORY exporting BEGINN theory_part END ID { $$=alloc_knoten(); $$->typ=theory; $$->subtyp=11; $$->subanz=3; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=id_knoten($6); $$->source_line=zeilennummer; $$->source_file=inputfile; } | THEORY exporting BEGINN assumingpart END ID { $$=alloc_knoten(); $$->typ=theory; $$->subtyp=12; $$->subanz=3; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=id_knoten($6); $$->source_line=zeilennummer; $$->source_file=inputfile; } | THEORY exporting BEGINN assumingpart theory_part END ID { $$=alloc_knoten(); $$->typ=theory; $$->subtyp=13; $$->subanz=4; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$5; $$->sub[3]=id_knoten($7); $$->source_line=zeilennummer; $$->source_file=inputfile; } datatype : DATATYPE BEGINN adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=14; $$->subanz=2; $$->sub[0]=$3; $$->sub[1]=id_knoten($5); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE BEGINN assumingpart adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=15; $$->subanz=3; $$->sub[0]=$3; $$->sub[1]=$4; $$->sub[2]=id_knoten($6); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE BEGINN importing adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=16; $$->subanz=3; $$->sub[0]=$3; $$->sub[1]=$4; $$->sub[2]=id_knoten($6); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE BEGINN importing assumingpart adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=17; $$->subanz=4; $$->sub[0]=$3; $$->sub[1]=$4; $$->sub[2]=$5; $$->sub[3]=id_knoten($7); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE BEGINN importing ';' adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=18; $$->subanz=3; $$->sub[0]=$3; $$->sub[1]=$5; $$->sub[2]=id_knoten($7); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE BEGINN importing ';' assumingpart adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=19; $$->subanz=4; $$->sub[0]=$3; $$->sub[1]=$5; $$->sub[2]=$6; $$->sub[3]=id_knoten($8); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE WITH SUBTYPES ids BEGINN adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=20; $$->subanz=3; $$->sub[0]=$4; $$->sub[1]=$6; $$->sub[2]=id_knoten($8); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE WITH SUBTYPES ids BEGINN assumingpart adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=21; $$->subanz=4; $$->sub[0]=$4; $$->sub[1]=$6; $$->sub[2]=$7; $$->sub[3]=id_knoten($9); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE WITH SUBTYPES ids BEGINN importing adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=22; $$->subanz=4; $$->sub[0]=$4; $$->sub[1]=$6; $$->sub[2]=$7; $$->sub[3]=id_knoten($9); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE WITH SUBTYPES ids BEGINN importing assumingpart adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=23; $$->subanz=5; $$->sub[0]=$4; $$->sub[1]=$6; $$->sub[2]=$7; $$->sub[3]=$8; $$->sub[4]=id_knoten($10); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE WITH SUBTYPES ids BEGINN importing ';' adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=24; $$->subanz=4; $$->sub[0]=$4; $$->sub[1]=$6; $$->sub[2]=$8; $$->sub[3]=id_knoten($10); $$->source_line=zeilennummer; $$->source_file=inputfile; } | DATATYPE WITH SUBTYPES ids BEGINN importing ';' assumingpart adtcase_plus END ID { $$=alloc_knoten(); $$->typ=datatype; $$->subtyp=25; $$->subanz=5; $$->sub[0]=$4; $$->sub[1]=$6; $$->sub[2]=$8; $$->sub[3]=$9; $$->sub[4]=id_knoten($11); $$->source_line=zeilennummer; $$->source_file=inputfile; } adtcase_plus : adtcase { $$=alloc_knoten(); $$->typ=adtcase_plus; $$->subtyp=26; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | adtcase_plus adtcase { $$=alloc_knoten(); $$->typ=adtcase_plus; $$->subtyp=27; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } adtcase : constructor ':' idop ':' ID { $$=alloc_knoten(); $$->typ=adtcase; $$->subtyp=28; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$3; $$->sub[2]=id_knoten($5); $$->source_line=zeilennummer; $$->source_file=inputfile; } | constructor ':' idop { $$=alloc_knoten(); $$->typ=adtcase; $$->subtyp=29; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } constructor : idop { $$=alloc_knoten(); $$->typ=constructor; $$->subtyp=30; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop '(' idopstype_expr_list ')' { $$=alloc_knoten(); $$->typ=constructor; $$->subtyp=31; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } idopstype_expr_list : idops ':' type_expr { $$=alloc_knoten(); $$->typ=idopstype_expr_list; $$->subtyp=32; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idopstype_expr_list ',' idops ':' type_expr { $$=alloc_knoten(); $$->typ=idopstype_expr_list; $$->subtyp=33; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$3; $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } theoryformals : '[' theoryformal_list ']' { $$=alloc_knoten(); $$->typ=theoryformals; $$->subtyp=34; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } theoryformal_list : theoryformal { $$=alloc_knoten(); $$->typ=theoryformal_list; $$->subtyp=35; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | theoryformal_list ',' theoryformal { $$=alloc_knoten(); $$->typ=theoryformal_list; $$->subtyp=36; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } theoryformal : '(' importing ')' idops ':' theoryformaldecl { $$=alloc_knoten(); $$->typ=theoryformal; $$->subtyp=37; $$->subanz=3; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$6; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops ':' theoryformaldecl { $$=alloc_knoten(); $$->typ=theoryformal; $$->subtyp=38; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } theoryformaldecl : type_keyword { $$=alloc_knoten(); $$->typ=theoryformaldecl; $$->subtyp=39; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | type_keyword FROM type_expr { $$=alloc_knoten(); $$->typ=theoryformaldecl; $$->subtyp=40; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | type_expr { $$=alloc_knoten(); $$->typ=theoryformaldecl; $$->subtyp=41; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } exporting : EXPORTING exportings { $$=alloc_knoten(); $$->typ=exporting; $$->subtyp=42; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | EXPORTING exportings WITH exportingmods { $$=alloc_knoten(); $$->typ=exporting; $$->subtyp=43; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } exportings : ALL { $$=alloc_knoten(); $$->typ=exportings; $$->subtyp=44; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ALL BUT expname_list { $$=alloc_knoten(); $$->typ=exportings; $$->subtyp=45; $$->subanz=1; $$->sub[0]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expname_list { $$=alloc_knoten(); $$->typ=exportings; $$->subtyp=46; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } expname_list : expname { $$=alloc_knoten(); $$->typ=expname_list; $$->subtyp=47; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expname ',' expname_list { $$=alloc_knoten(); $$->typ=expname_list; $$->subtyp=48; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } expname : idop { $$=alloc_knoten(); $$->typ=expname; $$->subtyp=49; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' type_expr { $$=alloc_knoten(); $$->typ=expname; $$->subtyp=50; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' TYPE { $$=alloc_knoten(); $$->typ=expname; $$->subtyp=51; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' FORMULA { $$=alloc_knoten(); $$->typ=expname; $$->subtyp=52; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '|' idop '|' { $$=alloc_knoten(); $$->typ=expname; $$->subtyp=53; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } exportingmods : ALL { $$=alloc_knoten(); $$->typ=exportingmods; $$->subtyp=54; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | CLOSURE { $$=alloc_knoten(); $$->typ=exportingmods; $$->subtyp=55; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | modnames { $$=alloc_knoten(); $$->typ=exportingmods; $$->subtyp=56; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } assumingpart : ASSUMING assumings ENDASSUMING { $$=alloc_knoten(); $$->typ=assumingpart; $$->subtyp=57; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } assumings : assuming { $$=alloc_knoten(); $$->typ=assumings; $$->subtyp=58; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | assuming assumings { $$=alloc_knoten(); $$->typ=assumings; $$->subtyp=59; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } assuming : importing ';' { $$=alloc_knoten(); $$->typ=assuming; $$->subtyp=60; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | importing { $$=alloc_knoten(); $$->typ=assuming; $$->subtyp=61; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | judgement { $$=alloc_knoten(); $$->typ=assuming; $$->subtyp=62; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | judgement ';' { $$=alloc_knoten(); $$->typ=assuming; $$->subtyp=63; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | conversion { $$=alloc_knoten(); $$->typ=assuming; $$->subtyp=64; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | conversion ';' { $$=alloc_knoten(); $$->typ=assuming; $$->subtyp=65; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } // | idops pdformals_stern ':' assuming_decl | idops pdformals_stern ':' assuming_decl ';' { $$=alloc_knoten(); $$->typ=assuming; $$->subtyp=66; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } pdformals_stern : { $$=alloc_knoten(); $$->typ=pdformals_stern; $$->subtyp=67; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | pdformals_plus { $$=alloc_knoten(); $$->typ=pdformals_stern; $$->subtyp=68; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } theory_part : theory_elt { $$=alloc_knoten(); $$->typ=theory_part; $$->subtyp=69; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | theory_part theory_elt { $$=alloc_knoten(); $$->typ=theory_part; $$->subtyp=70; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } theory_elt : importing ';' { $$=alloc_knoten(); $$->typ=theory_elt; $$->subtyp=71; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | importing { $$=alloc_knoten(); $$->typ=theory_elt; $$->subtyp=72; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | judgement { $$=alloc_knoten(); $$->typ=theory_elt; $$->subtyp=73; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | judgement ';' { $$=alloc_knoten(); $$->typ=theory_elt; $$->subtyp=74; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | conversion { $$=alloc_knoten(); $$->typ=theory_elt; $$->subtyp=75; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | conversion ';' { $$=alloc_knoten(); $$->typ=theory_elt; $$->subtyp=76; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } // | idops pdformals_stern ':' theory_decl | idops pdformals_stern ':' theory_decl ';' { $$=alloc_knoten(); $$->typ=theory_elt; $$->subtyp=77; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } importing : IMPORTING modname_list { $$=alloc_knoten(); $$->typ=importing; $$->subtyp=78; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } modname_list : modname { $$=alloc_knoten(); $$->typ=modname_list; $$->subtyp=79; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | modname_list ',' modname { $$=alloc_knoten(); $$->typ=modname_list; $$->subtyp=80; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } judgement : JUDGEMENT jdecl_list HAS_TYPE type_expr { $$=alloc_knoten(); $$->typ=judgement; $$->subtyp=81; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | JUDGEMENT jdecl_list SUBTYPE_OF type_expr { $$=alloc_knoten(); $$->typ=judgement; $$->subtyp=82; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } jdecl_list : jdecl { $$=alloc_knoten(); $$->typ=jdecl_list; $$->subtyp=83; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | jdecl_list ',' jdecl { $$=alloc_knoten(); $$->typ=jdecl_list; $$->subtyp=84; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } jdecl : type_expr_sans_name { $$=alloc_knoten(); $$->typ=jdecl; $$->subtyp=85; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | NUMBER { $$=alloc_knoten(); $$->typ=jdecl; $$->subtyp=86; $$->subanz=1; $$->sub[0]=number_knoten($1); $$->source_line=zeilennummer; $$->source_file=inputfile; } | name pdformals_stern { $$=alloc_knoten(); $$->typ=jdecl; $$->subtyp=87; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; // $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } ename : name { $$=alloc_knoten(); $$->typ=ename; $$->subtyp=88; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | name ':' type_expr { $$=alloc_knoten(); $$->typ=ename; $$->subtyp=89; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } conversion : CONVERSION ename_list { $$=alloc_knoten(); $$->typ=conversion; $$->subtyp=90; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } ename_list : ename { $$=alloc_knoten(); $$->typ=ename_list; $$->subtyp=91; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ename_list ',' ename { $$=alloc_knoten(); $$->typ=ename_list; $$->subtyp=92; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } adformals : adformal { $$=alloc_knoten(); $$->typ=adformals; $$->subtyp=93; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | adformal ',' adformals { $$=alloc_knoten(); $$->typ=adformals; $$->subtyp=94; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } adformal : typeid { $$=alloc_knoten(); $$->typ=adformal; $$->subtyp=95; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '(' typeids ')' { $$=alloc_knoten(); $$->typ=adformal; $$->subtyp=96; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } assuming_decl : theory_decl { $$=alloc_knoten(); $$->typ=assuming_decl; $$->subtyp=97; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | assumption { $$=alloc_knoten(); $$->typ=assuming_decl; $$->subtyp=98; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } theory_decl : lib_decl { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=99; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | mod_decl { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=100; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | type_decl { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=101; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | var_decl { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=102; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | const_decl { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=103; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | def_decl { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=104; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ind_decl { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=105; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | formula_decl { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=106; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | datatype { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=107; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | judgement { $$=alloc_knoten(); $$->typ=theory_decl; $$->subtyp=108; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } lib_decl : LIBRARY '=' STRING { $$=alloc_knoten(); $$->typ=lib_decl; $$->subtyp=109; $$->subanz=1; $$->sub[0]=string_knoten($3); $$->source_line=zeilennummer; $$->source_file=inputfile; } | LIBRARY STRING { $$=alloc_knoten(); $$->typ=lib_decl; $$->subtyp=110; $$->subanz=1; $$->sub[0]=string_knoten($2); $$->source_line=zeilennummer; $$->source_file=inputfile; } mod_decl : THEORY '=' modname { $$=alloc_knoten(); $$->typ=mod_decl; $$->subtyp=111; $$->subanz=1; $$->sub[0]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | THEORY modname { $$=alloc_knoten(); $$->typ=mod_decl; $$->subtyp=112; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } type_decl : type_keyword { $$=alloc_knoten(); $$->typ=type_decl; $$->subtyp=113; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | type_keyword type_def { $$=alloc_knoten(); $$->typ=type_decl; $$->subtyp=114; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | type_keyword type_def CONTAINING expr { $$=alloc_knoten(); $$->typ=type_decl; $$->subtyp=115; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } type_keyword : TYPE { $$=alloc_knoten(); $$->typ=type_keyword; $$->subtyp=116; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | NONEMPTY_TYPE { $$=alloc_knoten(); $$->typ=type_keyword; $$->subtyp=117; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | TYPEPLUS { $$=alloc_knoten(); $$->typ=type_keyword; $$->subtyp=118; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } type_def : '=' type_expr { $$=alloc_knoten(); $$->typ=type_def; $$->subtyp=119; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | FROM type_expr { $$=alloc_knoten(); $$->typ=type_def; $$->subtyp=120; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } var_decl : VAR type_expr { $$=alloc_knoten(); $$->typ=var_decl; $$->subtyp=121; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } const_decl : type_expr { $$=alloc_knoten(); $$->typ=const_decl; $$->subtyp=122; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | type_expr const_value { $$=alloc_knoten(); $$->typ=const_decl; $$->subtyp=123; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } const_value : '=' expr %prec CONST_GLEICH { $$=alloc_knoten(); $$->typ=const_value; $$->subtyp=124; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } def_decl : RECURSIVE type_expr '=' expr MEASURE expr { $$=alloc_knoten(); $$->typ=def_decl; $$->subtyp=125; $$->subanz=3; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$6; $$->source_line=zeilennummer; $$->source_file=inputfile; } | RECURSIVE type_expr '=' expr MEASURE expr BY expr { $$=alloc_knoten(); $$->typ=def_decl; $$->subtyp=126; $$->subanz=4; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$6; $$->sub[3]=$8; $$->source_line=zeilennummer; $$->source_file=inputfile; } ind_decl : INDUCTIVE type_expr '=' expr { $$=alloc_knoten(); $$->typ=ind_decl; $$->subtyp=127; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } assumption : ASSUMPTION expr { $$=alloc_knoten(); $$->typ=assumption; $$->subtyp=128; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } formula_decl : formulaname expr { $$=alloc_knoten(); $$->typ=formula_decl; $$->subtyp=129; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } type_expr : name '(' expr_list ')' { $$=alloc_knoten(); $$->typ=type_expr; $$->subtyp=130; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | name { $$=alloc_knoten(); $$->typ=type_expr; $$->subtyp=131; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | type_expr_sans_name { $$=alloc_knoten(); $$->typ=type_expr; $$->subtyp=132; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } type_expr_sans_name : '(' expr ')' { $$=alloc_knoten(); $$->typ=type_expr_sans_name; $$->subtyp=133; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '{' set_formals '}' { $$=alloc_knoten(); $$->typ=type_expr_sans_name; $$->subtyp=134; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '{' set_formals '|' expr '}' { $$=alloc_knoten(); $$->typ=type_expr_sans_name; $$->subtyp=135; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | comp_type_expr { $$=alloc_knoten(); $$->typ=type_expr_sans_name; $$->subtyp=136; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } comp_type_expr : recordtype { $$=alloc_knoten(); $$->typ=comp_type_expr; $$->subtyp=137; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '[' dep_type_expr_list MINUS_GROESSER type_expr ']' { $$=alloc_knoten(); $$->typ=comp_type_expr; $$->subtyp=138; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '[' MINUS_GROESSER type_expr ']' { $$=alloc_knoten(); $$->typ=comp_type_expr; $$->subtyp=139; $$->subanz=1; $$->sub[0]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | fun_array '[' dep_type_expr_list MINUS_GROESSER type_expr ']' { $$=alloc_knoten(); $$->typ=comp_type_expr; $$->subtyp=140; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$3; $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } | fun_array '[' MINUS_GROESSER type_expr ']' { $$=alloc_knoten(); $$->typ=comp_type_expr; $$->subtyp=141; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '[' dep_type_expr_list ']' { $$=alloc_knoten(); $$->typ=comp_type_expr; $$->subtyp=142; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '[' ']' { $$=alloc_knoten(); $$->typ=comp_type_expr; $$->subtyp=143; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | fun_array '[' dep_type_expr_list ']' { $$=alloc_knoten(); $$->typ=comp_type_expr; $$->subtyp=144; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | fun_array '[' ']' { $$=alloc_knoten(); $$->typ=comp_type_expr; $$->subtyp=145; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } dep_type_expr_list : dep_type_expr { $$=alloc_knoten(); $$->typ=dep_type_expr_list; $$->subtyp=146; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | dep_type_expr_list ',' dep_type_expr { $$=alloc_knoten(); $$->typ=dep_type_expr_list; $$->subtyp=147; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } recordtype : ECKKLAMMERAUF_RAUTE field_decls_list RAUTE_ECKKLAMMERZU { $$=alloc_knoten(); $$->typ=recordtype; $$->subtyp=148; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } field_decls_list : field_decls { $$=alloc_knoten(); $$->typ=field_decls_list; $$->subtyp=149; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | field_decls_list ',' field_decls { $$=alloc_knoten(); $$->typ=field_decls_list; $$->subtyp=150; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } field_decls : ids ':' type_expr { $$=alloc_knoten(); $$->typ=field_decls; $$->subtyp=151; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } fun_array : FUNCTION { $$=alloc_knoten(); $$->typ=fun_array; $$->subtyp=152; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ARRAY { $$=alloc_knoten(); $$->typ=fun_array; $$->subtyp=153; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } dep_type_expr : type_expr { $$=alloc_knoten(); $$->typ=dep_type_expr; $$->subtyp=154; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' type_expr { $$=alloc_knoten(); $$->typ=dep_type_expr; $$->subtyp=155; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } funarg : '(' expr_leerlist ')' { $$=alloc_knoten(); $$->typ=funarg; $$->subtyp=156; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } expr : NUMBER { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=157; $$->subanz=1; $$->sub[0]=number_knoten($1); $$->source_line=zeilennummer; $$->source_file=inputfile; } | STRING { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=158; $$->subanz=1; $$->sub[0]=string_knoten($1); $$->source_line=zeilennummer; $$->source_file=inputfile; } | name { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=159; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | KLAMMERAUF_DOPPELPUNKT expr_leerlist DOPPELPUNKT_KLAMMERZU { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=160; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ECKKLAMMERAUF_PIPE expr_leerlist PIPE_ECKKLAMMERZU { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=161; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | KLAMMERAUF_RAUTE assignment_list RAUTE_KLAMMERZU { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=162; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '(' ')' { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=163; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '(' expr_list ')' { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=164; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '`' ID { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=165; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=id_knoten($3); $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '`' NUMBER { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=166; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=number_knoten($3); $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr funarg %prec JUX { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=167; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr O_OPERATOR expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=168; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr IFF expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=169; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr KLEINER_GLEICH_GROESSER expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=170; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr IMPLIES expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=171; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr GLEICH_GROESSER expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=172; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr WHEN expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=173; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr OR expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=174; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr BACKSLASH_BACKSLASH_SLASH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=175; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr AND expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=176; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr SLASH_BACKSLASH_BACKSLASH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=177; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '&' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=178; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr XOR expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=179; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr ANDTHEN expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=180; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr ORELSE expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=181; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '^' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=182; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '+' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=183; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '-' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=184; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '*' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=185; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '/' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=186; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr PLUS_PLUS expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=187; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '~' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=188; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr MAL_MAL expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=189; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr SLASH_SLASH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=190; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr DACH_DACH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=191; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr PIPE_MINUS expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=192; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr PIPE_GLEICH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=193; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr KLEINER_PIPE expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=194; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr PIPE_GROESSER expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=195; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '=' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=196; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr SLASH_GLEICH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=197; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr GLEICH_GLEICH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=198; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '<' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=199; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr KLEINER_GLEICH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=200; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '>' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=201; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr GROESSER_GLEICH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=202; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr KLEINER_KLEINER expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=203; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr GROESSER_GROESSER expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=204; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr KLEINER_KLEINER_GLEICH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=205; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr GROESSER_GROESSER_GLEICH expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=206; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr '#' expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=207; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr AT_AT expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=208; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr RAUTE_RAUTE expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=209; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | NOT expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=210; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '~' expr %prec TILDE_INITIAL { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=211; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ECKKLAMMERAUF_ECKKLAMMERZU expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=212; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | KLEINER_GROESSER expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=213; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '-' expr %prec UMINUS { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=214; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr DOPPELPUNKT_DOPPELPUNKT name { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=215; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr DOPPELPUNKT_DOPPELPUNKT name '(' expr_list ')' { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=216; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$3; $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr DOPPELPUNKT_DOPPELPUNKT type_expr_sans_name { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=217; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | IF expr THEN expr ELSE expr ENDIF { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=218; $$->subanz=3; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$6; $$->source_line=zeilennummer; $$->source_file=inputfile; } | IF expr THEN expr elseif_plus ELSE expr ENDIF { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=219; $$->subanz=4; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$5; $$->sub[3]=$7; $$->source_line=zeilennummer; $$->source_file=inputfile; } | LAMBDA lambda_body { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=220; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | FORALL lambda_body { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=221; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | EXISTS lambda_body { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=222; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID '!' NUMBER { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=223; $$->subanz=2; $$->sub[0]=id_knoten($1); $$->sub[1]=number_knoten($3); $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID '!' lambda_body { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=224; $$->subanz=2; $$->sub[0]=id_knoten($1); $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | set_expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=225; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr WHERE bind_list { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=226; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | LET bind_list IN expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=227; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr WITH '[' assignment_list ']' { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=228; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | CASES expr OF selection_list ENDCASES { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=229; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | CASES expr OF selection_list ELSE expr ENDCASES { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=230; $$->subanz=3; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$6; $$->source_line=zeilennummer; $$->source_file=inputfile; } | COND cond_case_list ENDCOND { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=231; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | table_expr { $$=alloc_knoten(); $$->typ=expr; $$->subtyp=232; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } cond_case_list : cond_case { $$=alloc_knoten(); $$->typ=cond_case_list; $$->subtyp=233; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | cond_case ',' cond_case_list { $$=alloc_knoten(); $$->typ=cond_case_list; $$->subtyp=234; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | cond_case ',' ELSE MINUS_GROESSER expr { $$=alloc_knoten(); $$->typ=cond_case_list; $$->subtyp=235; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } selection_list : selection { $$=alloc_knoten(); $$->typ=selection_list; $$->subtyp=236; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | selection_list ',' selection { $$=alloc_knoten(); $$->typ=selection_list; $$->subtyp=237; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } bind : '(' simplebind_list ')' '=' expr %prec CONST_GLEICH { $$=alloc_knoten(); $$->typ=bind; $$->subtyp=238; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } | simplebind '=' expr %prec CONST_GLEICH { $$=alloc_knoten(); $$->typ=bind; $$->subtyp=239; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } bind_list : bind { $$=alloc_knoten(); $$->typ=bind_list; $$->subtyp=240; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | bind_list ',' bind { $$=alloc_knoten(); $$->typ=bind_list; $$->subtyp=241; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } elseif_plus : ELSIF expr THEN expr { $$=alloc_knoten(); $$->typ=elseif_plus; $$->subtyp=242; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ELSIF expr THEN expr elseif_plus { $$=alloc_knoten(); $$->typ=elseif_plus; $$->subtyp=243; $$->subanz=3; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } expr_leerlist : { $$=alloc_knoten(); $$->typ=expr_leerlist; $$->subtyp=244; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr_list { $$=alloc_knoten(); $$->typ=expr_leerlist; $$->subtyp=245; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } expr_list : expr { $$=alloc_knoten(); $$->typ=expr_list; $$->subtyp=246; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | expr ',' expr_list { $$=alloc_knoten(); $$->typ=expr_list; $$->subtyp=247; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } assignment_list : assignment { $$=alloc_knoten(); $$->typ=assignment_list; $$->subtyp=248; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | assignment_list ',' assignment { $$=alloc_knoten(); $$->typ=assignment_list; $$->subtyp=249; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } set_expr : '{' set_formals '|' expr '}' { $$=alloc_knoten(); $$->typ=set_expr; $$->subtyp=250; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } cond_case : expr MINUS_GROESSER expr { $$=alloc_knoten(); $$->typ=cond_case; $$->subtyp=251; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } lambda_body : lambda_formals ':' expr %prec lambdabodyprec { $$=alloc_knoten(); $$->typ=lambda_body; $$->subtyp=252; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } lambda_formals : lambda_formal { $$=alloc_knoten(); $$->typ=lambda_formals; $$->subtyp=253; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | lambda_formal lambda_formals { $$=alloc_knoten(); $$->typ=lambda_formals; $$->subtyp=254; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | lambda_formal ',' lambda_formals { $$=alloc_knoten(); $$->typ=lambda_formals; $$->subtyp=255; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } lambda_formal : idop { $$=alloc_knoten(); $$->typ=lambda_formal; $$->subtyp=256; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '(' adformals ')' { $$=alloc_knoten(); $$->typ=lambda_formal; $$->subtyp=257; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } set_formals : set_formal { $$=alloc_knoten(); $$->typ=set_formals; $$->subtyp=258; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | set_formals set_formal { $$=alloc_knoten(); $$->typ=set_formals; $$->subtyp=259; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | set_formals ',' set_formal { $$=alloc_knoten(); $$->typ=set_formals; $$->subtyp=260; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } set_formal : idop { $$=alloc_knoten(); $$->typ=set_formal; $$->subtyp=261; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' name { $$=alloc_knoten(); $$->typ=set_formal; $$->subtyp=262; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' name '(' expr_list ')' { $$=alloc_knoten(); $$->typ=set_formal; $$->subtyp=263; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$3; $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' type_expr_sans_name { $$=alloc_knoten(); $$->typ=set_formal; $$->subtyp=264; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '(' adformals ')' { $$=alloc_knoten(); $$->typ=set_formal; $$->subtyp=265; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } selection : idop ':' expr { $$=alloc_knoten(); $$->typ=selection; $$->subtyp=266; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop '(' idops ')' ':' expr { $$=alloc_knoten(); $$->typ=selection; $$->subtyp=267; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$3; $$->sub[2]=$6; $$->source_line=zeilennummer; $$->source_file=inputfile; } assignment : assign_arg_plus DOPPELPUNKT_GLEICH expr { $$=alloc_knoten(); $$->typ=assignment; $$->subtyp=268; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | assign_arg_plus PIPE_MINUS_GROESSER expr { $$=alloc_knoten(); $$->typ=assignment; $$->subtyp=269; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } assign_arg_plus : assign_arg { $$=alloc_knoten(); $$->typ=assign_arg_plus; $$->subtyp=270; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | assign_arg assign_arg_plus { $$=alloc_knoten(); $$->typ=assign_arg_plus; $$->subtyp=271; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } assign_arg : '(' expr_leerlist ')' { $$=alloc_knoten(); $$->typ=assign_arg; $$->subtyp=272; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '`' ID { $$=alloc_knoten(); $$->typ=assign_arg; $$->subtyp=273; $$->subanz=1; $$->sub[0]=id_knoten($2); $$->source_line=zeilennummer; $$->source_file=inputfile; } | '`' NUMBER { $$=alloc_knoten(); $$->typ=assign_arg; $$->subtyp=274; $$->subanz=1; $$->sub[0]=number_knoten($2); $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID { $$=alloc_knoten(); $$->typ=assign_arg; $$->subtyp=275; $$->subanz=1; $$->sub[0]=id_knoten($1); $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID '!' NUMBER { $$=alloc_knoten(); $$->typ=assign_arg; $$->subtyp=276; $$->subanz=2; $$->sub[0]=id_knoten($1); $$->sub[1]=number_knoten($3); $$->source_line=zeilennummer; $$->source_file=inputfile; } | NUMBER { $$=alloc_knoten(); $$->typ=assign_arg; $$->subtyp=277; $$->subanz=1; $$->sub[0]=number_knoten($1); $$->source_line=zeilennummer; $$->source_file=inputfile; } table_expr : TABLE table_entries ENDTABLE { $$=alloc_knoten(); $$->typ=table_expr; $$->subtyp=278; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | TABLE col_heading table_entries ENDTABLE { $$=alloc_knoten(); $$->typ=table_expr; $$->subtyp=279; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | TABLE ',' expr table_entries ENDTABLE { $$=alloc_knoten(); $$->typ=table_expr; $$->subtyp=280; $$->subanz=2; $$->sub[0]=$3; $$->sub[1]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | TABLE ',' expr col_heading table_entries ENDTABLE { $$=alloc_knoten(); $$->typ=table_expr; $$->subtyp=281; $$->subanz=3; $$->sub[0]=$3; $$->sub[1]=$4; $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } | TABLE expr table_entries ENDTABLE { $$=alloc_knoten(); $$->typ=table_expr; $$->subtyp=282; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | TABLE expr col_heading table_entries ENDTABLE { $$=alloc_knoten(); $$->typ=table_expr; $$->subtyp=283; $$->subanz=3; $$->sub[0]=$2; $$->sub[1]=$3; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | TABLE expr ',' expr table_entries ENDTABLE { $$=alloc_knoten(); $$->typ=table_expr; $$->subtyp=284; $$->subanz=3; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } | TABLE expr ',' expr col_heading table_entries ENDTABLE { $$=alloc_knoten(); $$->typ=table_expr; $$->subtyp=285; $$->subanz=4; $$->sub[0]=$2; $$->sub[1]=$4; $$->sub[2]=$5; $$->sub[3]=$6; $$->source_line=zeilennummer; $$->source_file=inputfile; } col_heading : PIPE_ECKKLAMMERAUF expr expr_else_plus ECKKLAMMERZU_PIPE { $$=alloc_knoten(); $$->typ=col_heading; $$->subtyp=286; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } expr_else_plus : '|' expr { $$=alloc_knoten(); $$->typ=expr_else_plus; $$->subtyp=287; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '|' ELSE { $$=alloc_knoten(); $$->typ=expr_else_plus; $$->subtyp=288; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '|' expr expr_else_plus { $$=alloc_knoten(); $$->typ=expr_else_plus; $$->subtyp=289; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '|' ELSE expr_else_plus { $$=alloc_knoten(); $$->typ=expr_else_plus; $$->subtyp=290; $$->subanz=1; $$->sub[0]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } expr_else_plus2 : '|' { $$=alloc_knoten(); $$->typ=expr_else_plus2; $$->subtyp=291; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '|' expr { $$=alloc_knoten(); $$->typ=expr_else_plus2; $$->subtyp=292; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '|' ELSE { $$=alloc_knoten(); $$->typ=expr_else_plus2; $$->subtyp=293; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '|' expr_else_plus2 { $$=alloc_knoten(); $$->typ=expr_else_plus2; $$->subtyp=294; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '|' expr expr_else_plus2 { $$=alloc_knoten(); $$->typ=expr_else_plus2; $$->subtyp=295; $$->subanz=2; $$->sub[0]=$2; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '|' ELSE expr_else_plus2 { $$=alloc_knoten(); $$->typ=expr_else_plus2; $$->subtyp=296; $$->subanz=1; $$->sub[0]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } table_entries : table_entry { $$=alloc_knoten(); $$->typ=table_entries; $$->subtyp=297; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | table_entry table_entries { $$=alloc_knoten(); $$->typ=table_entries; $$->subtyp=298; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } table_entry : expr_else_plus2 PIPE_PIPE { $$=alloc_knoten(); $$->typ=table_entry; $$->subtyp=299; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } simplebind_list : simplebind { $$=alloc_knoten(); $$->typ=simplebind_list; $$->subtyp=300; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | simplebind_list ',' simplebind { $$=alloc_knoten(); $$->typ=simplebind_list; $$->subtyp=301; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } simplebind : idop { $$=alloc_knoten(); $$->typ=simplebind; $$->subtyp=302; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop pdformals_plus { $$=alloc_knoten(); $$->typ=simplebind; $$->subtyp=303; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' type_expr { $$=alloc_knoten(); $$->typ=simplebind; $$->subtyp=304; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop pdformals_plus ':' type_expr { $$=alloc_knoten(); $$->typ=simplebind; $$->subtyp=305; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } pdformals_plus : '(' adformals ')' { $$=alloc_knoten(); $$->typ=pdformals_plus; $$->subtyp=306; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | pdformals_plus '(' adformals ')' { $$=alloc_knoten(); $$->typ=pdformals_plus; $$->subtyp=307; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } modnames : modname { $$=alloc_knoten(); $$->typ=modnames; $$->subtyp=308; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | modname ',' modnames { $$=alloc_knoten(); $$->typ=modnames; $$->subtyp=309; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } modname : IDAT ID { $$=alloc_knoten(); $$->typ=modname; $$->subtyp=310; $$->subanz=2; $$->sub[0]=idat_knoten($1); $$->sub[1]=id_knoten($2); $$->source_line=zeilennummer; $$->source_file=inputfile; } | IDAT ID actuals { $$=alloc_knoten(); $$->typ=modname; $$->subtyp=311; $$->subanz=3; $$->sub[0]=idat_knoten($1); $$->sub[1]=id_knoten($2); $$->sub[2]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | IDAT ID mappings { $$=alloc_knoten(); $$->typ=modname; $$->subtyp=312; $$->subanz=3; $$->sub[0]=idat_knoten($1); $$->sub[1]=id_knoten($2); $$->sub[2]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | IDAT ID actuals mappings { $$=alloc_knoten(); $$->typ=modname; $$->subtyp=313; $$->subanz=4; $$->sub[0]=idat_knoten($1); $$->sub[1]=id_knoten($2); $$->sub[2]=$3; $$->sub[3]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID { $$=alloc_knoten(); $$->typ=modname; $$->subtyp=314; $$->subanz=1; $$->sub[0]=id_knoten($1); $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID actuals { $$=alloc_knoten(); $$->typ=modname; $$->subtyp=315; $$->subanz=2; $$->sub[0]=id_knoten($1); $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID mappings { $$=alloc_knoten(); $$->typ=modname; $$->subtyp=316; $$->subanz=2; $$->sub[0]=id_knoten($1); $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID actuals mappings { $$=alloc_knoten(); $$->typ=modname; $$->subtyp=317; $$->subanz=3; $$->sub[0]=id_knoten($1); $$->sub[1]=$2; $$->sub[2]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } mappings : '{' mapdecl_list '}' { $$=alloc_knoten(); $$->typ=mappings; $$->subtyp=318; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } mapdecl_list : mapdecl { $$=alloc_knoten(); $$->typ=mapdecl_list; $$->subtyp=319; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | mapdecl_list ',' mapdecl { $$=alloc_knoten(); $$->typ=mapdecl_list; $$->subtyp=320; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } mapdecl : idops ':' typedecl_or_constdecl { $$=alloc_knoten(); $$->typ=mapdecl; $$->subtyp=321; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops ':' typedecl_or_constdecl ';' { $$=alloc_knoten(); $$->typ=mapdecl; $$->subtyp=322; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops pdformals_plus ':' typedecl_or_constdecl { $$=alloc_knoten(); $$->typ=mapdecl; $$->subtyp=323; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops pdformals_plus ':' typedecl_or_constdecl ';' { $$=alloc_knoten(); $$->typ=mapdecl; $$->subtyp=324; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops theoryformals ':' typedecl_or_constdecl { $$=alloc_knoten(); $$->typ=mapdecl; $$->subtyp=325; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops theoryformals ':' typedecl_or_constdecl ';' { $$=alloc_knoten(); $$->typ=mapdecl; $$->subtyp=326; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } typedecl_or_constdecl: type_decl { $$=alloc_knoten(); $$->typ=typedecl_or_constdecl; $$->subtyp=327; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | const_decl { $$=alloc_knoten(); $$->typ=typedecl_or_constdecl; $$->subtyp=328; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } idops : idop { $$=alloc_knoten(); $$->typ=idops; $$->subtyp=329; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops ',' idop { $$=alloc_knoten(); $$->typ=idops; $$->subtyp=330; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } idop : ID { $$=alloc_knoten(); $$->typ=idop; $$->subtyp=331; $$->subanz=1; $$->sub[0]=id_knoten($1); $$->source_line=zeilennummer; $$->source_file=inputfile; } | opsym { $$=alloc_knoten(); $$->typ=idop; $$->subtyp=332; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } ids : ID { $$=alloc_knoten(); $$->typ=ids; $$->subtyp=333; $$->subanz=1; $$->sub[0]=id_knoten($1); $$->source_line=zeilennummer; $$->source_file=inputfile; } | ID ',' ids { $$=alloc_knoten(); $$->typ=ids; $$->subtyp=334; $$->subanz=2; $$->sub[0]=id_knoten($1); $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } typeid : idop { $$=alloc_knoten(); $$->typ=typeid; $$->subtyp=335; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop '|' expr { $$=alloc_knoten(); $$->typ=typeid; $$->subtyp=336; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' type_expr { $$=alloc_knoten(); $$->typ=typeid; $$->subtyp=337; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop ':' type_expr '|' expr { $$=alloc_knoten(); $$->typ=typeid; $$->subtyp=338; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$3; $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } typeids : idops { $$=alloc_knoten(); $$->typ=typeids; $$->subtyp=339; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops '|' expr { $$=alloc_knoten(); $$->typ=typeids; $$->subtyp=340; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops ':' type_expr { $$=alloc_knoten(); $$->typ=typeids; $$->subtyp=341; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idops ':' type_expr '|' expr { $$=alloc_knoten(); $$->typ=typeids; $$->subtyp=342; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$3; $$->sub[2]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } name : IDAT idop { $$=alloc_knoten(); $$->typ=name_token; $$->subtyp=343; $$->subanz=2; $$->sub[0]=idat_knoten($1); $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | IDAT idop actuals { $$=alloc_knoten(); $$->typ=name_token; $$->subtyp=344; $$->subanz=3; $$->sub[0]=idat_knoten($1); $$->sub[1]=$2; $$->sub[2]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | IDAT idop '.' idop { $$=alloc_knoten(); $$->typ=name_token; $$->subtyp=345; $$->subanz=3; $$->sub[0]=idat_knoten($1); $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } | IDAT idop actuals '.' idop { $$=alloc_knoten(); $$->typ=name_token; $$->subtyp=346; $$->subanz=4; $$->sub[0]=idat_knoten($1); $$->sub[1]=$2; $$->sub[2]=$3; $$->sub[3]=$5; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop { $$=alloc_knoten(); $$->typ=name_token; $$->subtyp=347; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop actuals { $$=alloc_knoten(); $$->typ=name_token; $$->subtyp=348; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop '.' idop { $$=alloc_knoten(); $$->typ=name_token; $$->subtyp=349; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } | idop actuals '.' idop { $$=alloc_knoten(); $$->typ=name_token; $$->subtyp=350; $$->subanz=3; $$->sub[0]=$1; $$->sub[1]=$2; $$->sub[2]=$4; $$->source_line=zeilennummer; $$->source_file=inputfile; } opsym : '+' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=351; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '-' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=352; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '*' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=353; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '/' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=354; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '=' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=355; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | SLASH_GLEICH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=356; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | GLEICH_GLEICH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=357; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '<' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=358; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | KLEINER_GLEICH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=359; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '>' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=360; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | GROESSER_GLEICH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=361; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | IFF { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=362; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | IMPLIES { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=363; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | WHEN { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=364; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | OR { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=365; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | AND { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=366; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | NOT { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=367; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '&' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=368; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | SLASH_BACKSLASH_BACKSLASH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=369; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | BACKSLASH_BACKSLASH_SLASH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=370; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '^' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=371; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ECKKLAMMERAUF_ECKKLAMMERZU { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=372; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | KLEINER_GROESSER { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=373; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '~' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=374; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | GLEICH_GROESSER { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=375; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | KLEINER_GLEICH_GROESSER { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=376; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } // | IF | TRUE { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=377; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | FALSE { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=378; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | O_OPERATOR { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=379; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | XOR { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=380; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ORELSE { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=381; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ANDTHEN { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=382; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | PLUS_PLUS { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=383; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | MAL_MAL { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=384; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | SLASH_SLASH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=385; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | DACH_DACH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=386; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | KLEINER_KLEINER { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=387; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | GROESSER_GROESSER { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=388; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | KLEINER_KLEINER_GLEICH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=389; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | GROESSER_GROESSER_GLEICH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=390; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | '#' { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=391; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | AT_AT { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=392; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | RAUTE_RAUTE { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=393; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | PIPE_MINUS { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=394; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | PIPE_GLEICH { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=395; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | KLEINER_PIPE { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=396; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | PIPE_GROESSER { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=397; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | ECKKLAMMERAUF_PIPE_PIPE_ECKKLAMMERZU { $$=alloc_knoten(); $$->typ=opsym; $$->subtyp=398; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } actuals : '[' actual_list ']' { $$=alloc_knoten(); $$->typ=actuals; $$->subtyp=399; $$->subanz=1; $$->sub[0]=$2; $$->source_line=zeilennummer; $$->source_file=inputfile; } actual_list : actual { $$=alloc_knoten(); $$->typ=actual_list; $$->subtyp=400; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | actual_list ',' actual { $$=alloc_knoten(); $$->typ=actual_list; $$->subtyp=401; $$->subanz=2; $$->sub[0]=$1; $$->sub[1]=$3; $$->source_line=zeilennummer; $$->source_file=inputfile; } actual : expr { $$=alloc_knoten(); $$->typ=actual; $$->subtyp=402; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } | comp_type_expr { $$=alloc_knoten(); $$->typ=actual; $$->subtyp=403; $$->subanz=1; $$->sub[0]=$1; $$->source_line=zeilennummer; $$->source_file=inputfile; } formulaname : AXIOM { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=404; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | CHALLENGE { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=405; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | CLAIM { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=406; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | CONJECTURE { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=407; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | COROLLARY { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=408; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | FACT { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=409; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | FORMULA { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=410; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | LAW { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=411; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | LEMMA { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=412; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | OBLIGATION { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=413; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | POSTULATE { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=414; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | PROPOSITION { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=415; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | SUBLEMMA { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=416; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } | THEOREM { $$=alloc_knoten(); $$->typ=formulaname; $$->subtyp=417; $$->subanz=0; $$->source_line=zeilennummer; $$->source_file=inputfile; } %% struct knoten *pvs_parser(const char *dateiname) { extern FILE *yyin; zeilennummer=1; inputfile=dateiname; if (parameter_verbose) { printf("Parse Datei %s.\t",inputfile); } yyin=fopen(inputfile,"r"); if (yyin==NULL) { printf ("Could not open file %s.\n",inputfile); exit(1); } yyparse(); if (parameter_verbose) { printf("OK\n"); } return akt_wurzel; }