1
/* A Bison parser, made by GNU Bison 2.3. */
2
/* A Bison parser, made by GNU Bison 2.4.1. */
3
4
/* Skeleton implementation for Bison's Yacc-like parsers in C
5
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6
7
Free Software Foundation, Inc.
8
This program is free software; you can redistribute it and/or modify
9
This program is free software: you can redistribute it and/or modify
9
10
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation; either version 2, or (at your option)
11
the Free Software Foundation, either version 3 of the License, or
12
(at your option) any later version.
13
14
This program is distributed in the hope that it will be useful,
14
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
17
GNU General Public License for more details.
18
19
You should have received a copy of the GNU General Public License
19
along with this program; if not, write to the Free Software
20
Foundation, Inc., 51 Franklin Street, Fifth Floor,
21
Boston, MA 02110-1301, USA. */
20
along with this program. If not, see <http://www.gnu.org/licenses/>. */
23
22
/* As a special exception, you may create a larger work that contains
24
23
part or all of the Bison parser skeleton and distribute that work
55
54
/* Pure parsers. */
58
63
/* Using locations. */
59
64
#define YYLSP_NEEDED 0
68
/* Copy the first part of user declarations. */
70
/* Line 189 of yacc.c */
74
/***************************************************************************
75
parser.yy - description
77
begin : Mit Jul 12 22:54:51 MEST 2000
78
copyright : (C) 2000 by Immi
79
email : cuyo@pcpool.mathematik.uni-freiburg.de
80
***************************************************************************/
82
/***************************************************************************
84
* This program is free software; you can redistribute it and/or modify *
85
* it under the terms of the GNU General Public License as published by *
86
* the Free Software Foundation; either version 2 of the License, or *
87
* (at your option) any later version. *
89
***************************************************************************/
101
#include "leveldaten.h"
104
#define YYMALLOC malloc
108
/***********************************************************************/
109
/* Globale Parse-Variablen */
111
/** F�r Fehlerausgabe: Aktueller Dateiname */
113
/** F�r Fehlerausgabe: Aktuelle Zeilen-Nummer */
116
/** True, wenn es w�hrend des Parsens (mindestens) einen Fehler gab. */
120
/** Wenn der Parser aufgerufen wird, muss in DefKnoten schon ein DefKnoten
121
stehen, an den alles geparste angef�gt wird. Normalerweise erzeugt man
122
einen neuen Defknoten. Beim Includen will man da aber schon was drin
124
Siehe auch %type <defknoten> alles */
125
static DefKnoten * gAktDefKnoten;
127
//#define MAX_INCLUDE_TIEFE 16
128
/** YY_BUFFER_STATE ist ein flex-Datentyp f�r eine Datei, an der grade
130
//static YY_BUFFER_STATE gIncludeStack[MAX_INCLUDE_TIEFE];
131
/** Aktuelle Include-Tiefe. (0 bei Hauptdatei) */
132
//static int gIncludeTiefe;
134
//static DefKnoten * gIncludeMerk;
137
/* Beim Erzeugen eines Codes m�ssen einige Variablen jedes Mal �bergeben
139
- der zugeh�rige DefKnoten, damit ggf. noch Variablen reserviert werden
140
k�nnen (genauer: die Busy-Variable).
141
- Dateiname und Zeilennummer, damit der Code sch�nere Fehlermeldungen
143
Damit ich das aber nicht jedes Mal eintippen muss, hier ein paar Macros:
145
#define newCode0(ART) new Code(\
146
gAktDefKnoten, gDateiName, gZeilenNr, ART)
147
#define newCode1(ART, X1) new Code(\
148
gAktDefKnoten, gDateiName, gZeilenNr, ART, X1)
149
#define newCode2(ART, X1, X2) new Code(\
150
gAktDefKnoten, gDateiName, gZeilenNr, ART, X1, X2)
151
#define newCode3(ART, X1, X2, X3) new Code(\
152
gAktDefKnoten, gDateiName, gZeilenNr, ART, X1, X2, X3)
153
#define newCode4(ART, X1, X2, X3, X4) new Code(\
154
gAktDefKnoten, gDateiName, gZeilenNr, ART, X1, X2, X3, X4)
158
/***********************************************************************/
164
/* PBEGIN_TRY und PEND_TRY() fangen Fehler ab und geben sie aus, damit
165
weitergeparst werden kann und mehrere Fehler gleichzeitig ausgegeben
166
werden k�nnen. Sie werden in fehler.h definiert. */
172
/* Bug in Bison? Er scheint den Stack nicht automatisch vergr��ern zu wollen,
173
wenn er voll ist. Es sieht so aus, als h�tte er angst, dass da c++-Variablen
174
vorkommen, wo er (wegen constructor und so) nicht einfach so rumalloziieren
175
kann. (Ich wei� nicht, was der LTYPE ist, von dem er nicht festgestellt hat,
176
das er trivial ist.) */
177
#define YYLTYPE_IS_TRIVIAL 1
181
/* Line 189 of yacc.c */
182
#line 183 "parser.cc"
184
/* Enabling traces. */
189
/* Enabling verbose error messages. */
190
#ifdef YYERROR_VERBOSE
191
# undef YYERROR_VERBOSE
192
# define YYERROR_VERBOSE 1
194
# define YYERROR_VERBOSE 0
197
/* Enabling the token table. */
198
#ifndef YYTOKEN_TABLE
199
# define YYTOKEN_TABLE 0
64
204
#ifndef YYTOKENTYPE
65
205
# define YYTOKENTYPE
164
/* Copy the first part of user declarations. */
168
/***************************************************************************
169
parser.yy - description
171
begin : Mit Jul 12 22:54:51 MEST 2000
172
copyright : (C) 2000 by Immi
173
email : cuyo@pcpool.mathematik.uni-freiburg.de
174
***************************************************************************/
176
/***************************************************************************
178
* This program is free software; you can redistribute it and/or modify *
179
* it under the terms of the GNU General Public License as published by *
180
* the Free Software Foundation; either version 2 of the License, or *
181
* (at your option) any later version. *
183
***************************************************************************/
187
#include "cuyointl.h"
191
#include "variable.h"
195
#include "leveldaten.h"
198
#define YYMALLOC malloc
202
/***********************************************************************/
203
/* Globale Parse-Variablen */
205
/** F�r Fehlerausgabe: Aktueller Dateiname */
207
/** F�r Fehlerausgabe: Aktuelle Zeilen-Nummer */
210
/** True, wenn es w�hrend des Parsens (mindestens) einen Fehler gab. */
214
/** Wenn der Parser aufgerufen wird, muss in DefKnoten schon ein DefKnoten
215
stehen, an den alles geparste angef�gt wird. Normalerweise erzeugt man
216
einen neuen Defknoten. Beim Includen will man da aber schon was drin
218
Siehe auch %type <defknoten> alles */
219
static DefKnoten * gAktDefKnoten;
221
//#define MAX_INCLUDE_TIEFE 16
222
/** YY_BUFFER_STATE ist ein flex-Datentyp f�r eine Datei, an der grade
224
//static YY_BUFFER_STATE gIncludeStack[MAX_INCLUDE_TIEFE];
225
/** Aktuelle Include-Tiefe. (0 bei Hauptdatei) */
226
//static int gIncludeTiefe;
228
//static DefKnoten * gIncludeMerk;
231
/* Beim Erzeugen eines Codes m�ssen einige Variablen jedes Mal �bergeben
233
- der zugeh�rige DefKnoten, damit ggf. noch Variablen reserviert werden
234
k�nnen (genauer: die Busy-Variable).
235
- Dateiname und Zeilennummer, damit der Code sch�nere Fehlermeldungen
237
Damit ich das aber nicht jedes Mal eintippen muss, hier ein paar Macros:
239
#define newCode0(ART) new Code(\
240
gAktDefKnoten, gDateiName, gZeilenNr, ART)
241
#define newCode1(ART, X1) new Code(\
242
gAktDefKnoten, gDateiName, gZeilenNr, ART, X1)
243
#define newCode2(ART, X1, X2) new Code(\
244
gAktDefKnoten, gDateiName, gZeilenNr, ART, X1, X2)
245
#define newCode3(ART, X1, X2, X3) new Code(\
246
gAktDefKnoten, gDateiName, gZeilenNr, ART, X1, X2, X3)
247
#define newCode4(ART, X1, X2, X3, X4) new Code(\
248
gAktDefKnoten, gDateiName, gZeilenNr, ART, X1, X2, X3, X4)
252
/***********************************************************************/
258
/* PBEGIN_TRY und PEND_TRY() fangen Fehler ab und geben sie aus, damit
259
weitergeparst werden kann und mehrere Fehler gleichzeitig ausgegeben
260
werden k�nnen. Sie werden in fehler.h definiert. */
266
/* Bug in Bison? Er scheint den Stack nicht automatisch vergr��ern zu wollen,
267
wenn er voll ist. Es sieht so aus, als h�tte er angst, dass da c++-Variablen
268
vorkommen, wo er (wegen constructor und so) nicht einfach so rumalloziieren
269
kann. (Ich wei� nicht, was der LTYPE ist, von dem er nicht festgestellt hat,
270
das er trivial ist.) */
271
#define YYLTYPE_IS_TRIVIAL 1
275
/* Enabling traces. */
280
/* Enabling verbose error messages. */
281
#ifdef YYERROR_VERBOSE
282
# undef YYERROR_VERBOSE
283
# define YYERROR_VERBOSE 1
285
# define YYERROR_VERBOSE 0
288
/* Enabling the token table. */
289
#ifndef YYTOKEN_TABLE
290
# define YYTOKEN_TABLE 0
293
304
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
294
305
typedef union YYSTYPE
308
/* Line 214 of yacc.c */
295
309
#line 113 "parser.yy"
298
312
Code * codepaar[2];
1275
1292
#if (defined __STDC__ || defined __C99__FUNC__ \
1276
1293
|| defined __cplusplus || defined _MSC_VER)
1278
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1295
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1281
yy_stack_print (bottom, top)
1282
yytype_int16 *bottom;
1298
yy_stack_print (yybottom, yytop)
1299
yytype_int16 *yybottom;
1300
yytype_int16 *yytop;
1286
1303
YYFPRINTF (stderr, "Stack now");
1287
for (; bottom <= top; ++bottom)
1288
YYFPRINTF (stderr, " %d", *bottom);
1304
for (; yybottom <= yytop; yybottom++)
1306
int yybot = *yybottom;
1307
YYFPRINTF (stderr, " %d", yybot);
1289
1309
YYFPRINTF (stderr, "\n");
1655
/* The look-ahead symbol. */
1672
/* The lookahead symbol. */
1658
/* The semantic value of the look-ahead symbol. */
1675
/* The semantic value of the lookahead symbol. */
1659
1676
YYSTYPE yylval;
1661
/* Number of syntax errors so far. */
1678
/* Number of syntax errors so far. */
1682
/* Number of tokens to shift before error messages enabled. */
1685
/* The stacks and their tools:
1686
`yyss': related to states.
1687
`yyvs': related to semantic values.
1689
Refer to the stacks thru separate pointers, to allow yyoverflow
1690
to reallocate them elsewhere. */
1692
/* The state stack. */
1693
yytype_int16 yyssa[YYINITDEPTH];
1695
yytype_int16 *yyssp;
1697
/* The semantic value stack. */
1698
YYSTYPE yyvsa[YYINITDEPTH];
1702
YYSIZE_T yystacksize;
1667
/* Number of tokens to shift before error messages enabled. */
1669
/* Look-ahead token as an internal (translated) token number. */
1706
/* Lookahead token as an internal (translated) token number. */
1708
/* The variables used to return semantic value and location from the
1671
1712
#if YYERROR_VERBOSE
1672
1713
/* Buffer for error messages, and its allocated size. */
1673
1714
char yymsgbuf[128];
1675
1716
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1678
/* Three stacks and their tools:
1679
`yyss': related to states,
1680
`yyvs': related to semantic values,
1681
`yyls': related to locations.
1683
Refer to the stacks thru separate pointers, to allow yyoverflow
1684
to reallocate them elsewhere. */
1686
/* The state stack. */
1687
yytype_int16 yyssa[YYINITDEPTH];
1688
yytype_int16 *yyss = yyssa;
1689
yytype_int16 *yyssp;
1691
/* The semantic value stack. */
1692
YYSTYPE yyvsa[YYINITDEPTH];
1693
YYSTYPE *yyvs = yyvsa;
1698
1719
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1700
YYSIZE_T yystacksize = YYINITDEPTH;
1702
/* The variables used to return semantic value and location from the
1707
1721
/* The number of symbols on the RHS of the reduced rule.
1708
1722
Keep to zero when no symbol should be popped. */
1728
yystacksize = YYINITDEPTH;
1711
1730
YYDPRINTF ((stderr, "Starting parse\n"));
1714
1733
yyerrstatus = 0;
1716
yychar = YYEMPTY; /* Cause a token to be read. */
1735
yychar = YYEMPTY; /* Cause a token to be read. */
1718
1737
/* Initialize stack pointers.
1719
1738
Waste one element of value and location stack
1720
1739
so that they stay on the same level as the state stack.
1721
1740
The wasted elements are never initialized. */
2172
/* Line 1455 of yacc.c */
2114
2173
#line 378 "parser.yy"
2115
2174
{ (yyval.zahl) = (yyvsp[(2) - (3)].zahl); }
2179
/* Line 1455 of yacc.c */
2119
2180
#line 379 "parser.yy"
2120
2181
{ (yyval.zahl) = -(yyvsp[(2) - (2)].zahl); }
2186
/* Line 1455 of yacc.c */
2124
2187
#line 380 "parser.yy"
2125
2188
{ (yyval.zahl) = (yyvsp[(1) - (3)].zahl) + (yyvsp[(3) - (3)].zahl); }
2193
/* Line 1455 of yacc.c */
2129
2194
#line 381 "parser.yy"
2130
2195
{ (yyval.zahl) = (yyvsp[(1) - (3)].zahl) - (yyvsp[(3) - (3)].zahl); }
2200
/* Line 1455 of yacc.c */
2134
2201
#line 382 "parser.yy"
2135
2202
{ (yyval.zahl) = (yyvsp[(1) - (3)].zahl) * (yyvsp[(3) - (3)].zahl); }
2207
/* Line 1455 of yacc.c */
2139
2208
#line 383 "parser.yy"
2140
2209
{ (yyval.zahl) = divv((yyvsp[(1) - (3)].zahl),(yyvsp[(3) - (3)].zahl)); }
2214
/* Line 1455 of yacc.c */
2144
2215
#line 384 "parser.yy"
2145
2216
{ (yyval.zahl) = modd((yyvsp[(1) - (3)].zahl),(yyvsp[(3) - (3)].zahl)); }
2221
/* Line 1455 of yacc.c */
2149
2222
#line 397 "parser.yy"
2151
2224
gAktDefKnoten->speicherDefinition(namespace_prozedur, *(yyvsp[(1) - (5)].str),
2544
/* Line 1455 of yacc.c */
2406
2545
#line 577 "parser.yy"
2407
2546
{ (yyval.codeart) = set_code; }
2551
/* Line 1455 of yacc.c */
2411
2552
#line 578 "parser.yy"
2412
2553
{ (yyval.codeart) = add_code; }
2558
/* Line 1455 of yacc.c */
2416
2559
#line 579 "parser.yy"
2417
2560
{ (yyval.codeart) = sub_code; }
2565
/* Line 1455 of yacc.c */
2421
2566
#line 580 "parser.yy"
2422
2567
{ (yyval.codeart) = mul_code; }
2572
/* Line 1455 of yacc.c */
2426
2573
#line 581 "parser.yy"
2427
2574
{ (yyval.codeart) = div_code; }
2579
/* Line 1455 of yacc.c */
2431
2580
#line 582 "parser.yy"
2432
2581
{ (yyval.codeart) = mod_code; }
2586
/* Line 1455 of yacc.c */
2436
2587
#line 583 "parser.yy"
2437
2588
{ (yyval.codeart) = bitset_code; }
2593
/* Line 1455 of yacc.c */
2441
2594
#line 584 "parser.yy"
2442
2595
{ (yyval.codeart) = bitunset_code; }
2600
/* Line 1455 of yacc.c */
2446
2601
#line 589 "parser.yy"
2447
2602
{ (yyval.code) = newCode0(mal_code); }
2607
/* Line 1455 of yacc.c */
2451
2608
#line 590 "parser.yy"
2452
2609
{ (yyval.code) = newCode2(mal_code_fremd, (yyvsp[(2) - (2)].ort), 1); }
2614
/* Line 1455 of yacc.c */
2456
2615
#line 591 "parser.yy"
2457
2616
{ (yyval.code) = newCode2(mal_code_fremd, (yyvsp[(1) - (2)].ort), -1); }
2621
/* Line 1455 of yacc.c */
2461
2622
#line 595 "parser.yy"
2462
2623
{ (yyval.code) = newCode1(buchstabe_code, (yyvsp[(1) - (1)].zahl)); }
2628
/* Line 1455 of yacc.c */
2466
2629
#line 596 "parser.yy"
2468
2631
(yyval.code) = newCode2(stapel_code, newCode1(buchstabe_code, (yyvsp[(1) - (2)].zahl)),
2765
/* Line 1455 of yacc.c */
2573
2766
#line 666 "parser.yy"
2574
2767
{ (yyval.code) = newCode2(manchmal_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2772
/* Line 1455 of yacc.c */
2578
2773
#line 667 "parser.yy"
2579
2774
{ (yyval.code) = newCode2(add_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2779
/* Line 1455 of yacc.c */
2583
2780
#line 668 "parser.yy"
2584
2781
{ (yyval.code) = newCode1(neg_acode, (yyvsp[(2) - (2)].code));}
2786
/* Line 1455 of yacc.c */
2588
2787
#line 669 "parser.yy"
2589
2788
{ (yyval.code) = newCode2(sub_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2793
/* Line 1455 of yacc.c */
2593
2794
#line 670 "parser.yy"
2594
2795
{ (yyval.code) = newCode2(mul_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2800
/* Line 1455 of yacc.c */
2598
2801
#line 671 "parser.yy"
2599
2802
{ (yyval.code) = newCode2(div_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2807
/* Line 1455 of yacc.c */
2603
2808
#line 672 "parser.yy"
2604
2809
{ (yyval.code) = newCode2(mod_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2814
/* Line 1455 of yacc.c */
2608
2815
#line 673 "parser.yy"
2609
2816
{ (yyval.code) = newCode2(bitset_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2821
/* Line 1455 of yacc.c */
2613
2822
#line 674 "parser.yy"
2614
2823
{ (yyval.code) = newCode2(bitunset_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2828
/* Line 1455 of yacc.c */
2618
2829
#line 675 "parser.yy"
2619
2830
{ (yyval.code) = newCode2(bittest_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2835
/* Line 1455 of yacc.c */
2623
2836
#line 676 "parser.yy"
2624
2837
{ (yyval.code) = newCode2(eq_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2842
/* Line 1455 of yacc.c */
2628
2843
#line 677 "parser.yy"
2629
2844
{ (yyval.code) = newCode2(ne_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2849
/* Line 1455 of yacc.c */
2633
2850
#line 678 "parser.yy"
2634
2851
{ (yyval.code) = newCode2(ge_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2856
/* Line 1455 of yacc.c */
2638
2857
#line 679 "parser.yy"
2639
2858
{ (yyval.code) = newCode2(le_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2863
/* Line 1455 of yacc.c */
2643
2864
#line 680 "parser.yy"
2644
2865
{ (yyval.code) = newCode2(gt_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2870
/* Line 1455 of yacc.c */
2648
2871
#line 681 "parser.yy"
2649
2872
{ (yyval.code) = newCode2(lt_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2877
/* Line 1455 of yacc.c */
2653
2878
#line 682 "parser.yy"
2654
2879
{ (yyval.code) = newCode2(bitand_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2884
/* Line 1455 of yacc.c */
2658
2885
#line 683 "parser.yy"
2659
2886
{ (yyval.code) = newCode2(bitor_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2891
/* Line 1455 of yacc.c */
2663
2892
#line 684 "parser.yy"
2664
2893
{ (yyval.code) = newCode1(not_acode, (yyvsp[(2) - (2)].code));}
2898
/* Line 1455 of yacc.c */
2668
2899
#line 685 "parser.yy"
2669
2900
{ (yyval.code) = newCode2(und_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2905
/* Line 1455 of yacc.c */
2673
2906
#line 686 "parser.yy"
2674
2907
{ (yyval.code) = newCode2(oder_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
2912
/* Line 1455 of yacc.c */
2678
2913
#line 687 "parser.yy"
2680
2915
(yyval.code) = newCode3(intervall_acode, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].codepaar)[0], (yyvsp[(3) - (3)].codepaar)[1]);
3013
/* Line 1455 of yacc.c */
2759
3014
#line 741 "parser.yy"
2760
3015
{ (yyval.code) = (yyvsp[(1) - (1)].code); }
3020
/* Line 1455 of yacc.c */
2764
3021
#line 742 "parser.yy"
2765
3022
{ (yyval.code) = newCode1(zahl_acode, (yyvsp[(1) - (1)].zahl)); }
3027
/* Line 1455 of yacc.c */
2769
3028
#line 746 "parser.yy"
2770
3029
{ (yyval.haelfte) = haelfte_hier; }
3034
/* Line 1455 of yacc.c */
2774
3035
#line 747 "parser.yy"
2775
3036
{ (yyval.haelfte) = haelfte_drueben; }
3041
/* Line 1455 of yacc.c */
2779
3042
#line 748 "parser.yy"
2780
3043
{ (yyval.haelfte) = haelfte_links; }
3048
/* Line 1455 of yacc.c */
2784
3049
#line 749 "parser.yy"
2785
3050
{ (yyval.haelfte) = haelfte_rechts; }
3055
/* Line 1455 of yacc.c */
2789
3056
#line 753 "parser.yy"
2790
3057
{ (yyval.ort) = new Ort(absort_semiglobal); }
3062
/* Line 1455 of yacc.c */
2794
3063
#line 754 "parser.yy"
2795
3064
{ (yyval.ort) = new Ort(absort_fall, newCode1(zahl_acode, (yyvsp[(1) - (1)].zahl))); }
3069
/* Line 1455 of yacc.c */
2799
3070
#line 758 "parser.yy"
2800
3071
{ (yyval.ort) = new Ort(absort_semiglobal); }
3076
/* Line 1455 of yacc.c */
2804
3077
#line 759 "parser.yy"
2805
3078
{ (yyval.ort) = new Ort(absort_fall, (yyvsp[(1) - (1)].code)); }
3083
/* Line 1455 of yacc.c */
2809
3084
#line 760 "parser.yy"
2810
3085
{ (yyval.ort) = new Ort(absort_feld, (yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code)); }
3090
/* Line 1455 of yacc.c */
2814
3091
#line 764 "parser.yy"
2815
3092
{ (yyval.ort) = (yyvsp[(1) - (1)].ort); }
3097
/* Line 1455 of yacc.c */
2819
3098
#line 765 "parser.yy"
2820
3099
{ (yyval.ort) = (yyvsp[(2) - (3)].ort); }
3104
/* Line 1455 of yacc.c */
2824
3105
#line 766 "parser.yy"
2826
3107
(yyvsp[(2) - (5)].ort)->setzeHaelfte((yyvsp[(4) - (5)].haelfte));
3114
/* Line 1455 of yacc.c */
2832
3115
#line 773 "parser.yy"
2833
3116
{ (yyval.ort) = new Ort(absort_global); }
3121
/* Line 1455 of yacc.c */
2837
3122
#line 774 "parser.yy"
2838
3123
{ (yyval.ort) = new Ort(newCode1(zahl_acode, (yyvsp[(1) - (1)].zahl))); }
3128
/* Line 1455 of yacc.c */
2842
3129
#line 778 "parser.yy"
2843
3130
{ (yyval.ort) = new Ort(absort_global); }
3135
/* Line 1455 of yacc.c */
2847
3136
#line 779 "parser.yy"
2848
3137
{ (yyval.ort) = new Ort((yyvsp[(1) - (1)].code)); }
3142
/* Line 1455 of yacc.c */
2852
3143
#line 780 "parser.yy"
2853
3144
{ (yyval.ort) = new Ort((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code)); }
3149
/* Line 1455 of yacc.c */
2857
3150
#line 784 "parser.yy"
2858
3151
{ (yyval.ort) = (yyvsp[(1) - (1)].ort); }
3156
/* Line 1455 of yacc.c */
2862
3157
#line 785 "parser.yy"
2863
3158
{ (yyval.ort) = (yyvsp[(2) - (3)].ort); }
3163
/* Line 1455 of yacc.c */
2867
3164
#line 786 "parser.yy"
2869
3166
(yyvsp[(2) - (5)].ort)->setzeHaelfte((yyvsp[(4) - (5)].haelfte));