Line data Source code
1 : // A Bison parser, made by GNU Bison 3.0.4.
2 :
3 : // Skeleton implementation for Bison LALR(1) parsers in C++
4 :
5 : // Copyright (C) 2002-2015 Free Software Foundation, Inc.
6 :
7 : // This program is free software: you can redistribute it and/or modify
8 : // it under the terms of the GNU General Public License as published by
9 : // the Free Software Foundation, either version 3 of the License, or
10 : // (at your option) any later version.
11 :
12 : // This program is distributed in the hope that it will be useful,
13 : // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 : // GNU General Public License for more details.
16 :
17 : // You should have received a copy of the GNU General Public License
18 : // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 :
20 : // As a special exception, you may create a larger work that contains
21 : // part or all of the Bison parser skeleton and distribute that work
22 : // under terms of your choice, so long as that work isn't itself a
23 : // parser generator using the skeleton or a modified version thereof
24 : // as a parser skeleton. Alternatively, if you modify or redistribute
25 : // the parser skeleton itself, you may (at your option) remove this
26 : // special exception, which will cause the skeleton and the resulting
27 : // Bison output files to be licensed under the GNU General Public
28 : // License without this special exception.
29 :
30 : // This special exception was added by the Free Software Foundation in
31 : // version 2.2 of Bison.
32 :
33 : // Take the name prefix into account.
34 : #define yylex lhalex
35 :
36 : // First part of user declarations.
37 :
38 : #line 39 "Lha-parser.cc" // lalr1.cc:404
39 :
40 : # ifndef YY_NULLPTR
41 : # if defined __cplusplus && 201103L <= __cplusplus
42 : # define YY_NULLPTR nullptr
43 : # else
44 : # define YY_NULLPTR 0
45 : # endif
46 : # endif
47 :
48 : #include "Lha-parser.hh"
49 :
50 : // User implementation prologue.
51 :
52 : #line 53 "Lha-parser.cc" // lalr1.cc:412
53 : // Unqualified %code blocks.
54 : #line 42 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:413
55 :
56 : #include "../HaslFormula.hpp"
57 : #include "Lha-Reader.hpp"
58 : #include <set>
59 : #include <vector>
60 :
61 : Eval LhaEvaluate;
62 :
63 :
64 :
65 : vector<string> FuncFlowVector;
66 :
67 : vector<string> FuncUpdateVector;
68 : vector<string> FuncUpdateVectorIndex;
69 :
70 : set <string> PetriTransitions;
71 : set <string> SubSet;
72 :
73 :
74 :
75 : vector < string > CoeffsVector;
76 : vector < vector <string> > CoeffsMatrix;
77 : vector <string> CST;
78 : vector <string> comp;
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 : #line 87 "Lha-parser.cc" // lalr1.cc:413
87 :
88 :
89 : #ifndef YY_
90 : # if defined YYENABLE_NLS && YYENABLE_NLS
91 : # if ENABLE_NLS
92 : # include <libintl.h> // FIXME: INFRINGES ON USER NAME SPACE.
93 : # define YY_(msgid) dgettext ("bison-runtime", msgid)
94 : # endif
95 : # endif
96 : # ifndef YY_
97 : # define YY_(msgid) msgid
98 : # endif
99 : #endif
100 :
101 : #define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
102 : /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
103 : If N is 0, then set CURRENT to the empty location which ends
104 : the previous symbol: RHS[0] (always defined). */
105 :
106 : # ifndef YYLLOC_DEFAULT
107 : # define YYLLOC_DEFAULT(Current, Rhs, N) \
108 : do \
109 : if (N) \
110 : { \
111 : (Current).begin = YYRHSLOC (Rhs, 1).begin; \
112 : (Current).end = YYRHSLOC (Rhs, N).end; \
113 : } \
114 : else \
115 : { \
116 : (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
117 : } \
118 : while (/*CONSTCOND*/ false)
119 : # endif
120 :
121 :
122 : // Suppress unused-variable warnings by "using" E.
123 : #define YYUSE(E) ((void) (E))
124 :
125 : // Enable debugging if requested.
126 : #if YYDEBUG
127 :
128 : // A pseudo ostream that takes yydebug_ into account.
129 : # define YYCDEBUG if (yydebug_) (*yycdebug_)
130 :
131 : # define YY_SYMBOL_PRINT(Title, Symbol) \
132 : do { \
133 : if (yydebug_) \
134 : { \
135 : *yycdebug_ << Title << ' '; \
136 : yy_print_ (*yycdebug_, Symbol); \
137 : *yycdebug_ << std::endl; \
138 : } \
139 : } while (false)
140 :
141 : # define YY_REDUCE_PRINT(Rule) \
142 : do { \
143 : if (yydebug_) \
144 : yy_reduce_print_ (Rule); \
145 : } while (false)
146 :
147 : # define YY_STACK_PRINT() \
148 : do { \
149 : if (yydebug_) \
150 : yystack_print_ (); \
151 : } while (false)
152 :
153 : #else // !YYDEBUG
154 :
155 : # define YYCDEBUG if (false) std::cerr
156 : # define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol)
157 : # define YY_REDUCE_PRINT(Rule) static_cast<void>(0)
158 : # define YY_STACK_PRINT() static_cast<void>(0)
159 :
160 : #endif // !YYDEBUG
161 :
162 : #define yyerrok (yyerrstatus_ = 0)
163 : #define yyclearin (yyla.clear ())
164 :
165 : #define YYACCEPT goto yyacceptlab
166 : #define YYABORT goto yyabortlab
167 : #define YYERROR goto yyerrorlab
168 : #define YYRECOVERING() (!!yyerrstatus_)
169 :
170 :
171 : namespace lha {
172 : #line 173 "Lha-parser.cc" // lalr1.cc:479
173 :
174 : /* Return YYSTR after stripping away unnecessary quotes and
175 : backslashes, so that it's suitable for yyerror. The heuristic is
176 : that double-quoting is unnecessary unless the string contains an
177 : apostrophe, a comma, or backslash (other than backslash-backslash).
178 : YYSTR is taken from yytname. */
179 : std::string
180 0 : Lha_parser::yytnamerr_ (const char *yystr)
181 : {
182 0 : if (*yystr == '"')
183 : {
184 0 : std::string yyr = "";
185 0 : char const *yyp = yystr;
186 :
187 : for (;;)
188 0 : switch (*++yyp)
189 : {
190 : case '\'':
191 : case ',':
192 0 : goto do_not_strip_quotes;
193 :
194 : case '\\':
195 0 : if (*++yyp != '\\')
196 0 : goto do_not_strip_quotes;
197 : // Fall through.
198 : default:
199 0 : yyr += *yyp;
200 0 : break;
201 :
202 : case '"':
203 0 : return yyr;
204 : }
205 : do_not_strip_quotes: ;
206 : }
207 :
208 0 : return yystr;
209 : }
210 :
211 :
212 : /// Build a parser object.
213 29 : Lha_parser::Lha_parser (Lha_Reader& Reader_yyarg)
214 : :
215 : #if YYDEBUG
216 : yydebug_ (false),
217 : yycdebug_ (&std::cerr),
218 : #endif
219 29 : Reader (Reader_yyarg)
220 29 : {}
221 :
222 29 : Lha_parser::~Lha_parser ()
223 29 : {}
224 :
225 :
226 : /*---------------.
227 : | Symbol types. |
228 : `---------------*/
229 :
230 : inline
231 : Lha_parser::syntax_error::syntax_error (const location_type& l, const std::string& m)
232 : : std::runtime_error (m)
233 : , location (l)
234 : {}
235 :
236 : // basic_symbol.
237 : template <typename Base>
238 : inline
239 22445 : Lha_parser::basic_symbol<Base>::basic_symbol ()
240 22445 : : value ()
241 22445 : {}
242 :
243 : template <typename Base>
244 : inline
245 16104 : Lha_parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
246 : : Base (other)
247 : , value ()
248 16104 : , location (other.location)
249 : {
250 16104 : value = other.value;
251 16104 : }
252 :
253 :
254 : template <typename Base>
255 : inline
256 : Lha_parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l)
257 : : Base (t)
258 : , value (v)
259 : , location (l)
260 : {}
261 :
262 :
263 : /// Constructor for valueless symbols.
264 : template <typename Base>
265 : inline
266 9879 : Lha_parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const location_type& l)
267 : : Base (t)
268 : , value ()
269 9879 : , location (l)
270 9879 : {}
271 :
272 : template <typename Base>
273 : inline
274 48428 : Lha_parser::basic_symbol<Base>::~basic_symbol ()
275 : {
276 48428 : clear ();
277 48428 : }
278 :
279 : template <typename Base>
280 : inline
281 : void
282 48428 : Lha_parser::basic_symbol<Base>::clear ()
283 : {
284 48428 : Base::clear ();
285 48428 : }
286 :
287 : template <typename Base>
288 : inline
289 : bool
290 12135 : Lha_parser::basic_symbol<Base>::empty () const
291 : {
292 12135 : return Base::type_get () == empty_symbol;
293 : }
294 :
295 : template <typename Base>
296 : inline
297 : void
298 16104 : Lha_parser::basic_symbol<Base>::move (basic_symbol& s)
299 : {
300 16104 : super_type::move(s);
301 16104 : value = s.value;
302 16104 : location = s.location;
303 16104 : }
304 :
305 : // by_type.
306 : inline
307 29 : Lha_parser::by_type::by_type ()
308 29 : : type (empty_symbol)
309 29 : {}
310 :
311 : inline
312 : Lha_parser::by_type::by_type (const by_type& other)
313 : : type (other.type)
314 : {}
315 :
316 : inline
317 : Lha_parser::by_type::by_type (token_type t)
318 : : type (yytranslate_ (t))
319 : {}
320 :
321 : inline
322 : void
323 29 : Lha_parser::by_type::clear ()
324 : {
325 29 : type = empty_symbol;
326 29 : }
327 :
328 : inline
329 : void
330 : Lha_parser::by_type::move (by_type& that)
331 : {
332 : type = that.type;
333 : that.clear ();
334 : }
335 :
336 : inline
337 : int
338 36347 : Lha_parser::by_type::type_get () const
339 : {
340 36347 : return type;
341 : }
342 :
343 :
344 : // by_state.
345 : inline
346 22416 : Lha_parser::by_state::by_state ()
347 22416 : : state (empty_state)
348 22416 : {}
349 :
350 : inline
351 16104 : Lha_parser::by_state::by_state (const by_state& other)
352 16104 : : state (other.state)
353 16104 : {}
354 :
355 : inline
356 : void
357 64503 : Lha_parser::by_state::clear ()
358 : {
359 64503 : state = empty_state;
360 64503 : }
361 :
362 : inline
363 : void
364 16104 : Lha_parser::by_state::move (by_state& that)
365 : {
366 16104 : state = that.state;
367 16104 : that.clear ();
368 16104 : }
369 :
370 : inline
371 9879 : Lha_parser::by_state::by_state (state_type s)
372 9879 : : state (s)
373 9879 : {}
374 :
375 : inline
376 : Lha_parser::symbol_number_type
377 58 : Lha_parser::by_state::type_get () const
378 : {
379 58 : if (state == empty_state)
380 0 : return empty_symbol;
381 : else
382 58 : return yystos_[state];
383 : }
384 :
385 : inline
386 22416 : Lha_parser::stack_symbol_type::stack_symbol_type ()
387 22416 : {}
388 :
389 :
390 : inline
391 9879 : Lha_parser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that)
392 9879 : : super_type (s, that.location)
393 : {
394 9879 : value = that.value;
395 : // that is emptied.
396 9879 : that.type = empty_symbol;
397 9879 : }
398 :
399 : inline
400 : Lha_parser::stack_symbol_type&
401 : Lha_parser::stack_symbol_type::operator= (const stack_symbol_type& that)
402 : {
403 : state = that.state;
404 : value = that.value;
405 : location = that.location;
406 : return *this;
407 : }
408 :
409 :
410 : template <typename Base>
411 : inline
412 : void
413 58 : Lha_parser::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const
414 : {
415 58 : if (yymsg)
416 58 : YY_SYMBOL_PRINT (yymsg, yysym);
417 :
418 : // User destructor.
419 58 : switch (yysym.type_get ())
420 : {
421 : case 3: // str
422 :
423 : #line 171 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:614
424 : { delete (yysym.value.name); }
425 : #line 426 "Lha-parser.cc" // lalr1.cc:614
426 0 : break;
427 :
428 :
429 : default:
430 58 : break;
431 : }
432 58 : }
433 :
434 : #if YYDEBUG
435 : template <typename Base>
436 : void
437 0 : Lha_parser::yy_print_ (std::ostream& yyo,
438 : const basic_symbol<Base>& yysym) const
439 : {
440 0 : std::ostream& yyoutput = yyo;
441 : YYUSE (yyoutput);
442 0 : symbol_number_type yytype = yysym.type_get ();
443 : // Avoid a (spurious) G++ 4.8 warning about "array subscript is
444 : // below array bounds".
445 0 : if (yysym.empty ())
446 0 : std::abort ();
447 0 : yyo << (yytype < yyntokens_ ? "token" : "nterm")
448 0 : << ' ' << yytname_[yytype] << " ("
449 0 : << yysym.location << ": ";
450 0 : switch (yytype)
451 : {
452 : case 3: // str
453 :
454 : #line 170 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:636
455 : { debug_stream () << *(yysym.value.name); }
456 : #line 457 "Lha-parser.cc" // lalr1.cc:636
457 0 : break;
458 :
459 : case 4: // rval
460 :
461 : #line 174 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:636
462 : { debug_stream () << (yysym.value.RealVal); }
463 : #line 464 "Lha-parser.cc" // lalr1.cc:636
464 0 : break;
465 :
466 : case 5: // ival
467 :
468 : #line 173 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:636
469 : { debug_stream () << (yysym.value.IntVal); }
470 : #line 471 "Lha-parser.cc" // lalr1.cc:636
471 0 : break;
472 :
473 : case 113: // rorival
474 :
475 : #line 174 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:636
476 : { debug_stream () << (yysym.value.RealVal); }
477 : #line 478 "Lha-parser.cc" // lalr1.cc:636
478 0 : break;
479 :
480 :
481 : default:
482 0 : break;
483 : }
484 0 : yyo << ')';
485 0 : }
486 : #endif
487 :
488 : inline
489 : void
490 9879 : Lha_parser::yypush_ (const char* m, state_type s, symbol_type& sym)
491 : {
492 19758 : stack_symbol_type t (s, sym);
493 9879 : yypush_ (m, t);
494 9879 : }
495 :
496 : inline
497 : void
498 16104 : Lha_parser::yypush_ (const char* m, stack_symbol_type& s)
499 : {
500 16104 : if (m)
501 9850 : YY_SYMBOL_PRINT (m, s);
502 16104 : yystack_.push (s);
503 16104 : }
504 :
505 : inline
506 : void
507 6312 : Lha_parser::yypop_ (unsigned int n)
508 : {
509 6312 : yystack_.pop (n);
510 6312 : }
511 :
512 : #if YYDEBUG
513 : std::ostream&
514 0 : Lha_parser::debug_stream () const
515 : {
516 0 : return *yycdebug_;
517 : }
518 :
519 : void
520 0 : Lha_parser::set_debug_stream (std::ostream& o)
521 : {
522 0 : yycdebug_ = &o;
523 0 : }
524 :
525 :
526 : Lha_parser::debug_level_type
527 0 : Lha_parser::debug_level () const
528 : {
529 0 : return yydebug_;
530 : }
531 :
532 : void
533 29 : Lha_parser::set_debug_level (debug_level_type l)
534 : {
535 29 : yydebug_ = l;
536 29 : }
537 : #endif // YYDEBUG
538 :
539 : inline Lha_parser::state_type
540 6225 : Lha_parser::yy_lr_goto_state_ (state_type yystate, int yysym)
541 : {
542 6225 : int yyr = yypgoto_[yysym - yyntokens_] + yystate;
543 6225 : if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
544 2176 : return yytable_[yyr];
545 : else
546 4049 : return yydefgoto_[yysym - yyntokens_];
547 : }
548 :
549 : inline bool
550 16075 : Lha_parser::yy_pact_value_is_default_ (int yyvalue)
551 : {
552 16075 : return yyvalue == yypact_ninf_;
553 : }
554 :
555 : inline bool
556 0 : Lha_parser::yy_table_value_is_error_ (int yyvalue)
557 : {
558 0 : return yyvalue == yytable_ninf_;
559 : }
560 :
561 : int
562 29 : Lha_parser::parse ()
563 : {
564 : // State.
565 : int yyn;
566 : /// Length of the RHS of the rule being reduced.
567 29 : int yylen = 0;
568 :
569 : // Error handling.
570 29 : int yynerrs_ = 0;
571 29 : int yyerrstatus_ = 0;
572 :
573 : /// The lookahead symbol.
574 58 : symbol_type yyla;
575 :
576 : /// The locations where the error started and ended.
577 58 : stack_symbol_type yyerror_range[3];
578 :
579 : /// The return value of parse ().
580 : int yyresult;
581 :
582 : // FIXME: This shoud be completely indented. It is not yet to
583 : // avoid gratuitous conflicts when merging into the master branch.
584 : try
585 : {
586 29 : YYCDEBUG << "Starting parse" << std::endl;
587 :
588 :
589 : /* Initialize the stack. The initial state will be set in
590 : yynewstate, since the latter expects the semantical and the
591 : location values to have been already stored, initialize these
592 : stacks with a primary value. */
593 29 : yystack_.clear ();
594 29 : yypush_ (YY_NULLPTR, 0, yyla);
595 :
596 : // A new symbol was pushed on the stack.
597 : yynewstate:
598 16104 : YYCDEBUG << "Entering state " << yystack_[0].state << std::endl;
599 :
600 : // Accept?
601 16104 : if (yystack_[0].state == yyfinal_)
602 29 : goto yyacceptlab;
603 :
604 16075 : goto yybackup;
605 :
606 : // Backup.
607 : yybackup:
608 :
609 : // Try to take a decision without lookahead.
610 16075 : yyn = yypact_[yystack_[0].state];
611 16075 : if (yy_pact_value_is_default_ (yyn))
612 3969 : goto yydefault;
613 :
614 : // Read a lookahead token.
615 12106 : if (yyla.empty ())
616 : {
617 9850 : YYCDEBUG << "Reading a token: ";
618 : try
619 : {
620 9850 : yyla.type = yytranslate_ (yylex (&yyla.value, &yyla.location, Reader));
621 : }
622 0 : catch (const syntax_error& yyexc)
623 : {
624 0 : error (yyexc);
625 0 : goto yyerrlab1;
626 : }
627 : }
628 12106 : YY_SYMBOL_PRINT ("Next token is", yyla);
629 :
630 : /* If the proper action on seeing token YYLA.TYPE is to reduce or
631 : to detect an error, take that action. */
632 12106 : yyn += yyla.type_get ();
633 12106 : if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ())
634 2256 : goto yydefault;
635 :
636 : // Reduce or error.
637 9850 : yyn = yytable_[yyn];
638 9850 : if (yyn <= 0)
639 : {
640 0 : if (yy_table_value_is_error_ (yyn))
641 0 : goto yyerrlab;
642 0 : yyn = -yyn;
643 0 : goto yyreduce;
644 : }
645 :
646 : // Count tokens shifted since error; after three, turn off error status.
647 9850 : if (yyerrstatus_)
648 0 : --yyerrstatus_;
649 :
650 : // Shift the lookahead token.
651 9850 : yypush_ ("Shifting", yyn, yyla);
652 9850 : goto yynewstate;
653 :
654 : /*-----------------------------------------------------------.
655 : | yydefault -- do the default action for the current state. |
656 : `-----------------------------------------------------------*/
657 : yydefault:
658 6225 : yyn = yydefact_[yystack_[0].state];
659 6225 : if (yyn == 0)
660 0 : goto yyerrlab;
661 6225 : goto yyreduce;
662 :
663 : /*-----------------------------.
664 : | yyreduce -- Do a reduction. |
665 : `-----------------------------*/
666 : yyreduce:
667 6225 : yylen = yyr2_[yyn];
668 : {
669 12450 : stack_symbol_type yylhs;
670 6225 : yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]);
671 : /* If YYLEN is nonzero, implement the default value of the
672 : action: '$$ = $1'. Otherwise, use the top of the stack.
673 :
674 : Otherwise, the following line sets YYLHS.VALUE to garbage.
675 : This behavior is undocumented and Bison users should not rely
676 : upon it. */
677 6225 : if (yylen)
678 6209 : yylhs.value = yystack_[yylen - 1].value;
679 : else
680 16 : yylhs.value = yystack_[0].value;
681 :
682 : // Compute the default @$.
683 : {
684 6225 : slice<stack_symbol_type, stack_type> slice (yystack_, yylen);
685 6225 : YYLLOC_DEFAULT (yylhs.location, slice, yylen);
686 : }
687 :
688 : // Perform the reduction.
689 6225 : YY_REDUCE_PRINT (yyn);
690 : try
691 : {
692 6225 : switch (yyn)
693 : {
694 : case 3:
695 : #line 191 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
696 : {Reader.MyLha.isDeterministic=false;}
697 : #line 698 "Lha-parser.cc" // lalr1.cc:859
698 0 : break;
699 :
700 : case 11:
701 : #line 205 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
702 : {sprintf((yylhs.value.expression),"%i",(yystack_[0].value.IntVal));}
703 : #line 704 "Lha-parser.cc" // lalr1.cc:859
704 9 : break;
705 :
706 : case 12:
707 : #line 206 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
708 : {
709 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.PlaceIndex.end())
710 : {std::ostringstream s; s<<" Marking.P->_PL_"<< (yystack_[0].value.name)->c_str()<<" ";
711 : sprintf((yylhs.value.expression), "%s",(s.str()).c_str());
712 : }
713 : else if(Reader.MyLha.LhaIntConstant.find(*(yystack_[0].value.name))!=Reader.MyLha.LhaIntConstant.end())
714 : {std::ostringstream s; s<<Reader.MyLha.LhaIntConstant[*(yystack_[0].value.name)];
715 : sprintf((yylhs.value.expression), "%s",(s.str()).c_str());
716 : } else {
717 : size_t vararray = Reader.MyLha.Vars.find(*(yystack_[0].value.name));
718 : if(vararray!= Reader.MyLha.NbVar && Reader.MyLha.Vars.type[vararray]==DISCRETE_VARIABLE){
719 : sprintf((yylhs.value.expression), " floor(Vars->%s)", Reader.MyLha.Vars.label[vararray].c_str() );
720 : } else {cout<<"'"<<*(yystack_[0].value.name)<<"' is not a place label or a defined constant"<<endl;YYABORT;}
721 : }
722 : }
723 : #line 724 "Lha-parser.cc" // lalr1.cc:859
724 0 : break;
725 :
726 : case 13:
727 : #line 221 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
728 : {
729 : auto pi = Reader.MyLha.PlaceIndex.find(*(yystack_[3].value.name));
730 : if( pi !=Reader.MyLha.PlaceIndex.end())
731 : {std::ostringstream s;
732 : s<<" Marking.P->_PL_"<< (yystack_[3].value.name)->c_str()<< ".mult";
733 : if(P.is_domain_impl_set){
734 : size_t coldom = Reader.MyLha.MyGspn->placeStruct[pi->second].colorDom;
735 : s << "("<< Reader.MyLha.MyGspn->colDoms[coldom].tokname()<< "(" << (yystack_[1].value.expression) << "))";
736 : } else s << (yystack_[1].value.expression);
737 : sprintf((yylhs.value.expression), "%s",(s.str()).c_str());
738 : }else{cout<<"'"<<*(yystack_[3].value.name)<<"' is not a place label "<<endl;YYABORT;}}
739 : #line 740 "Lha-parser.cc" // lalr1.cc:859
740 0 : break;
741 :
742 : case 14:
743 : #line 232 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
744 : {
745 : size_t vararray = Reader.MyLha.Vars.find(*(yystack_[3].value.name));
746 : if(vararray!= Reader.MyLha.NbVar && Reader.MyLha.Vars.type[vararray]==INT_INDEXED_DISC_ARRAY)
747 : {std::ostringstream s;
748 : s<<" Vars.P->" << Reader.MyLha.Vars.label[vararray] << "["<< *(yystack_[1].value.expression) << "]";
749 : sprintf((yylhs.value.expression), "%s",(s.str()).c_str());
750 : }else{cout<<"'"<<*(yystack_[3].value.name)<<"' is not a discrete array name "<<endl;YYABORT;}}
751 : #line 752 "Lha-parser.cc" // lalr1.cc:859
752 0 : break;
753 :
754 : case 15:
755 : #line 239 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
756 : {snprintf((yylhs.value.expression),BUFF_SIZE,"( %s )", (yystack_[1].value.expression)); }
757 : #line 758 "Lha-parser.cc" // lalr1.cc:859
758 0 : break;
759 :
760 : case 16:
761 : #line 240 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
762 : {snprintf((yylhs.value.expression),BUFF_SIZE,"-%s",(yystack_[0].value.expression));}
763 : #line 764 "Lha-parser.cc" // lalr1.cc:859
764 0 : break;
765 :
766 : case 17:
767 : #line 241 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
768 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s + %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
769 : #line 770 "Lha-parser.cc" // lalr1.cc:859
770 0 : break;
771 :
772 : case 18:
773 : #line 242 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
774 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s - %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
775 : #line 776 "Lha-parser.cc" // lalr1.cc:859
776 0 : break;
777 :
778 : case 19:
779 : #line 243 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
780 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s * %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
781 : #line 782 "Lha-parser.cc" // lalr1.cc:859
782 0 : break;
783 :
784 : case 20:
785 : #line 244 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
786 : {snprintf((yylhs.value.expression),BUFF_SIZE,"pow(%s , %s)", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
787 : #line 788 "Lha-parser.cc" // lalr1.cc:859
788 0 : break;
789 :
790 : case 21:
791 : #line 245 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
792 : {snprintf((yylhs.value.expression),BUFF_SIZE,"floor( %s )", (yystack_[1].value.expression)); }
793 : #line 794 "Lha-parser.cc" // lalr1.cc:859
794 0 : break;
795 :
796 : case 22:
797 : #line 246 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
798 : {snprintf((yylhs.value.expression),BUFF_SIZE,"floor( %s /double(%s))", (yystack_[3].value.expression),(yystack_[1].value.expression)); }
799 : #line 800 "Lha-parser.cc" // lalr1.cc:859
800 0 : break;
801 :
802 : case 23:
803 : #line 247 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
804 : {snprintf((yylhs.value.expression),BUFF_SIZE,"min(%s , %s)", (yystack_[3].value.expression), (yystack_[1].value.expression)); }
805 : #line 806 "Lha-parser.cc" // lalr1.cc:859
806 0 : break;
807 :
808 : case 24:
809 : #line 248 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
810 : {snprintf((yylhs.value.expression),BUFF_SIZE,"max(%s , %s)", (yystack_[3].value.expression), (yystack_[1].value.expression)); }
811 : #line 812 "Lha-parser.cc" // lalr1.cc:859
812 0 : break;
813 :
814 : case 25:
815 : #line 249 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
816 : {snprintf((yylhs.value.expression),BUFF_SIZE,"((int)%s %% (int)%s)", (yystack_[3].value.expression), (yystack_[1].value.expression)); }
817 : #line 818 "Lha-parser.cc" // lalr1.cc:859
818 0 : break;
819 :
820 : case 26:
821 : #line 252 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
822 : {sprintf((yylhs.value.expression), "%f",(yystack_[0].value.RealVal));}
823 : #line 824 "Lha-parser.cc" // lalr1.cc:859
824 13 : break;
825 :
826 : case 27:
827 : #line 253 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
828 : {sprintf((yylhs.value.expression),"%d",(yystack_[0].value.IntVal));}
829 : #line 830 "Lha-parser.cc" // lalr1.cc:859
830 127 : break;
831 :
832 : case 28:
833 : #line 254 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
834 : {
835 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[1].value.name))!=Reader.MyLha.PlaceIndex.end())
836 : {std::ostringstream s; s<<" Marking.P->_PL_"<<(yystack_[1].value.name)->c_str();
837 : if(Reader.MyLha.MyGspn->placeStruct[Reader.MyLha.PlaceIndex[*(yystack_[1].value.name)]].colorDom !=0 )s <<".value()";
838 : sprintf((yylhs.value.expression), "%s ",(s.str()).c_str());
839 : }
840 : else {cout<<"'"<<*(yystack_[1].value.name)<<"' is not a place label"<<endl;YYABORT;}}
841 : #line 842 "Lha-parser.cc" // lalr1.cc:859
842 0 : break;
843 :
844 : case 29:
845 : #line 261 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
846 : {
847 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.PlaceIndex.end())
848 : {std::ostringstream s; s<<" Marking.P->_PL_"<<(yystack_[0].value.name)->c_str();
849 : if(Reader.MyLha.MyGspn->placeStruct[Reader.MyLha.PlaceIndex[*(yystack_[0].value.name)]].colorDom !=0 )s <<".card()";
850 : snprintf((yylhs.value.expression),BUFF_SIZE, "%s ",(s.str()).c_str());
851 : }
852 : else if(Reader.MyLha.LhaRealConstant.find(*(yystack_[0].value.name))!=Reader.MyLha.LhaRealConstant.end())
853 : {std::ostringstream s; s<<Reader.MyLha.LhaRealConstant[*(yystack_[0].value.name)];
854 : snprintf((yylhs.value.expression), BUFF_SIZE,"%s",(s.str()).c_str());
855 : }
856 :
857 : else{cout<<"'"<<*(yystack_[0].value.name)<<"' is not a place label or a defined constant"<<endl;YYABORT;}}
858 : #line 859 "Lha-parser.cc" // lalr1.cc:859
859 470 : break;
860 :
861 : case 30:
862 : #line 273 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
863 : {
864 : auto pi = Reader.MyLha.PlaceIndex.find(*(yystack_[3].value.name));
865 : if( pi !=Reader.MyLha.PlaceIndex.end())
866 : {std::ostringstream s;
867 : s<<" Marking.P->_PL_"<< (yystack_[3].value.name)->c_str()<< ".mult";
868 : if(P.is_domain_impl_set){
869 : size_t coldom = Reader.MyLha.MyGspn->placeStruct[pi->second].colorDom;
870 : s << "("<< Reader.MyLha.MyGspn->colDoms[coldom].tokname()<< "(" << (yystack_[1].value.expression) << "))";
871 : } else s << (yystack_[1].value.expression);
872 : snprintf((yylhs.value.expression),BUFF_SIZE, "%s",(s.str()).c_str());
873 : }else{cout<<"'"<<*(yystack_[3].value.name)<<"' is not a place label "<<endl;YYABORT;}}
874 : #line 875 "Lha-parser.cc" // lalr1.cc:859
875 0 : break;
876 :
877 : case 31:
878 : #line 284 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
879 : {snprintf((yylhs.value.expression),BUFF_SIZE,"( %s )", (yystack_[1].value.expression)); }
880 : #line 881 "Lha-parser.cc" // lalr1.cc:859
881 10 : break;
882 :
883 : case 32:
884 : #line 285 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
885 : {snprintf((yylhs.value.expression),BUFF_SIZE,"-%s",(yystack_[0].value.expression));}
886 : #line 887 "Lha-parser.cc" // lalr1.cc:859
887 0 : break;
888 :
889 : case 33:
890 : #line 286 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
891 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s /double(%s)", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
892 : #line 893 "Lha-parser.cc" // lalr1.cc:859
893 0 : break;
894 :
895 : case 34:
896 : #line 287 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
897 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s + %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
898 : #line 899 "Lha-parser.cc" // lalr1.cc:859
899 34 : break;
900 :
901 : case 35:
902 : #line 288 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
903 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s - %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
904 : #line 905 "Lha-parser.cc" // lalr1.cc:859
905 0 : break;
906 :
907 : case 36:
908 : #line 289 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
909 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s * %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
910 : #line 911 "Lha-parser.cc" // lalr1.cc:859
911 101 : break;
912 :
913 : case 37:
914 : #line 290 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
915 : {snprintf((yylhs.value.expression),BUFF_SIZE,"pow(%s , %s)", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
916 : #line 917 "Lha-parser.cc" // lalr1.cc:859
917 0 : break;
918 :
919 : case 38:
920 : #line 291 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
921 : {snprintf((yylhs.value.expression),BUFF_SIZE,"floor( %s )", (yystack_[1].value.expression)); }
922 : #line 923 "Lha-parser.cc" // lalr1.cc:859
923 0 : break;
924 :
925 : case 39:
926 : #line 292 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
927 : {snprintf((yylhs.value.expression),BUFF_SIZE,"min(%s , %s)", (yystack_[3].value.expression), (yystack_[1].value.expression)); }
928 : #line 929 "Lha-parser.cc" // lalr1.cc:859
929 0 : break;
930 :
931 : case 40:
932 : #line 293 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
933 : {snprintf((yylhs.value.expression),BUFF_SIZE,"max(%s , %s)", (yystack_[3].value.expression), (yystack_[1].value.expression)); }
934 : #line 935 "Lha-parser.cc" // lalr1.cc:859
935 0 : break;
936 :
937 : case 41:
938 : #line 295 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
939 : {sprintf((yylhs.value.expression), "%f",(yystack_[0].value.RealVal));}
940 : #line 941 "Lha-parser.cc" // lalr1.cc:859
941 0 : break;
942 :
943 : case 42:
944 : #line 296 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
945 : {sprintf((yylhs.value.expression),"%d",(yystack_[0].value.IntVal));}
946 : #line 947 "Lha-parser.cc" // lalr1.cc:859
947 121 : break;
948 :
949 : case 43:
950 : #line 297 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
951 : {
952 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[1].value.name))!=Reader.MyLha.PlaceIndex.end())
953 : {std::ostringstream s; s<<" Marking.P->_PL_"<<(yystack_[1].value.name)->c_str();
954 : if(Reader.MyLha.MyGspn->placeStruct[Reader.MyLha.PlaceIndex[*(yystack_[1].value.name)]].colorDom !=0 )s <<".value()";
955 : sprintf((yylhs.value.expression), "%s ",(s.str()).c_str());
956 : }
957 : else {cout<<"'"<<*(yystack_[1].value.name)<<"' is not a place label"<<endl;YYABORT;}}
958 : #line 959 "Lha-parser.cc" // lalr1.cc:859
959 0 : break;
960 :
961 : case 44:
962 : #line 304 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
963 : {
964 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.PlaceIndex.end())
965 : {std::ostringstream s; s<<" Marking.P->_PL_"<<(yystack_[0].value.name)->c_str();
966 : if(Reader.MyLha.MyGspn->placeStruct[Reader.MyLha.PlaceIndex[*(yystack_[0].value.name)]].colorDom !=0 )s <<".card()";
967 : snprintf((yylhs.value.expression),BUFF_SIZE, "%s ",(s.str()).c_str());
968 : }
969 : else{ if(Reader.MyLha.LhaRealConstant.find(*(yystack_[0].value.name))!=Reader.MyLha.LhaRealConstant.end())
970 : {std::ostringstream s; s<<Reader.MyLha.LhaRealConstant[*(yystack_[0].value.name)];
971 : snprintf((yylhs.value.expression),BUFF_SIZE, "%s",(s.str()).c_str());
972 : }
973 : else {if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
974 : {
975 : std::ostringstream s; s<<"Vars->"<< (yystack_[0].value.name)->c_str();
976 : snprintf((yylhs.value.expression),BUFF_SIZE, "%s",(s.str()).c_str());
977 : }
978 : else {cout<<"'"<<*(yystack_[0].value.name)<<"' is not a place label, a lha variable or a defined constant"<<endl;YYABORT;}
979 : }
980 : }
981 : }
982 : #line 983 "Lha-parser.cc" // lalr1.cc:859
983 254 : break;
984 :
985 : case 45:
986 : #line 323 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
987 : {
988 : size_t varin = Reader.MyLha.Vars.find(*(yystack_[3].value.name));
989 : if(varin != Reader.MyLha.Vars.label.size()){
990 : snprintf((yylhs.value.expression),BUFF_SIZE, "Vars->%s[%s]", (yystack_[3].value.name)->c_str(),(yystack_[1].value.expression));
991 : }
992 : else {cout<<"'"<<*(yystack_[3].value.name)<<"' is not an lha array variable"<<endl;YYABORT;}
993 : }
994 : #line 995 "Lha-parser.cc" // lalr1.cc:859
995 0 : break;
996 :
997 : case 46:
998 : #line 330 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
999 : {
1000 : auto pi = Reader.MyLha.PlaceIndex.find(*(yystack_[3].value.name));
1001 : if( pi !=Reader.MyLha.PlaceIndex.end())
1002 : {std::ostringstream s;
1003 : s<<" Marking.P->_PL_"<< (yystack_[3].value.name)->c_str()<< ".mult";
1004 : if(P.is_domain_impl_set){
1005 : size_t coldom = Reader.MyLha.MyGspn->placeStruct[pi->second].colorDom;
1006 : s << "("<< Reader.MyLha.MyGspn->colDoms[coldom].tokname()<< "(" << (yystack_[1].value.expression) << "))";
1007 : } else s << (yystack_[1].value.expression);
1008 : snprintf((yylhs.value.expression),BUFF_SIZE, "%s",(s.str()).c_str());
1009 : }else{cout<<"'"<<*(yystack_[3].value.name)<<"' is not a place label "<<endl;YYABORT;}}
1010 : #line 1011 "Lha-parser.cc" // lalr1.cc:859
1011 0 : break;
1012 :
1013 : case 47:
1014 : #line 341 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1015 : {snprintf((yylhs.value.expression),BUFF_SIZE,"( %s )", (yystack_[1].value.expression)); }
1016 : #line 1017 "Lha-parser.cc" // lalr1.cc:859
1017 0 : break;
1018 :
1019 : case 48:
1020 : #line 342 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1021 : {snprintf((yylhs.value.expression),BUFF_SIZE,"-%s",(yystack_[0].value.expression));}
1022 : #line 1023 "Lha-parser.cc" // lalr1.cc:859
1023 0 : break;
1024 :
1025 : case 49:
1026 : #line 343 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1027 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s /double(%s)", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
1028 : #line 1029 "Lha-parser.cc" // lalr1.cc:859
1029 1 : break;
1030 :
1031 : case 50:
1032 : #line 344 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1033 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s + %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
1034 : #line 1035 "Lha-parser.cc" // lalr1.cc:859
1035 170 : break;
1036 :
1037 : case 51:
1038 : #line 345 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1039 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s - %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
1040 : #line 1041 "Lha-parser.cc" // lalr1.cc:859
1041 0 : break;
1042 :
1043 : case 52:
1044 : #line 346 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1045 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s * %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
1046 : #line 1047 "Lha-parser.cc" // lalr1.cc:859
1047 0 : break;
1048 :
1049 : case 53:
1050 : #line 347 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1051 : {snprintf((yylhs.value.expression),BUFF_SIZE,"pow(%s , %s)", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
1052 : #line 1053 "Lha-parser.cc" // lalr1.cc:859
1053 0 : break;
1054 :
1055 : case 54:
1056 : #line 348 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1057 : {snprintf((yylhs.value.expression),BUFF_SIZE,"floor( %s )", (yystack_[1].value.expression)); }
1058 : #line 1059 "Lha-parser.cc" // lalr1.cc:859
1059 0 : break;
1060 :
1061 : case 55:
1062 : #line 349 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1063 : {snprintf((yylhs.value.expression),BUFF_SIZE,"min(%s , %s)", (yystack_[3].value.expression), (yystack_[1].value.expression)); }
1064 : #line 1065 "Lha-parser.cc" // lalr1.cc:859
1065 0 : break;
1066 :
1067 : case 56:
1068 : #line 350 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1069 : {snprintf((yylhs.value.expression),BUFF_SIZE,"max(%s , %s)", (yystack_[3].value.expression), (yystack_[1].value.expression)); }
1070 : #line 1071 "Lha-parser.cc" // lalr1.cc:859
1071 0 : break;
1072 :
1073 : case 57:
1074 : #line 352 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1075 : {if(P.is_domain_impl_set){
1076 : snprintf((yylhs.value.expression),BUFF_SIZE,"%s", (yystack_[1].value.name)->c_str()); }
1077 : else snprintf((yylhs.value.expression),BUFF_SIZE,"[%s]", (yystack_[1].value.name)->c_str()); }
1078 : #line 1079 "Lha-parser.cc" // lalr1.cc:859
1079 0 : break;
1080 :
1081 : case 58:
1082 : #line 355 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1083 : {if(P.is_domain_impl_set){
1084 : snprintf((yylhs.value.expression),BUFF_SIZE,"%s,%s", (yystack_[2].value.name)->c_str(), (yystack_[0].value.expression)); }
1085 : else
1086 : snprintf((yylhs.value.expression),BUFF_SIZE,"[%s]%s", (yystack_[2].value.name)->c_str(), (yystack_[0].value.expression)); }
1087 : #line 1088 "Lha-parser.cc" // lalr1.cc:859
1088 0 : break;
1089 :
1090 : case 61:
1091 : #line 362 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1092 : {Reader.MyLha.NbVar=0;}
1093 : #line 1094 "Lha-parser.cc" // lalr1.cc:859
1094 0 : break;
1095 :
1096 : case 62:
1097 : #line 363 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1098 : {Reader.MyLha.NbLoc=0;}
1099 : #line 1100 "Lha-parser.cc" // lalr1.cc:859
1100 0 : break;
1101 :
1102 : case 63:
1103 : #line 364 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1104 : {Reader.MyLha.NbVar=0;Reader.MyLha.NbLoc=0;}
1105 : #line 1106 "Lha-parser.cc" // lalr1.cc:859
1106 16 : break;
1107 :
1108 : case 68:
1109 : #line 373 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1110 : {if(Reader.MyLha.LhaRealConstant.find(*(yystack_[3].value.name))!=Reader.MyLha.LhaRealConstant.end())
1111 : {cout<<"Constant "<<*(yystack_[3].value.name)<<" already defined."<<endl; YYABORT;}
1112 : else {string st=(yystack_[1].value.expression);
1113 : if (Reader.P.constants.count(*(yystack_[3].value.name))>0)st = Reader.P.constants[*(yystack_[3].value.name)];
1114 :
1115 : LhaEvaluate.parse(st);
1116 : Reader.MyLha.LhaIntConstant[*(yystack_[3].value.name)]=LhaEvaluate.IntResult;Reader.MyLha.LhaRealConstant[*(yystack_[3].value.name)]=LhaEvaluate.RealResult;}
1117 : }
1118 : #line 1119 "Lha-parser.cc" // lalr1.cc:859
1119 9 : break;
1120 :
1121 : case 69:
1122 : #line 382 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1123 : {if(Reader.MyLha.LhaRealConstant.find(*(yystack_[3].value.name))!=Reader.MyLha.LhaRealConstant.end())
1124 : {cout<<"Constant "<<*(yystack_[3].value.name)<<" already defined."<<endl; YYABORT;}
1125 : else {string st=(yystack_[1].value.expression);
1126 : if (Reader.P.constants.count(*(yystack_[3].value.name))>0)st = Reader.P.constants[*(yystack_[3].value.name)];
1127 : LhaEvaluate.parse(st);
1128 : Reader.MyLha.LhaRealConstant[*(yystack_[3].value.name)]=LhaEvaluate.RealResult;}
1129 : }
1130 : #line 1131 "Lha-parser.cc" // lalr1.cc:859
1131 41 : break;
1132 :
1133 : case 70:
1134 : #line 391 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1135 : {if(Reader.MyLha.LhaRealHybrid.find(*(yystack_[1].value.name))!=Reader.MyLha.LhaRealHybrid.end())
1136 : {cout<<"Hybrid Variable "<<*(yystack_[1].value.name)<<" defined twice in the LHA."<<endl; YYABORT;}
1137 : else {
1138 : Reader.MyLha.LhaIntHybrid[*(yystack_[1].value.name)]=1;
1139 : Reader.MyLha.LhaRealHybrid[*(yystack_[1].value.name)]=1.0;
1140 : }
1141 : }
1142 : #line 1143 "Lha-parser.cc" // lalr1.cc:859
1143 0 : break;
1144 :
1145 : case 71:
1146 : #line 399 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1147 : {if(Reader.MyLha.LhaRealHybrid.find(*(yystack_[1].value.name))!=Reader.MyLha.LhaRealHybrid.end())
1148 : {cout<<"Hybrid Variable "<<*(yystack_[1].value.name)<<" defined twice in the LHA."<<endl; YYABORT;}
1149 : else {
1150 : Reader.MyLha.LhaRealHybrid[*(yystack_[1].value.name)]=1.0;
1151 : }
1152 : }
1153 : #line 1154 "Lha-parser.cc" // lalr1.cc:859
1154 0 : break;
1155 :
1156 : case 72:
1157 : #line 408 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1158 : {Reader.MyLha.NbVar=(yystack_[1].value.IntVal);}
1159 : #line 1160 "Lha-parser.cc" // lalr1.cc:859
1160 11 : break;
1161 :
1162 : case 73:
1163 : #line 410 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1164 : {Reader.MyLha.NbLoc=(yystack_[1].value.IntVal);}
1165 : #line 1166 "Lha-parser.cc" // lalr1.cc:859
1166 11 : break;
1167 :
1168 : case 76:
1169 : #line 415 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1170 : {
1171 : if(Reader.MyLha.NbVar==0)Reader.MyLha.NbVar = Reader.MyLha.Vars.label.size();
1172 : if(Reader.MyLha.Vars.label.size()!=Reader.MyLha.NbVar){
1173 : std::cout<<"Variable label missing or redeclared, please check your variables list"<<std::endl;
1174 : YYABORT;
1175 : }
1176 :
1177 : FuncFlowVector.resize(Reader.MyLha.NbVar);
1178 : FuncUpdateVector.resize(Reader.MyLha.NbVar);
1179 : FuncUpdateVectorIndex.resize(Reader.MyLha.NbVar);
1180 : CoeffsVector.resize(Reader.MyLha.NbVar);
1181 :
1182 : for(const auto &it : Reader.MyLha.TransitionIndex)
1183 : PetriTransitions.insert(it.first);
1184 : }
1185 : #line 1186 "Lha-parser.cc" // lalr1.cc:859
1186 27 : break;
1187 :
1188 : case 77:
1189 : #line 431 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1190 : {
1191 : Reader.MyLha.Vars.label.push_back(*(yystack_[0].value.name));
1192 : Reader.MyLha.Vars.initialValue.push_back(0.0);
1193 : Reader.MyLha.Vars.type.push_back(CONTINIOUS_VARIABLE);
1194 : Reader.MyLha.Vars.colorDomain.push_back(UNCOLORED_DOMAIN);
1195 : Reader.MyLha.Vars.isTraced.push_back(true);
1196 : //Reader.MyLha.VarIndex[*$1]=Reader.MyLha.VarLabel.size()-1;
1197 : }
1198 : #line 1199 "Lha-parser.cc" // lalr1.cc:859
1199 27 : break;
1200 :
1201 : case 78:
1202 : #line 439 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1203 : {
1204 :
1205 : Reader.MyLha.Vars.label.push_back(*(yystack_[0].value.name));
1206 : Reader.MyLha.Vars.initialValue.push_back(0.0);
1207 : Reader.MyLha.Vars.type.push_back(DISCRETE_VARIABLE);
1208 : Reader.MyLha.Vars.colorDomain.push_back(UNCOLORED_DOMAIN);
1209 : Reader.MyLha.Vars.isTraced.push_back(true);
1210 : //Reader.MyLha.VarIndex[*$1]=Reader.MyLha.VarLabel.size()-1;
1211 :
1212 : }
1213 : #line 1214 "Lha-parser.cc" // lalr1.cc:859
1214 0 : break;
1215 :
1216 : case 79:
1217 : #line 449 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1218 : {
1219 :
1220 : Reader.MyLha.Vars.label.push_back(*(yystack_[3].value.name));
1221 : Reader.MyLha.Vars.initialValue.push_back(0.0);
1222 : Reader.MyLha.Vars.type.push_back(INT_INDEXED_DISC_ARRAY);
1223 : Reader.MyLha.Vars.colorDomain.push_back((yystack_[1].value.IntVal));
1224 : Reader.MyLha.Vars.isTraced.push_back(true);
1225 : //Reader.MyLha.VarIndex[*$1]=Reader.MyLha.VarLabel.size()-1;
1226 :
1227 : }
1228 : #line 1229 "Lha-parser.cc" // lalr1.cc:859
1229 0 : break;
1230 :
1231 : case 80:
1232 : #line 460 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1233 : {
1234 : Reader.MyLha.Vars.label.push_back(*(yystack_[0].value.name));
1235 : Reader.MyLha.Vars.initialValue.push_back(0.0);
1236 : Reader.MyLha.Vars.type.push_back(CONTINIOUS_VARIABLE);
1237 : Reader.MyLha.Vars.colorDomain.push_back(UNCOLORED_DOMAIN);
1238 : Reader.MyLha.Vars.isTraced.push_back(true);
1239 : //Reader.MyLha.VarIndex[*$3]=Reader.MyLha.VarLabel.size()-1;
1240 : }
1241 : #line 1242 "Lha-parser.cc" // lalr1.cc:859
1242 184 : break;
1243 :
1244 : case 81:
1245 : #line 468 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1246 : {
1247 : Reader.MyLha.Vars.label.push_back(*(yystack_[0].value.name));
1248 : Reader.MyLha.Vars.initialValue.push_back(0.0);
1249 : Reader.MyLha.Vars.type.push_back(DISCRETE_VARIABLE);
1250 : Reader.MyLha.Vars.colorDomain.push_back(UNCOLORED_DOMAIN);
1251 : Reader.MyLha.Vars.isTraced.push_back(true);
1252 : //Reader.MyLha.VarIndex[*$3]=Reader.MyLha.VarLabel.size()-1;
1253 : }
1254 : #line 1255 "Lha-parser.cc" // lalr1.cc:859
1255 16 : break;
1256 :
1257 : case 82:
1258 : #line 476 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1259 : {
1260 : Reader.MyLha.Vars.label.push_back(*(yystack_[3].value.name));
1261 : Reader.MyLha.Vars.initialValue.push_back(0.0);
1262 : Reader.MyLha.Vars.type.push_back(INT_INDEXED_DISC_ARRAY);
1263 : Reader.MyLha.Vars.colorDomain.push_back((yystack_[1].value.IntVal));
1264 : Reader.MyLha.Vars.isTraced.push_back(true);
1265 :
1266 : }
1267 : #line 1268 "Lha-parser.cc" // lalr1.cc:859
1268 0 : break;
1269 :
1270 : case 83:
1271 : #line 485 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1272 : {
1273 : if(Reader.MyLha.NbLoc ==0)Reader.MyLha.NbLoc = Reader.MyLha.LocIndex.size();
1274 : if(Reader.MyLha.LocIndex.size()!=Reader.MyLha.NbLoc){
1275 : std::cout<<"Location label missing or redeclared, please check your locations list"<<std::endl;
1276 : YYABORT;
1277 : }
1278 : Reader.MyLha.FuncLocProperty=vector<string>(Reader.MyLha.NbLoc,"");
1279 : Reader.MyLha.FuncFlow=vector<vector<string> >(Reader.MyLha.NbLoc,vector<string>(Reader.MyLha.NbVar,""));
1280 : }
1281 : #line 1282 "Lha-parser.cc" // lalr1.cc:859
1282 27 : break;
1283 :
1284 : case 84:
1285 : #line 495 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1286 : {
1287 : Reader.MyLha.LocLabel.push_back(*(yystack_[0].value.name));
1288 : Reader.MyLha.LocIndex[*(yystack_[0].value.name)]=Reader.MyLha.LocLabel.size()-1;
1289 : }
1290 : #line 1291 "Lha-parser.cc" // lalr1.cc:859
1291 27 : break;
1292 :
1293 : case 85:
1294 : #line 499 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1295 : {Reader.MyLha.LocLabel.push_back(*(yystack_[0].value.name));
1296 : Reader.MyLha.LocIndex[*(yystack_[0].value.name)]=Reader.MyLha.LocLabel.size()-1;
1297 : }
1298 : #line 1299 "Lha-parser.cc" // lalr1.cc:859
1299 58 : break;
1300 :
1301 : case 89:
1302 : #line 509 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1303 : {
1304 :
1305 : if(Reader.MyLha.LocIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.LocIndex.end())
1306 : Reader.MyLha.InitLoc.insert(Reader.MyLha.LocIndex[*(yystack_[0].value.name)]);
1307 : else cout<<"Unknown location:" << *(yystack_[0].value.name) <<endl;
1308 :
1309 :
1310 : }
1311 : #line 1312 "Lha-parser.cc" // lalr1.cc:859
1312 27 : break;
1313 :
1314 : case 90:
1315 : #line 517 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1316 : {if(Reader.MyLha.LocIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.LocIndex.end())
1317 : Reader.MyLha.InitLoc.insert(Reader.MyLha.LocIndex[*(yystack_[0].value.name)]);
1318 : else cout<<"Unknown location:"<< *(yystack_[0].value.name) << endl;
1319 : }
1320 : #line 1321 "Lha-parser.cc" // lalr1.cc:859
1321 0 : break;
1322 :
1323 : case 92:
1324 : #line 524 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1325 : {
1326 :
1327 : if(Reader.MyLha.LocIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.LocIndex.end())
1328 : Reader.MyLha.FinalLoc.insert(Reader.MyLha.LocIndex[*(yystack_[0].value.name)]);
1329 : else cout<<"Unknown location: "<< *(yystack_[0].value.name) <<endl;
1330 :
1331 :
1332 : }
1333 : #line 1334 "Lha-parser.cc" // lalr1.cc:859
1334 27 : break;
1335 :
1336 : case 93:
1337 : #line 532 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1338 : {if(Reader.MyLha.LocIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.LocIndex.end())
1339 : Reader.MyLha.FinalLoc.insert(Reader.MyLha.LocIndex[*(yystack_[0].value.name)]);
1340 : else {cout<<"Unknown location: "<< *(yystack_[0].value.name) <<endl;YYABORT;}
1341 : }
1342 : #line 1343 "Lha-parser.cc" // lalr1.cc:859
1343 8 : break;
1344 :
1345 : case 96:
1346 : #line 546 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1347 : {
1348 : for(size_t l=0; l<Reader.MyLha.FuncLocProperty.size();l++)
1349 : if(Reader.MyLha.FuncLocProperty[l]=="")
1350 : {cout<<"Some locations are not definded. Please define all the declared locations."<<endl;
1351 : YYABORT;}
1352 :
1353 : Reader.MyLha.Out_S_Edges.resize(Reader.MyLha.NbLoc);
1354 : Reader.MyLha.Out_A_Edges.resize(Reader.MyLha.NbLoc);
1355 : }
1356 : #line 1357 "Lha-parser.cc" // lalr1.cc:859
1357 27 : break;
1358 :
1359 : case 99:
1360 : #line 560 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1361 : {
1362 : auto loc = Reader.MyLha.LocIndex.find(*(yystack_[8].value.name));
1363 : if(loc !=Reader.MyLha.LocIndex.end()){
1364 : Reader.MyLha.FuncLocProperty[loc->second]= (yystack_[6].value.expression);
1365 : Reader.MyLha.FuncFlow[loc->second] = FuncFlowVector;
1366 : FuncFlowVector=vector<string>(Reader.MyLha.NbVar,"");
1367 : }
1368 : else {cout<<"Unknown location: "<< *(yystack_[8].value.name) <<endl;YYABORT;}
1369 :
1370 : }
1371 : #line 1372 "Lha-parser.cc" // lalr1.cc:859
1372 41 : break;
1373 :
1374 : case 100:
1375 : #line 573 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1376 : {
1377 : auto loc = Reader.MyLha.LocIndex.find(*(yystack_[4].value.name));
1378 : if(loc != Reader.MyLha.LocIndex.end()){
1379 : Reader.MyLha.FuncLocProperty[loc->second]= (yystack_[2].value.expression);
1380 : Reader.MyLha.FuncFlow[loc->second] = FuncFlowVector;
1381 : }
1382 : else {cout<<"Unknown location: "<< *(yystack_[4].value.name) <<endl;YYABORT;}
1383 :
1384 :
1385 : }
1386 : #line 1387 "Lha-parser.cc" // lalr1.cc:859
1387 44 : break;
1388 :
1389 : case 103:
1390 : #line 586 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1391 : {
1392 : if(Reader.MyLha.Vars.find(*(yystack_[2].value.name))!=Reader.MyLha.Vars.label.size())
1393 : FuncFlowVector[Reader.MyLha.Vars.find(*(yystack_[2].value.name))]=(yystack_[0].value.expression);
1394 : else{ cout<<"'"<<*(yystack_[2].value.name)<<"' is not an Lha variable"<<endl;
1395 : YYABORT;}
1396 : }
1397 : #line 1398 "Lha-parser.cc" // lalr1.cc:859
1398 143 : break;
1399 :
1400 : case 104:
1401 : #line 593 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1402 : {snprintf((yylhs.value.expression),BUFF_SIZE,"true");}
1403 : #line 1404 "Lha-parser.cc" // lalr1.cc:859
1404 44 : break;
1405 :
1406 : case 105:
1407 : #line 594 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1408 : {snprintf((yylhs.value.expression),BUFF_SIZE,"false");}
1409 : #line 1410 "Lha-parser.cc" // lalr1.cc:859
1410 0 : break;
1411 :
1412 : case 106:
1413 : #line 595 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1414 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s", (yystack_[0].value.expression));}
1415 : #line 1416 "Lha-parser.cc" // lalr1.cc:859
1416 75 : break;
1417 :
1418 : case 107:
1419 : #line 596 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1420 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s && %s", (yystack_[2].value.expression), (yystack_[0].value.expression));}
1421 : #line 1422 "Lha-parser.cc" // lalr1.cc:859
1422 28 : break;
1423 :
1424 : case 108:
1425 : #line 597 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1426 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s || %s", (yystack_[2].value.expression), (yystack_[0].value.expression));}
1427 : #line 1428 "Lha-parser.cc" // lalr1.cc:859
1428 6 : break;
1429 :
1430 : case 109:
1431 : #line 598 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1432 : {snprintf((yylhs.value.expression),BUFF_SIZE,"( %s )", (yystack_[1].value.expression));}
1433 : #line 1434 "Lha-parser.cc" // lalr1.cc:859
1434 63 : break;
1435 :
1436 : case 110:
1437 : #line 599 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1438 : {snprintf((yylhs.value.expression),BUFF_SIZE,"! %s", (yystack_[0].value.expression));}
1439 : #line 1440 "Lha-parser.cc" // lalr1.cc:859
1440 9 : break;
1441 :
1442 : case 111:
1443 : #line 601 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1444 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s == %s", (yystack_[2].value.expression), (yystack_[0].value.expression));}
1445 : #line 1446 "Lha-parser.cc" // lalr1.cc:859
1446 48 : break;
1447 :
1448 : case 112:
1449 : #line 602 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1450 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s <= %s", (yystack_[2].value.expression), (yystack_[0].value.expression));}
1451 : #line 1452 "Lha-parser.cc" // lalr1.cc:859
1452 0 : break;
1453 :
1454 : case 113:
1455 : #line 603 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1456 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s >= %s", (yystack_[2].value.expression), (yystack_[0].value.expression));}
1457 : #line 1458 "Lha-parser.cc" // lalr1.cc:859
1458 0 : break;
1459 :
1460 : case 114:
1461 : #line 604 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1462 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s < %s", (yystack_[2].value.expression), (yystack_[0].value.expression));}
1463 : #line 1464 "Lha-parser.cc" // lalr1.cc:859
1464 8 : break;
1465 :
1466 : case 115:
1467 : #line 605 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1468 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s > %s", (yystack_[2].value.expression), (yystack_[0].value.expression));}
1469 : #line 1470 "Lha-parser.cc" // lalr1.cc:859
1470 19 : break;
1471 :
1472 : case 116:
1473 : #line 610 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1474 : {
1475 :
1476 : }
1477 : #line 1478 "Lha-parser.cc" // lalr1.cc:859
1478 27 : break;
1479 :
1480 : case 119:
1481 : #line 617 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1482 : {
1483 :
1484 : if(Reader.MyLha.LocIndex.find(*(yystack_[11].value.name))!=Reader.MyLha.LocIndex.end())
1485 : if(Reader.MyLha.LocIndex.find(*(yystack_[9].value.name))!=Reader.MyLha.LocIndex.end())
1486 : { int ne=Reader.MyLha.Edge.size();
1487 : Reader.MyLha.AnEdge.Index=ne;
1488 : Reader.MyLha.AnEdge.Source=Reader.MyLha.LocIndex[*(yystack_[11].value.name)];
1489 : Reader.MyLha.AnEdge.Target=Reader.MyLha.LocIndex[*(yystack_[9].value.name)];
1490 : Reader.MyLha.Edge.push_back(Reader.MyLha.AnEdge);
1491 : Reader.MyLha.EdgeActions.push_back(SubSet);
1492 : if(SubSet.size()>0) Reader.MyLha.Out_S_Edges[Reader.MyLha.AnEdge.Source].insert(ne);
1493 : else Reader.MyLha.Out_A_Edges[Reader.MyLha.AnEdge.Source].insert(ne);
1494 : SubSet.erase(SubSet.begin(),SubSet.end());
1495 : Reader.MyLha.ConstraintsCoeffs.push_back(CoeffsMatrix);
1496 : Reader.MyLha.ConstraintsConstants.push_back(CST);
1497 : Reader.MyLha.ConstraintsRelOp.push_back(comp);
1498 : Reader.MyLha.unTimeEdgeConstraints.push_back("true");
1499 : vector<string> vs;comp=vs;CST=vs;
1500 : vector <vector <string> > ms;CoeffsMatrix=ms;
1501 :
1502 : }
1503 : else {cout<<*(yystack_[9].value.name)<<" is not a location label"<<endl;YYABORT;}
1504 : else {cout<<*(yystack_[11].value.name)<<" is not a location label"<<endl;YYABORT;}
1505 : }
1506 : #line 1507 "Lha-parser.cc" // lalr1.cc:859
1507 177 : break;
1508 :
1509 : case 121:
1510 : #line 643 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1511 : {SubSet=PetriTransitions;}
1512 : #line 1513 "Lha-parser.cc" // lalr1.cc:859
1513 57 : break;
1514 :
1515 : case 122:
1516 : #line 644 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1517 : {set<string> temp=PetriTransitions;
1518 : for(set<string>::iterator it=SubSet.begin();it!=SubSet.end();it++)
1519 : temp.erase((*it));
1520 : SubSet=temp;}
1521 : #line 1522 "Lha-parser.cc" // lalr1.cc:859
1522 0 : break;
1523 :
1524 : case 125:
1525 : #line 652 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1526 : {if(Reader.MyLha.TransitionIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.TransitionIndex.end())
1527 : SubSet.insert(*(yystack_[0].value.name));
1528 : else {cout<<*(yystack_[0].value.name)<<" is not a Petri-net transition "<<endl;YYABORT;}
1529 : }
1530 : #line 1531 "Lha-parser.cc" // lalr1.cc:859
1531 84 : break;
1532 :
1533 : case 126:
1534 : #line 656 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1535 : {if(Reader.MyLha.TransitionIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.TransitionIndex.end())
1536 : SubSet.insert(*(yystack_[0].value.name));
1537 : else {cout<<*(yystack_[0].value.name)<<" is not a Petri-net transition "<<endl;YYABORT;}}
1538 : #line 1539 "Lha-parser.cc" // lalr1.cc:859
1539 40 : break;
1540 :
1541 : case 127:
1542 : #line 661 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1543 : {}
1544 : #line 1545 "Lha-parser.cc" // lalr1.cc:859
1545 141 : break;
1546 :
1547 : case 128:
1548 : #line 662 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1549 : {}
1550 : #line 1551 "Lha-parser.cc" // lalr1.cc:859
1551 0 : break;
1552 :
1553 : case 130:
1554 : #line 666 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1555 : {CoeffsMatrix.push_back(CoeffsVector);
1556 : comp.push_back("==");
1557 : CST.push_back((yystack_[0].value.expression));
1558 : vector<string> vs(Reader.MyLha.NbVar,"");CoeffsVector=vs;}
1559 : #line 1560 "Lha-parser.cc" // lalr1.cc:859
1560 37 : break;
1561 :
1562 : case 131:
1563 : #line 671 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1564 : {CoeffsMatrix.push_back(CoeffsVector);
1565 : comp.push_back("<=");
1566 : CST.push_back((yystack_[0].value.expression));
1567 : vector<string> vs(Reader.MyLha.NbVar,"");CoeffsVector=vs;}
1568 : #line 1569 "Lha-parser.cc" // lalr1.cc:859
1569 103 : break;
1570 :
1571 : case 132:
1572 : #line 676 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1573 : {CoeffsMatrix.push_back(CoeffsVector);
1574 : comp.push_back(">=");
1575 : CST.push_back((yystack_[0].value.expression));
1576 : vector<string> vs(Reader.MyLha.NbVar,"");CoeffsVector=vs;}
1577 : #line 1578 "Lha-parser.cc" // lalr1.cc:859
1578 1 : break;
1579 :
1580 : case 136:
1581 : #line 686 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1582 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1583 : {CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]="1";}
1584 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
1585 : #line 1586 "Lha-parser.cc" // lalr1.cc:859
1586 141 : break;
1587 :
1588 : case 137:
1589 : #line 690 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1590 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1591 : {std::ostringstream s; s<<"("<<(yystack_[3].value.expression)<<")";
1592 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();}
1593 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
1594 : #line 1595 "Lha-parser.cc" // lalr1.cc:859
1595 0 : break;
1596 :
1597 : case 138:
1598 : #line 695 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1599 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1600 : {std::ostringstream s; s<<(yystack_[2].value.IntVal);
1601 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();}
1602 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
1603 : #line 1604 "Lha-parser.cc" // lalr1.cc:859
1604 0 : break;
1605 :
1606 : case 139:
1607 : #line 700 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1608 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1609 : {std::ostringstream s; s<<(yystack_[2].value.RealVal);
1610 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();}
1611 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
1612 : #line 1613 "Lha-parser.cc" // lalr1.cc:859
1613 0 : break;
1614 :
1615 : case 140:
1616 : #line 705 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1617 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1618 : {if(Reader.MyLha.LhaRealConstant.find(*(yystack_[2].value.name))!=Reader.MyLha.LhaRealConstant.end())
1619 : {std::ostringstream s; s<<Reader.MyLha.LhaRealConstant[*(yystack_[2].value.name)];
1620 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();
1621 : }
1622 : else
1623 : {
1624 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[2].value.name))!=Reader.MyLha.PlaceIndex.end())
1625 : {std::ostringstream s; s<<"Marking.P->_PL_"<<(yystack_[2].value.name)->c_str()<<" ";
1626 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();
1627 : }
1628 : else
1629 : {
1630 : cout<<*(yystack_[2].value.name)<<" is not Petri-net Place or a defined constant "<<endl;
1631 : YYABORT;
1632 : }
1633 : }
1634 : }
1635 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}
1636 : }
1637 : #line 1638 "Lha-parser.cc" // lalr1.cc:859
1638 0 : break;
1639 :
1640 : case 141:
1641 : #line 726 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1642 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1643 : {CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]="-1";}
1644 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
1645 : #line 1646 "Lha-parser.cc" // lalr1.cc:859
1646 0 : break;
1647 :
1648 : case 142:
1649 : #line 730 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1650 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1651 : {std::ostringstream s; s<<"-("<<(yystack_[3].value.expression)<<")";
1652 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();}
1653 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
1654 : #line 1655 "Lha-parser.cc" // lalr1.cc:859
1655 0 : break;
1656 :
1657 : case 143:
1658 : #line 735 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1659 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1660 : {std::ostringstream s; s<<"-"<<(yystack_[2].value.IntVal);
1661 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();}
1662 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
1663 : #line 1664 "Lha-parser.cc" // lalr1.cc:859
1664 0 : break;
1665 :
1666 : case 144:
1667 : #line 740 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1668 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1669 : {std::ostringstream s; s<<"-"<<(yystack_[2].value.RealVal);
1670 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();}
1671 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
1672 : #line 1673 "Lha-parser.cc" // lalr1.cc:859
1673 0 : break;
1674 :
1675 : case 145:
1676 : #line 745 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1677 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
1678 : {if(Reader.MyLha.LhaRealConstant.find(*(yystack_[2].value.name))!=Reader.MyLha.LhaRealConstant.end())
1679 : {std::ostringstream s; s<<"-"<<Reader.MyLha.LhaRealConstant[*(yystack_[2].value.name)];
1680 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();
1681 : }
1682 : else
1683 : {
1684 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[2].value.name))!=Reader.MyLha.PlaceIndex.end())
1685 : {std::ostringstream s; s<<"-Marking.P->_PL_"<<(yystack_[2].value.name)->c_str()<<" ";
1686 : CoeffsVector[Reader.MyLha.Vars.find(*(yystack_[0].value.name))]=s.str();
1687 : }
1688 : else
1689 : {
1690 : cout<<*(yystack_[2].value.name)<<" is not Petri-net Place or a defined constant "<<endl;
1691 : YYABORT;
1692 : }
1693 : }
1694 : }
1695 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}
1696 : }
1697 : #line 1698 "Lha-parser.cc" // lalr1.cc:859
1698 0 : break;
1699 :
1700 : case 146:
1701 : #line 767 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1702 : {
1703 : Reader.MyLha.FuncEdgeUpdates.push_back(FuncUpdateVector);
1704 : Reader.MyLha.FuncEdgeUpdatesIndex.push_back(FuncUpdateVectorIndex);
1705 : FuncUpdateVector=vector<string>(Reader.MyLha.NbVar,"");
1706 : FuncUpdateVectorIndex=vector<string>(Reader.MyLha.NbVar,"");
1707 : }
1708 : #line 1709 "Lha-parser.cc" // lalr1.cc:859
1709 116 : break;
1710 :
1711 : case 147:
1712 : #line 773 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1713 : {
1714 : Reader.MyLha.FuncEdgeUpdates.push_back(FuncUpdateVector);
1715 : Reader.MyLha.FuncEdgeUpdatesIndex.push_back(FuncUpdateVectorIndex);
1716 : }
1717 : #line 1718 "Lha-parser.cc" // lalr1.cc:859
1718 61 : break;
1719 :
1720 : case 150:
1721 : #line 781 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1722 : {
1723 : if(Reader.MyLha.Vars.find(*(yystack_[2].value.name))!=Reader.MyLha.Vars.label.size())
1724 : {FuncUpdateVector[Reader.MyLha.Vars.find(*(yystack_[2].value.name))]= (yystack_[0].value.expression);}
1725 : else{cout<<*(yystack_[2].value.name)<<" is not variable label"<<endl;YYABORT;}
1726 : }
1727 : #line 1728 "Lha-parser.cc" // lalr1.cc:859
1728 204 : break;
1729 :
1730 : case 151:
1731 : #line 786 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1732 : {
1733 : size_t varin = Reader.MyLha.Vars.find(*(yystack_[5].value.name));
1734 : if(varin != Reader.MyLha.Vars.label.size()){
1735 : FuncUpdateVector[varin]= (yystack_[0].value.expression);
1736 : FuncUpdateVectorIndex[varin]= (yystack_[3].value.expression);
1737 : //cout << "var:" << *$1 << "\tindex:" << $3 << "\tupdate:" << $6<< endl;
1738 : }else{cout<<*(yystack_[5].value.name)<<" is not variable label"<<endl;YYABORT;}
1739 : }
1740 : #line 1741 "Lha-parser.cc" // lalr1.cc:859
1741 0 : break;
1742 :
1743 : case 154:
1744 : #line 800 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1745 : {
1746 : if((yystack_[1].value.TOPHASL) != NULL){
1747 : Reader.MyLha.HASLname.push_back(*(yystack_[3].value.name));
1748 : Reader.MyLha.HASLtop.push_back((yystack_[1].value.TOPHASL));
1749 : }else{
1750 : for(vector<string>::iterator it = Reader.MyLha.HASLname.begin(); it <Reader.MyLha.HASLname.end() ; it++){
1751 : if( it->find("$_$") == 0)
1752 : it->replace(0,3,*(yystack_[3].value.name));
1753 : }
1754 : }
1755 : }
1756 : #line 1757 "Lha-parser.cc" // lalr1.cc:859
1757 196 : break;
1758 :
1759 : case 155:
1760 : #line 811 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1761 : {
1762 : if((yystack_[1].value.TOPHASL) != NULL){
1763 : Reader.MyLha.HASLname.push_back("");
1764 : Reader.MyLha.HASLtop.push_back((yystack_[1].value.TOPHASL));
1765 : }else{
1766 : for(vector<string>::iterator it = Reader.MyLha.HASLname.begin(); it <Reader.MyLha.HASLname.end() ; it++){
1767 : if( it->find("$_$") == 0)
1768 : it->replace(0,3,"");
1769 : }
1770 : }
1771 : }
1772 : #line 1773 "Lha-parser.cc" // lalr1.cc:859
1773 10 : break;
1774 :
1775 : case 156:
1776 : #line 824 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1777 : {(yylhs.value.RealVal)=(yystack_[0].value.RealVal);}
1778 : #line 1779 "Lha-parser.cc" // lalr1.cc:859
1779 0 : break;
1780 :
1781 : case 157:
1782 : #line 825 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1783 : {(yylhs.value.RealVal)=(double)(yystack_[0].value.IntVal);}
1784 : #line 1785 "Lha-parser.cc" // lalr1.cc:859
1785 0 : break;
1786 :
1787 : case 158:
1788 : #line 826 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1789 : { if(Reader.MyLha.LhaRealConstant.find(*(yystack_[0].value.name))!=Reader.MyLha.LhaRealConstant.end())
1790 : (yylhs.value.RealVal) = Reader.MyLha.LhaRealConstant[*(yystack_[0].value.name)];
1791 : else { if(Reader.MyLha.LhaIntConstant.find(*(yystack_[0].value.name))!=Reader.MyLha.LhaIntConstant.end())
1792 : (yylhs.value.RealVal) = (double)Reader.MyLha.LhaIntConstant[*(yystack_[0].value.name)];
1793 : else {
1794 : cout<<*(yystack_[0].value.name)<<" is not a definded constant "<<endl;
1795 : YYABORT;
1796 : }}}
1797 : #line 1798 "Lha-parser.cc" // lalr1.cc:859
1798 0 : break;
1799 :
1800 : case 159:
1801 : #line 836 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1802 : {
1803 : Reader.MyLha.Algebraic.push_back((yystack_[1].value.expression));
1804 : (yylhs.value.TOPHASL) = new HaslFormulasTop((size_t)Reader.MyLha.Algebraic.size()-1);
1805 : }
1806 : #line 1807 "Lha-parser.cc" // lalr1.cc:859
1807 197 : break;
1808 :
1809 : case 160:
1810 : #line 840 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1811 : {
1812 : (yylhs.value.TOPHASL) = new HaslFormulasTop(PROBABILITY);
1813 : }
1814 : #line 1815 "Lha-parser.cc" // lalr1.cc:859
1815 9 : break;
1816 :
1817 : case 161:
1818 : #line 843 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1819 : {
1820 : (yylhs.value.TOPHASL) = new HaslFormulasTop(PROBABILITY);
1821 : }
1822 : #line 1823 "Lha-parser.cc" // lalr1.cc:859
1823 0 : break;
1824 :
1825 : case 162:
1826 : #line 846 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1827 : {
1828 : Reader.MyLha.FinalStateCond.push_back(*(yystack_[1].value.name));
1829 : (yylhs.value.TOPHASL) = new HaslFormulasTop(PROBCOND,(size_t)Reader.MyLha.FinalStateCond.size()-1);
1830 : }
1831 : #line 1832 "Lha-parser.cc" // lalr1.cc:859
1832 0 : break;
1833 :
1834 : case 163:
1835 : #line 850 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1836 : {
1837 : (yylhs.value.TOPHASL) = new HaslFormulasTop(EXISTS);
1838 : }
1839 : #line 1840 "Lha-parser.cc" // lalr1.cc:859
1840 0 : break;
1841 :
1842 : case 164:
1843 : #line 853 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1844 : {
1845 : (yylhs.value.TOPHASL) = new HaslFormulasTop(NOTALLS);
1846 : }
1847 : #line 1848 "Lha-parser.cc" // lalr1.cc:859
1848 0 : break;
1849 :
1850 : case 165:
1851 : #line 856 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1852 : {
1853 : (yylhs.value.TOPHASL) = new HaslFormulasTop((yystack_[3].value.RealVal),(yystack_[1].value.RealVal));
1854 : }
1855 : #line 1856 "Lha-parser.cc" // lalr1.cc:859
1856 0 : break;
1857 :
1858 : case 166:
1859 : #line 859 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1860 : {
1861 :
1862 : for(double bucket = (yystack_[3].value.RealVal) ; bucket < (yystack_[1].value.RealVal) ; bucket+= (yystack_[5].value.RealVal)){
1863 : std::ostringstream algPDF;
1864 : algPDF << "(("<<(yystack_[7].value.expression)<<" >= "<<bucket<<"&& "<<(yystack_[7].value.expression)<<"<"<<bucket+(yystack_[5].value.RealVal)<<") ? 1:0)";
1865 :
1866 : Reader.MyLha.Algebraic.push_back(algPDF.str());
1867 : Reader.MyLha.HASLtop.push_back(
1868 : new HaslFormulasTop((size_t)Reader.MyLha.Algebraic.size()-1));
1869 : Reader.MyLha.HASLtop.back()->TypeOp = PDF_PART;
1870 : std::ostringstream s; s<<"$_$: Value in ["<< bucket<< " , "<<bucket+(yystack_[5].value.RealVal)<<"]";
1871 : Reader.MyLha.HASLname.push_back(s.str());
1872 : }
1873 : (yylhs.value.TOPHASL) = NULL;
1874 : }
1875 : #line 1876 "Lha-parser.cc" // lalr1.cc:859
1876 0 : break;
1877 :
1878 : case 167:
1879 : #line 874 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1880 : {
1881 :
1882 : for(double bucket = (yystack_[3].value.RealVal) ; bucket < (yystack_[1].value.RealVal) ; bucket+= (yystack_[5].value.RealVal)){
1883 : std::ostringstream algCDF;
1884 : algCDF << "(("<<(yystack_[7].value.expression)<<" <= "<<bucket<<") ? 1:0)";
1885 :
1886 : Reader.MyLha.Algebraic.push_back(algCDF.str());
1887 : Reader.MyLha.HASLtop.push_back(
1888 : new HaslFormulasTop((size_t)Reader.MyLha.Algebraic.size()-1));
1889 : Reader.MyLha.HASLtop.back()->TypeOp = CDF_PART;
1890 : std::ostringstream s; s<<"$_$: Value in [-infinity , "<< bucket<<"]";
1891 : Reader.MyLha.HASLname.push_back(s.str());
1892 : }
1893 : (yylhs.value.TOPHASL) = NULL;
1894 : }
1895 : #line 1896 "Lha-parser.cc" // lalr1.cc:859
1896 0 : break;
1897 :
1898 : case 168:
1899 : #line 889 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1900 : {
1901 : Reader.MyLha.Algebraic.push_back((yystack_[1].value.expression));
1902 : char tmp[5000];
1903 : snprintf(tmp,BUFF_SIZE,"(%s * %s)", (yystack_[1].value.expression),(yystack_[1].value.expression));
1904 : Reader.MyLha.Algebraic.push_back(tmp);
1905 : (yylhs.value.TOPHASL) = new HaslFormulasTop(HASL_MINUS,
1906 : new HaslFormulasTop((size_t)Reader.MyLha.Algebraic.size()-1),
1907 : new HaslFormulasTop(HASL_TIME,
1908 : new HaslFormulasTop((size_t)Reader.MyLha.Algebraic.size()-2),
1909 : new HaslFormulasTop((size_t)Reader.MyLha.Algebraic.size()-2)));
1910 : }
1911 : #line 1912 "Lha-parser.cc" // lalr1.cc:859
1912 0 : break;
1913 :
1914 : case 169:
1915 : #line 900 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1916 : {
1917 : (yylhs.value.TOPHASL) = (yystack_[1].value.TOPHASL);
1918 : }
1919 : #line 1920 "Lha-parser.cc" // lalr1.cc:859
1920 1 : break;
1921 :
1922 : case 170:
1923 : #line 903 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1924 : {
1925 : (yylhs.value.TOPHASL) = new HaslFormulasTop(HASL_PLUS, (yystack_[2].value.TOPHASL),(yystack_[0].value.TOPHASL));
1926 : }
1927 : #line 1928 "Lha-parser.cc" // lalr1.cc:859
1928 1 : break;
1929 :
1930 : case 171:
1931 : #line 906 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1932 : {
1933 : (yylhs.value.TOPHASL) = new HaslFormulasTop(HASL_MINUS, (yystack_[2].value.TOPHASL),(yystack_[0].value.TOPHASL));
1934 : }
1935 : #line 1936 "Lha-parser.cc" // lalr1.cc:859
1936 0 : break;
1937 :
1938 : case 172:
1939 : #line 909 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1940 : {
1941 : (yylhs.value.TOPHASL) = new HaslFormulasTop(HASL_TIME, (yystack_[2].value.TOPHASL), (yystack_[0].value.TOPHASL));
1942 : }
1943 : #line 1944 "Lha-parser.cc" // lalr1.cc:859
1944 1 : break;
1945 :
1946 : case 173:
1947 : #line 912 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1948 : {
1949 : (yylhs.value.TOPHASL) = new HaslFormulasTop(HASL_DIV, (yystack_[2].value.TOPHASL),(yystack_[0].value.TOPHASL));
1950 : }
1951 : #line 1952 "Lha-parser.cc" // lalr1.cc:859
1952 1 : break;
1953 :
1954 : case 174:
1955 : #line 915 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1956 : {
1957 : (yylhs.value.TOPHASL) = new HaslFormulasTop((double)(yystack_[0].value.IntVal),0.0,1.0);
1958 : }
1959 : #line 1960 "Lha-parser.cc" // lalr1.cc:859
1960 3 : break;
1961 :
1962 : case 175:
1963 : #line 918 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1964 : {
1965 : (yylhs.value.TOPHASL) = new HaslFormulasTop((double)(yystack_[0].value.RealVal),0.0,1.0);
1966 : }
1967 : #line 1968 "Lha-parser.cc" // lalr1.cc:859
1968 0 : break;
1969 :
1970 : case 176:
1971 : #line 922 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1972 : {string ss=(yystack_[0].value.expression);
1973 : snprintf((yylhs.value.expression),BUFF_SIZE,"LhaFunc[%d]", Reader.MyLha.LhaFunction[ss]);
1974 : }
1975 : #line 1976 "Lha-parser.cc" // lalr1.cc:859
1976 197 : break;
1977 :
1978 : case 177:
1979 : #line 925 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1980 : {snprintf((yylhs.value.expression),BUFF_SIZE,"min(%s,%s)", (yystack_[3].value.expression),(yystack_[1].value.expression));}
1981 : #line 1982 "Lha-parser.cc" // lalr1.cc:859
1982 0 : break;
1983 :
1984 : case 178:
1985 : #line 926 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1986 : {snprintf((yylhs.value.expression),BUFF_SIZE,"max(%s,%s)", (yystack_[3].value.expression),(yystack_[1].value.expression));}
1987 : #line 1988 "Lha-parser.cc" // lalr1.cc:859
1988 0 : break;
1989 :
1990 : case 179:
1991 : #line 927 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1992 : {snprintf((yylhs.value.expression),BUFF_SIZE,"-%s", (yystack_[0].value.expression));}
1993 : #line 1994 "Lha-parser.cc" // lalr1.cc:859
1994 0 : break;
1995 :
1996 : case 180:
1997 : #line 928 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
1998 : {snprintf((yylhs.value.expression),BUFF_SIZE,"floor(%s)", (yystack_[1].value.expression));}
1999 : #line 2000 "Lha-parser.cc" // lalr1.cc:859
2000 0 : break;
2001 :
2002 : case 181:
2003 : #line 929 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2004 : {snprintf((yylhs.value.expression),BUFF_SIZE,"(%s)", (yystack_[1].value.expression));}
2005 : #line 2006 "Lha-parser.cc" // lalr1.cc:859
2006 0 : break;
2007 :
2008 : case 182:
2009 : #line 930 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2010 : {snprintf((yylhs.value.expression),BUFF_SIZE,"pow(%s , %s)", (yystack_[2].value.expression),(yystack_[0].value.expression));}
2011 : #line 2012 "Lha-parser.cc" // lalr1.cc:859
2012 0 : break;
2013 :
2014 : case 183:
2015 : #line 931 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2016 : {snprintf((yylhs.value.expression),BUFF_SIZE,"(%s + %s)", (yystack_[2].value.expression),(yystack_[0].value.expression));}
2017 : #line 2018 "Lha-parser.cc" // lalr1.cc:859
2018 0 : break;
2019 :
2020 : case 184:
2021 : #line 932 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2022 : {snprintf((yylhs.value.expression),BUFF_SIZE,"(%s - %s)", (yystack_[2].value.expression),(yystack_[0].value.expression));}
2023 : #line 2024 "Lha-parser.cc" // lalr1.cc:859
2024 0 : break;
2025 :
2026 : case 185:
2027 : #line 933 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2028 : {snprintf((yylhs.value.expression),BUFF_SIZE,"(%s * %s)", (yystack_[2].value.expression),(yystack_[0].value.expression));}
2029 : #line 2030 "Lha-parser.cc" // lalr1.cc:859
2030 0 : break;
2031 :
2032 : case 186:
2033 : #line 934 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2034 : {snprintf((yylhs.value.expression),BUFF_SIZE,"(%s / %s)", (yystack_[2].value.expression),(yystack_[0].value.expression));}
2035 : #line 2036 "Lha-parser.cc" // lalr1.cc:859
2036 0 : break;
2037 :
2038 : case 187:
2039 : #line 936 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2040 : {std::ostringstream s; s<<(yystack_[1].value.expression);
2041 : if(Reader.MyLha.LinearForm.find(s.str())==Reader.MyLha.LinearForm.end())
2042 : {int i=Reader.MyLha.LinearForm.size();Reader.MyLha.LinearForm[s.str()]=i;}
2043 : Reader.MyLha.LhaFuncArg.push_back(Reader.MyLha.LinearForm[s.str()]);
2044 : Reader.MyLha.LhaFuncType.push_back("Last");
2045 : string ss="Last("; ss.append(s.str()); ss.append(")");
2046 : if(Reader.MyLha.LhaFunction.find(ss)==Reader.MyLha.LhaFunction.end())
2047 : {int i=Reader.MyLha.LhaFunction.size();Reader.MyLha.LhaFunction[ss]=i;}
2048 : snprintf((yylhs.value.expression),BUFF_SIZE,"%s", ss.c_str());
2049 : }
2050 : #line 2051 "Lha-parser.cc" // lalr1.cc:859
2051 196 : break;
2052 :
2053 : case 188:
2054 : #line 946 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2055 : {std::ostringstream s; s<<(yystack_[1].value.expression);
2056 : if(Reader.MyLha.LinearForm.find(s.str())==Reader.MyLha.LinearForm.end())
2057 : {int i=Reader.MyLha.LinearForm.size();Reader.MyLha.LinearForm[s.str()]=i;}
2058 : Reader.MyLha.LhaFuncArg.push_back(Reader.MyLha.LinearForm[s.str()]);
2059 : Reader.MyLha.LhaFuncType.push_back("Min");
2060 : string ss="Min("; ss.append(s.str()); ss.append(")");
2061 : if(Reader.MyLha.LhaFunction.find(ss)==Reader.MyLha.LhaFunction.end())
2062 : {int i=Reader.MyLha.LhaFunction.size();Reader.MyLha.LhaFunction[ss]=i;}
2063 : snprintf((yylhs.value.expression),BUFF_SIZE,"%s", ss.c_str());
2064 : }
2065 : #line 2066 "Lha-parser.cc" // lalr1.cc:859
2066 0 : break;
2067 :
2068 : case 189:
2069 : #line 956 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2070 : {std::ostringstream s; s<<(yystack_[1].value.expression);
2071 : if(Reader.MyLha.LinearForm.find(s.str())==Reader.MyLha.LinearForm.end())
2072 : {int i=Reader.MyLha.LinearForm.size();Reader.MyLha.LinearForm[s.str()]=i;}
2073 : Reader.MyLha.LhaFuncArg.push_back(Reader.MyLha.LinearForm[s.str()]);
2074 : Reader.MyLha.LhaFuncType.push_back("Max");
2075 : string ss="Max("; ss.append(s.str()); ss.append(")");
2076 : if(Reader.MyLha.LhaFunction.find(ss)==Reader.MyLha.LhaFunction.end())
2077 : {int i=Reader.MyLha.LhaFunction.size();Reader.MyLha.LhaFunction[ss]=i;}
2078 : snprintf((yylhs.value.expression),BUFF_SIZE,"%s", ss.c_str());
2079 : }
2080 : #line 2081 "Lha-parser.cc" // lalr1.cc:859
2081 1 : break;
2082 :
2083 : case 190:
2084 : #line 966 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2085 : {std::ostringstream s; s<<(yystack_[1].value.expression);
2086 : if(Reader.MyLha.LinearForm.find(s.str())==Reader.MyLha.LinearForm.end())
2087 : {int i=Reader.MyLha.LinearForm.size();Reader.MyLha.LinearForm[s.str()]=i;}
2088 : Reader.MyLha.LhaFuncArg.push_back(Reader.MyLha.LinearForm[s.str()]);
2089 : Reader.MyLha.LhaFuncType.push_back("Integral");
2090 : string ss="Integral("; ss.append(s.str()); ss.append(")");
2091 : if(Reader.MyLha.LhaFunction.find(ss)==Reader.MyLha.LhaFunction.end())
2092 : {int i=Reader.MyLha.LhaFunction.size();Reader.MyLha.LhaFunction[ss]=i;}
2093 : snprintf((yylhs.value.expression),BUFF_SIZE,"%s", ss.c_str());
2094 : }
2095 : #line 2096 "Lha-parser.cc" // lalr1.cc:859
2096 0 : break;
2097 :
2098 : case 191:
2099 : #line 976 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2100 : {std::ostringstream s; s<<(yystack_[1].value.expression);
2101 : if(Reader.MyLha.LinearForm.find(s.str())==Reader.MyLha.LinearForm.end())
2102 : {int i=Reader.MyLha.LinearForm.size();Reader.MyLha.LinearForm[s.str()]=i;}
2103 : Reader.MyLha.LhaFuncArg.push_back(Reader.MyLha.LinearForm[s.str()]);
2104 : Reader.MyLha.LhaFuncType.push_back("Mean");
2105 : string ss="Mean("; ss.append(s.str()); ss.append(")");
2106 : if(Reader.MyLha.LhaFunction.find(ss)==Reader.MyLha.LhaFunction.end())
2107 : {int i=Reader.MyLha.LhaFunction.size();Reader.MyLha.LhaFunction[ss]=i;}
2108 : snprintf((yylhs.value.expression),BUFF_SIZE,"%s", ss.c_str());
2109 : }
2110 : #line 2111 "Lha-parser.cc" // lalr1.cc:859
2111 0 : break;
2112 :
2113 : case 192:
2114 : #line 987 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2115 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s", (yystack_[0].value.expression)); }
2116 : #line 2117 "Lha-parser.cc" // lalr1.cc:859
2117 197 : break;
2118 :
2119 : case 193:
2120 : #line 988 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2121 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s - %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
2122 : #line 2123 "Lha-parser.cc" // lalr1.cc:859
2123 0 : break;
2124 :
2125 : case 194:
2126 : #line 989 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2127 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%s + %s", (yystack_[2].value.expression), (yystack_[0].value.expression)); }
2128 : #line 2129 "Lha-parser.cc" // lalr1.cc:859
2129 0 : break;
2130 :
2131 : case 195:
2132 : #line 993 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2133 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2134 : {snprintf((yylhs.value.expression),BUFF_SIZE,"Vars->%s", (yystack_[0].value.name)->c_str());}
2135 : else if(Reader.MyLha.LhaRealHybrid.find(*(yystack_[0].value.name))!=Reader.MyLha.LhaRealHybrid.end())
2136 : {snprintf((yylhs.value.expression),BUFF_SIZE," hybridVar::%s",(yystack_[0].value.name)->c_str());}
2137 : else if(Reader.MyLha.PlaceIndex.find(*(yystack_[0].value.name))!=Reader.MyLha.PlaceIndex.end())
2138 : {std::ostringstream s; s<<" Marking.P->_PL_"<< (yystack_[0].value.name)->c_str();
2139 : if(Reader.MyLha.MyGspn->placeStruct[Reader.MyLha.PlaceIndex[*(yystack_[0].value.name)]].colorDom !=0 )s <<".card()";
2140 : snprintf((yylhs.value.expression),BUFF_SIZE, "%s ",(s.str()).c_str());
2141 : } else {cout<<*(yystack_[0].value.name)<<" is not a Hybrid variable, a Lha variable or a place name"<<endl;YYABORT;}
2142 : }
2143 : #line 2144 "Lha-parser.cc" // lalr1.cc:859
2144 197 : break;
2145 :
2146 : case 196:
2147 : #line 1003 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2148 : {
2149 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[1].value.name))!=Reader.MyLha.PlaceIndex.end())
2150 : {std::ostringstream s; s<<" Marking.P->_PL_"<<(yystack_[1].value.name)->c_str();
2151 : if(Reader.MyLha.MyGspn->placeStruct[Reader.MyLha.PlaceIndex[*(yystack_[1].value.name)]].colorDom !=0 )s <<".value()";
2152 : snprintf((yylhs.value.expression),BUFF_SIZE, "%s ",(s.str()).c_str());
2153 : }
2154 : else {cout<<"'"<<*(yystack_[1].value.name)<<"' is not a place label"<<endl;YYABORT;}}
2155 : #line 2156 "Lha-parser.cc" // lalr1.cc:859
2156 0 : break;
2157 :
2158 : case 197:
2159 : #line 1010 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2160 : {
2161 : if(Reader.MyLha.Vars.find(*(yystack_[3].value.name))!=Reader.MyLha.Vars.label.size()){
2162 : snprintf((yylhs.value.expression),BUFF_SIZE,"Vars->%s[%s]", (yystack_[3].value.name)->c_str(), (yystack_[1].value.expression));
2163 : } else {cout<<*(yystack_[3].value.name)<<" is not a Lha array variable "<<endl;YYABORT;}
2164 : }
2165 : #line 2166 "Lha-parser.cc" // lalr1.cc:859
2166 0 : break;
2167 :
2168 : case 198:
2169 : #line 1018 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2170 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2171 : {snprintf((yylhs.value.expression),BUFF_SIZE,"(%s) * Vars->%s", (yystack_[3].value.expression), (yystack_[0].value.name)->c_str());
2172 : }
2173 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
2174 : #line 2175 "Lha-parser.cc" // lalr1.cc:859
2175 0 : break;
2176 :
2177 : case 199:
2178 : #line 1023 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2179 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2180 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%d * Vars->%s", (yystack_[2].value.IntVal), (yystack_[0].value.name)->c_str());
2181 : }
2182 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
2183 : #line 2184 "Lha-parser.cc" // lalr1.cc:859
2184 0 : break;
2185 :
2186 : case 200:
2187 : #line 1028 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2188 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2189 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%f * Vars->%s", (yystack_[2].value.RealVal), (yystack_[0].value.name)->c_str());
2190 : }
2191 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
2192 : #line 2193 "Lha-parser.cc" // lalr1.cc:859
2193 0 : break;
2194 :
2195 : case 201:
2196 : #line 1034 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2197 : { sprintf((yylhs.value.expression),"%i ", (yystack_[0].value.IntVal));
2198 : }
2199 : #line 2200 "Lha-parser.cc" // lalr1.cc:859
2200 0 : break;
2201 :
2202 : case 202:
2203 : #line 1037 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2204 : { sprintf((yylhs.value.expression),"%f ", (yystack_[0].value.RealVal));}
2205 : #line 2206 "Lha-parser.cc" // lalr1.cc:859
2206 0 : break;
2207 :
2208 : case 203:
2209 : #line 1040 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2210 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2211 : {if(Reader.MyLha.LhaRealConstant.find(*(yystack_[2].value.name))!=Reader.MyLha.LhaRealConstant.end())
2212 : {snprintf((yylhs.value.expression),BUFF_SIZE,"%f * Vars->%s", Reader.MyLha.LhaRealConstant[*(yystack_[2].value.name)],(yystack_[0].value.name)->c_str());
2213 : }
2214 : else
2215 : {
2216 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[2].value.name))!=Reader.MyLha.PlaceIndex.end())
2217 : {snprintf((yylhs.value.expression),BUFF_SIZE,"Marking.P->_PL_%s * Vars->%s", (yystack_[2].value.name)->c_str() ,(yystack_[0].value.name)->c_str());
2218 : }
2219 : else
2220 : {
2221 : cout<<*(yystack_[2].value.name)<<" is not Petri-net Place or a definded constant "<<endl;
2222 : YYABORT;
2223 : }
2224 : }
2225 : }
2226 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}
2227 : }
2228 : #line 2229 "Lha-parser.cc" // lalr1.cc:859
2229 0 : break;
2230 :
2231 : case 204:
2232 : #line 1059 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2233 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2234 : {snprintf((yylhs.value.expression),BUFF_SIZE,"-Vars->%s", (yystack_[0].value.name)->c_str());}
2235 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
2236 : #line 2237 "Lha-parser.cc" // lalr1.cc:859
2237 0 : break;
2238 :
2239 : case 205:
2240 : #line 1063 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2241 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2242 : {snprintf((yylhs.value.expression),BUFF_SIZE,"-(%s) * Vars->%s", (yystack_[3].value.expression), (yystack_[0].value.name)->c_str());
2243 : }
2244 : else {cout<<*(yystack_[1].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
2245 : #line 2246 "Lha-parser.cc" // lalr1.cc:859
2246 0 : break;
2247 :
2248 : case 206:
2249 : #line 1068 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2250 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2251 : {snprintf((yylhs.value.expression),BUFF_SIZE,"-%d * Vars->%s", (yystack_[2].value.IntVal), (yystack_[0].value.name)->c_str());
2252 : }
2253 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
2254 : #line 2255 "Lha-parser.cc" // lalr1.cc:859
2255 0 : break;
2256 :
2257 : case 207:
2258 : #line 1073 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2259 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2260 : {snprintf((yylhs.value.expression),BUFF_SIZE,"-%f * Vars->%s", (yystack_[2].value.RealVal), (yystack_[0].value.name)->c_str());
2261 : }
2262 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}}
2263 : #line 2264 "Lha-parser.cc" // lalr1.cc:859
2264 0 : break;
2265 :
2266 : case 208:
2267 : #line 1078 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:859
2268 : { if(Reader.MyLha.Vars.find(*(yystack_[0].value.name))!=Reader.MyLha.Vars.label.size())
2269 : {if(Reader.MyLha.LhaRealConstant.find(*(yystack_[2].value.name))!=Reader.MyLha.LhaRealConstant.end())
2270 : {snprintf((yylhs.value.expression),BUFF_SIZE,"-%f * Vars->%s", Reader.MyLha.LhaRealConstant[*(yystack_[2].value.name)],(yystack_[0].value.name)->c_str());
2271 : }
2272 : else
2273 : {
2274 : if(Reader.MyLha.PlaceIndex.find(*(yystack_[2].value.name))!=Reader.MyLha.PlaceIndex.end())
2275 : {sprintf((yylhs.value.expression),"-Marking.P->_PL_%s * Vars->%s", (yystack_[2].value.name)->c_str() ,(yystack_[0].value.name)->c_str());
2276 : }
2277 : else
2278 : {
2279 : cout<<*(yystack_[2].value.name)<<" is not Petri-net Place or a definded constant "<<endl;
2280 : YYABORT;
2281 : }
2282 : }
2283 : }
2284 : else {cout<<*(yystack_[0].value.name)<<" is not a Lha variable"<<endl;YYABORT;}
2285 : }
2286 : #line 2287 "Lha-parser.cc" // lalr1.cc:859
2287 0 : break;
2288 :
2289 :
2290 : #line 2291 "Lha-parser.cc" // lalr1.cc:859
2291 : default:
2292 1448 : break;
2293 : }
2294 : }
2295 0 : catch (const syntax_error& yyexc)
2296 : {
2297 0 : error (yyexc);
2298 0 : YYERROR;
2299 : }
2300 6225 : YY_SYMBOL_PRINT ("-> $$ =", yylhs);
2301 6225 : yypop_ (yylen);
2302 6225 : yylen = 0;
2303 6225 : YY_STACK_PRINT ();
2304 :
2305 : // Shift the result of the reduction.
2306 6225 : yypush_ (YY_NULLPTR, yylhs);
2307 : }
2308 6225 : goto yynewstate;
2309 :
2310 : /*--------------------------------------.
2311 : | yyerrlab -- here on detecting error. |
2312 : `--------------------------------------*/
2313 : yyerrlab:
2314 : // If not already recovering from an error, report this error.
2315 0 : if (!yyerrstatus_)
2316 : {
2317 0 : ++yynerrs_;
2318 0 : error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla));
2319 : }
2320 :
2321 :
2322 0 : yyerror_range[1].location = yyla.location;
2323 0 : if (yyerrstatus_ == 3)
2324 : {
2325 : /* If just tried and failed to reuse lookahead token after an
2326 : error, discard it. */
2327 :
2328 : // Return failure if at end of input.
2329 0 : if (yyla.type_get () == yyeof_)
2330 0 : YYABORT;
2331 0 : else if (!yyla.empty ())
2332 : {
2333 0 : yy_destroy_ ("Error: discarding", yyla);
2334 0 : yyla.clear ();
2335 : }
2336 : }
2337 :
2338 : // Else will try to reuse lookahead token after shifting the error token.
2339 0 : goto yyerrlab1;
2340 :
2341 :
2342 : /*---------------------------------------------------.
2343 : | yyerrorlab -- error raised explicitly by YYERROR. |
2344 : `---------------------------------------------------*/
2345 : yyerrorlab:
2346 :
2347 : /* Pacify compilers like GCC when the user code never invokes
2348 : YYERROR and the label yyerrorlab therefore never appears in user
2349 : code. */
2350 : if (false)
2351 : goto yyerrorlab;
2352 0 : yyerror_range[1].location = yystack_[yylen - 1].location;
2353 : /* Do not reclaim the symbols of the rule whose action triggered
2354 : this YYERROR. */
2355 0 : yypop_ (yylen);
2356 0 : yylen = 0;
2357 0 : goto yyerrlab1;
2358 :
2359 : /*-------------------------------------------------------------.
2360 : | yyerrlab1 -- common code for both syntax error and YYERROR. |
2361 : `-------------------------------------------------------------*/
2362 : yyerrlab1:
2363 0 : yyerrstatus_ = 3; // Each real token shifted decrements this.
2364 : {
2365 0 : stack_symbol_type error_token;
2366 : for (;;)
2367 : {
2368 0 : yyn = yypact_[yystack_[0].state];
2369 0 : if (!yy_pact_value_is_default_ (yyn))
2370 : {
2371 0 : yyn += yyterror_;
2372 0 : if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
2373 : {
2374 0 : yyn = yytable_[yyn];
2375 0 : if (0 < yyn)
2376 0 : break;
2377 : }
2378 : }
2379 :
2380 : // Pop the current state because it cannot handle the error token.
2381 0 : if (yystack_.size () == 1)
2382 0 : YYABORT;
2383 :
2384 0 : yyerror_range[1].location = yystack_[0].location;
2385 0 : yy_destroy_ ("Error: popping", yystack_[0]);
2386 0 : yypop_ ();
2387 0 : YY_STACK_PRINT ();
2388 : }
2389 :
2390 0 : yyerror_range[2].location = yyla.location;
2391 0 : YYLLOC_DEFAULT (error_token.location, yyerror_range, 2);
2392 :
2393 : // Shift the error token.
2394 0 : error_token.state = yyn;
2395 0 : yypush_ ("Shifting", error_token);
2396 : }
2397 0 : goto yynewstate;
2398 :
2399 : // Accept.
2400 : yyacceptlab:
2401 29 : yyresult = 0;
2402 29 : goto yyreturn;
2403 :
2404 : // Abort.
2405 : yyabortlab:
2406 0 : yyresult = 1;
2407 0 : goto yyreturn;
2408 :
2409 : yyreturn:
2410 29 : if (!yyla.empty ())
2411 0 : yy_destroy_ ("Cleanup: discarding lookahead", yyla);
2412 :
2413 : /* Do not reclaim the symbols of the rule whose action triggered
2414 : this YYABORT or YYACCEPT. */
2415 29 : yypop_ (yylen);
2416 145 : while (1 < yystack_.size ())
2417 : {
2418 58 : yy_destroy_ ("Cleanup: popping", yystack_[0]);
2419 58 : yypop_ ();
2420 : }
2421 :
2422 58 : return yyresult;
2423 : }
2424 0 : catch (...)
2425 : {
2426 0 : YYCDEBUG << "Exception caught: cleaning lookahead and stack"
2427 0 : << std::endl;
2428 : // Do not try to display the values of the reclaimed symbols,
2429 : // as their printer might throw an exception.
2430 0 : if (!yyla.empty ())
2431 0 : yy_destroy_ (YY_NULLPTR, yyla);
2432 :
2433 0 : while (1 < yystack_.size ())
2434 : {
2435 0 : yy_destroy_ (YY_NULLPTR, yystack_[0]);
2436 0 : yypop_ ();
2437 : }
2438 0 : throw;
2439 : }
2440 : }
2441 :
2442 : void
2443 0 : Lha_parser::error (const syntax_error& yyexc)
2444 : {
2445 0 : error (yyexc.location, yyexc.what());
2446 0 : }
2447 :
2448 : // Generate an error message.
2449 : std::string
2450 0 : Lha_parser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const
2451 : {
2452 : // Number of reported tokens (one for the "unexpected", one per
2453 : // "expected").
2454 0 : size_t yycount = 0;
2455 : // Its maximum.
2456 : enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2457 : // Arguments of yyformat.
2458 : char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2459 :
2460 : /* There are many possibilities here to consider:
2461 : - If this state is a consistent state with a default action, then
2462 : the only way this function was invoked is if the default action
2463 : is an error action. In that case, don't check for expected
2464 : tokens because there are none.
2465 : - The only way there can be no lookahead present (in yyla) is
2466 : if this state is a consistent state with a default action.
2467 : Thus, detecting the absence of a lookahead is sufficient to
2468 : determine that there is no unexpected or expected token to
2469 : report. In that case, just report a simple "syntax error".
2470 : - Don't assume there isn't a lookahead just because this state is
2471 : a consistent state with a default action. There might have
2472 : been a previous inconsistent state, consistent state with a
2473 : non-default action, or user semantic action that manipulated
2474 : yyla. (However, yyla is currently not documented for users.)
2475 : - Of course, the expected token list depends on states to have
2476 : correct lookahead information, and it depends on the parser not
2477 : to perform extra reductions after fetching a lookahead from the
2478 : scanner and before detecting a syntax error. Thus, state
2479 : merging (from LALR or IELR) and default reductions corrupt the
2480 : expected token list. However, the list is correct for
2481 : canonical LR with one exception: it will still contain any
2482 : token that will not be accepted due to an error action in a
2483 : later state.
2484 : */
2485 0 : if (!yyla.empty ())
2486 : {
2487 0 : int yytoken = yyla.type_get ();
2488 0 : yyarg[yycount++] = yytname_[yytoken];
2489 0 : int yyn = yypact_[yystate];
2490 0 : if (!yy_pact_value_is_default_ (yyn))
2491 : {
2492 : /* Start YYX at -YYN if negative to avoid negative indexes in
2493 : YYCHECK. In other words, skip the first -YYN actions for
2494 : this state because they are default actions. */
2495 0 : int yyxbegin = yyn < 0 ? -yyn : 0;
2496 : // Stay within bounds of both yycheck and yytname.
2497 0 : int yychecklim = yylast_ - yyn + 1;
2498 0 : int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
2499 0 : for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
2500 0 : if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_
2501 0 : && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
2502 : {
2503 0 : if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2504 : {
2505 0 : yycount = 1;
2506 0 : break;
2507 : }
2508 : else
2509 0 : yyarg[yycount++] = yytname_[yyx];
2510 : }
2511 : }
2512 : }
2513 :
2514 0 : char const* yyformat = YY_NULLPTR;
2515 0 : switch (yycount)
2516 : {
2517 : #define YYCASE_(N, S) \
2518 : case N: \
2519 : yyformat = S; \
2520 : break
2521 0 : YYCASE_(0, YY_("syntax error"));
2522 0 : YYCASE_(1, YY_("syntax error, unexpected %s"));
2523 0 : YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2524 0 : YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2525 0 : YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2526 0 : YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2527 : #undef YYCASE_
2528 : }
2529 :
2530 0 : std::string yyres;
2531 : // Argument number.
2532 0 : size_t yyi = 0;
2533 0 : for (char const* yyp = yyformat; *yyp; ++yyp)
2534 0 : if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount)
2535 : {
2536 0 : yyres += yytnamerr_ (yyarg[yyi++]);
2537 0 : ++yyp;
2538 : }
2539 : else
2540 0 : yyres += *yyp;
2541 0 : return yyres;
2542 : }
2543 :
2544 :
2545 : const short int Lha_parser::yypact_ninf_ = -342;
2546 :
2547 : const signed char Lha_parser::yytable_ninf_ = -7;
2548 :
2549 : const short int
2550 : Lha_parser::yypact_[] =
2551 : {
2552 : 14, -12, -342, -342, 117, 37, 43, 71, 80, 354,
2553 : 96, 101, 137, 166, -342, -342, 123, -34, 470, 208,
2554 : 144, -342, 74, 297, 117, 586, 213, 213, 10, 248,
2555 : -34, 229, 267, 213, 213, -342, 246, 280, 145, 233,
2556 : 269, 272, 295, 348, 358, 508, 238, 301, 349, 74,
2557 : 362, 379, -342, -342, -342, -342, 117, 117, 117, 117,
2558 : 323, -342, 213, 213, 435, 437, 446, 474, 476, 479,
2559 : 502, 509, 200, -342, 398, 397, -342, 434, 145, 441,
2560 : 480, 302, 312, 417, 457, 510, 518, -342, 499, 468,
2561 : -342, -342, 556, 560, 562, 564, 524, 525, 238, 74,
2562 : 74, -342, -342, -342, -342, -342, -342, -342, 334, 334,
2563 : -342, 421, 161, 213, 213, 213, 157, 157, 157, 157,
2564 : 157, -342, 213, 213, 213, 213, 213, -342, -342, 596,
2565 : -342, -342, -342, 265, 265, 587, 594, 539, 565, -342,
2566 : -342, 588, 611, 622, 636, 13, 638, 74, -342, -342,
2567 : -342, 428, 328, 338, 77, 537, 629, 304, 436, 20,
2568 : -342, 114, 143, 153, 257, 627, 627, 161, 161, -342,
2569 : 651, -342, -342, -342, 654, 664, -342, -5, -342, -2,
2570 : 665, 666, 304, 230, -342, -342, -342, 670, 7, -342,
2571 : 16, -342, -342, 213, 213, 230, -342, 673, 674, 675,
2572 : 22, -342, -342, 304, 304, 671, 672, 676, 433, 650,
2573 : 653, 655, 304, -342, 157, 157, -342, -342, -342, -342,
2574 : -342, 265, 265, 680, 681, 683, 682, 686, -1, -342,
2575 : 684, 625, 666, 249, 685, -342, 230, 230, 688, 689,
2576 : 690, 691, 119, 692, 25, 695, 699, 698, 438, 444,
2577 : 589, -342, -342, -342, 702, -342, 461, 570, 304, 304,
2578 : 304, 662, 304, 304, 304, 304, 304, 703, 704, 705,
2579 : 467, -342, -342, 687, 701, -342, -342, -342, -342, 706,
2580 : 707, -342, 708, 709, -342, -342, 240, 550, 11, 230,
2581 : 230, 230, 230, -342, 230, 230, 230, 230, 711, -342,
2582 : 714, -342, -342, -342, -342, -342, -342, 710, 700, -342,
2583 : 472, 347, 353, 716, 660, 660, 570, 570, -342, -342,
2584 : -342, -342, 693, 265, 265, 281, -342, 712, -342, 156,
2585 : 593, 713, -342, 477, 357, 382, 388, 678, 11, 11,
2586 : -342, 715, 717, 702, -342, -342, 304, 304, -342, 718,
2587 : 719, 720, 281, 281, -342, -342, 635, 232, -342, 721,
2588 : -342, -342, -342, 230, 230, 230, 230, -342, 726, -342,
2589 : 484, 500, -342, -342, -342, 405, 273, -342, 304, 304,
2590 : 304, 304, 304, 723, 727, 281, 281, 724, 554, 563,
2591 : 577, 581, 725, -342, -342, -342, 603, 603, 603, 603,
2592 : 603, 732, -342, -342, 722, 728, -342, -342, -342, -342,
2593 : -342, 731, 201, -342, 23, 304, 732, 729, -342, 679,
2594 : 737, 733, -342, 603, -342, 736, 659, -342, 17, 134,
2595 : -342, -342, 741, -342, 697, 730, 734, 304, -342, 475,
2596 : 738, 735, 124, -342, -342, 742, 744, 745, 507, 739,
2597 : 740, 743, 304, 34, 134, 304, 304, 304, 177, 177,
2598 : -342, -342, -342, 746, 747, 748, 749, 512, -342, 750,
2599 : 751, -342, 603, 603, 603, -342, -342, 752, -342, -342,
2600 : -342, 753, 15, 21, -342, 754, -342, 755, 230, 314,
2601 : 750, -342, -342, -342, 614, 174, -342, -342, 314, 314,
2602 : 756, 757, 758, 608, -342, 760, 240, -342, 517, 628,
2603 : 314, 314, 314, 314, 314, 314, 314, 314, 314, 618,
2604 : 759, -342, 523, 363, 372, 761, 761, 628, 628, -342,
2605 : 608, -342, -342, -342, 314, 314, 540, 546, -342, -342
2606 : };
2607 :
2608 : const unsigned char
2609 : Lha_parser::yydefact_[] =
2610 : {
2611 : 63, 0, 175, 174, 0, 0, 0, 160, 0, 63,
2612 : 0, 0, 0, 0, 163, 164, 0, 0, 0, 62,
2613 : 61, 5, 152, 0, 0, 0, 0, 0, 0, 0,
2614 : 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
2615 : 0, 0, 0, 0, 0, 0, 0, 64, 66, 0,
2616 : 0, 0, 60, 59, 153, 155, 0, 0, 0, 0,
2617 : 0, 169, 0, 0, 0, 0, 0, 0, 0, 0,
2618 : 0, 0, 0, 176, 0, 0, 161, 0, 0, 0,
2619 : 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
2620 : 86, 87, 0, 0, 0, 0, 0, 0, 0, 0,
2621 : 0, 65, 67, 10, 74, 75, 173, 172, 170, 171,
2622 : 154, 0, 179, 0, 0, 0, 0, 0, 0, 0,
2623 : 0, 159, 0, 0, 0, 0, 0, 168, 162, 0,
2624 : 3, 73, 72, 0, 0, 0, 0, 0, 0, 94,
2625 : 95, 0, 0, 0, 0, 0, 0, 0, 9, 8,
2626 : 181, 0, 0, 0, 195, 202, 201, 0, 0, 0,
2627 : 192, 0, 0, 0, 0, 186, 185, 183, 184, 182,
2628 : 0, 158, 156, 157, 0, 0, 89, 0, 92, 0,
2629 : 0, 0, 0, 0, 71, 70, 77, 0, 0, 84,
2630 : 0, 7, 180, 0, 0, 0, 196, 0, 0, 0,
2631 : 29, 26, 27, 0, 0, 0, 0, 0, 0, 204,
2632 : 0, 0, 0, 188, 0, 0, 189, 187, 190, 191,
2633 : 165, 0, 0, 0, 0, 0, 0, 0, 0, 97,
2634 : 0, 0, 117, 0, 12, 11, 0, 0, 0, 0,
2635 : 0, 0, 0, 78, 0, 0, 0, 0, 0, 0,
2636 : 0, 203, 200, 199, 0, 28, 0, 32, 0, 0,
2637 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2638 : 0, 194, 193, 0, 0, 90, 88, 93, 91, 0,
2639 : 0, 98, 0, 0, 118, 69, 0, 0, 16, 0,
2640 : 0, 0, 0, 68, 0, 0, 0, 0, 0, 80,
2641 : 0, 76, 85, 83, 177, 178, 197, 0, 0, 31,
2642 : 0, 0, 0, 0, 33, 36, 34, 35, 37, 208,
2643 : 207, 206, 0, 0, 0, 0, 96, 0, 116, 12,
2644 : 0, 0, 15, 0, 0, 0, 0, 19, 17, 18,
2645 : 20, 0, 81, 57, 30, 38, 0, 0, 198, 0,
2646 : 0, 0, 0, 0, 104, 105, 0, 0, 106, 0,
2647 : 14, 13, 21, 0, 0, 0, 0, 79, 0, 58,
2648 : 0, 0, 205, 166, 167, 0, 0, 110, 0, 0,
2649 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2650 : 0, 0, 0, 39, 40, 109, 111, 113, 112, 114,
2651 : 115, 0, 100, 107, 108, 0, 22, 23, 24, 25,
2652 : 82, 0, 0, 101, 0, 0, 0, 0, 120, 121,
2653 : 0, 0, 123, 103, 102, 0, 0, 125, 0, 0,
2654 : 99, 122, 0, 124, 136, 0, 0, 0, 129, 0,
2655 : 0, 127, 0, 133, 126, 0, 0, 0, 0, 141,
2656 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2657 : 140, 139, 138, 0, 0, 0, 0, 0, 147, 0,
2658 : 0, 128, 130, 132, 131, 135, 134, 0, 145, 144,
2659 : 143, 0, 0, 0, 148, 0, 137, 0, 0, 0,
2660 : 0, 146, 119, 142, 0, 44, 41, 42, 0, 0,
2661 : 0, 0, 0, 150, 149, 0, 0, 43, 0, 48,
2662 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2663 : 0, 47, 0, 0, 0, 49, 52, 50, 51, 53,
2664 : 151, 45, 46, 54, 0, 0, 0, 0, 55, 56
2665 : };
2666 :
2667 : const short int
2668 : Lha_parser::yypgoto_[] =
2669 : {
2670 : -342, -342, 764, -195, -155, -298, -285, -342, 762, 193,
2671 : -342, -342, 763, 765, -36, 766, -342, 768, -342, 767,
2672 : 770, -342, 769, -342, 696, 668, -342, 521, -342, 346,
2673 : -341, -342, 771, 522, -342, -342, 344, -342, 310, -342,
2674 : -342, -86, -342, -342, 287, -15, -342, -129, 148, 5,
2675 : -342, 551, 183
2676 : };
2677 :
2678 : const short int
2679 : Lha_parser::yydefgoto_[] =
2680 : {
2681 : -1, 16, 17, 242, 356, 503, 308, 18, 45, 46,
2682 : 47, 48, 19, 20, 49, 50, 188, 51, 190, 38,
2683 : 39, 177, 40, 179, 87, 88, 228, 229, 412, 413,
2684 : 357, 358, 89, 231, 232, 421, 422, 428, 440, 441,
2685 : 442, 443, 470, 483, 484, 21, 22, 174, 23, 72,
2686 : 73, 159, 160
2687 : };
2688 :
2689 : const short int
2690 : Lha_parser::yytable_[] =
2691 : {
2692 : 250, 331, 208, 223, 24, 175, 225, 54, 227, 99,
2693 : 100, 376, 377, 75, -2, 244, 186, 1, 2, 3,
2694 : 76, 36, 37, 4, 246, 432, 488, 233, 299, 490,
2695 : 213, 489, 74, 254, 103, 255, 418, 419, 81, 82,
2696 : 294, 287, 288, 297, 403, 404, 26, 468, 256, 257,
2697 : 214, 215, 27, 5, 6, 7, 8, 270, 369, 187,
2698 : 224, 9, 147, 226, 280, 10, 11, 111, 112, -6,
2699 : -6, 300, 245, 12, 13, 14, 15, 1, 2, 3,
2700 : 28, 247, 433, 4, 148, 149, 491, 420, 195, 29,
2701 : 196, 330, 273, 274, 333, 334, 335, 336, 469, 337,
2702 : 338, 339, 340, 310, 311, 312, 197, 314, 315, 316,
2703 : 317, 318, 31, 5, 6, 7, 8, 32, 151, 152,
2704 : 153, 2, 3, 35, 216, 293, 4, 165, 166, 167,
2705 : 168, 169, 191, 12, 13, 14, 15, 434, 435, 436,
2706 : 455, 456, 457, 437, 214, 215, 33, 438, 294, 295,
2707 : 296, 297, 25, 217, 458, 459, 5, 6, 7, 8,
2708 : 154, 155, 156, 218, 343, 439, 157, 286, 388, 389,
2709 : 390, 391, 60, 214, 215, 34, 12, 13, 14, 15,
2710 : 434, 435, 436, 214, 215, 506, 437, 507, 158, 122,
2711 : 123, 370, 371, 126, 350, 351, 11, 375, 248, 249,
2712 : 508, 509, 85, 86, 106, 107, 108, 109, 439, 416,
2713 : 121, 417, 522, 523, 524, 525, 526, 527, 528, 529,
2714 : 530, 520, 62, 396, 397, 398, 399, 400, 122, 123,
2715 : 124, 125, 126, 234, 79, 235, 536, 537, 98, 236,
2716 : 383, 102, 384, 329, 63, 235, 64, 65, 66, 236,
2717 : 67, 68, 77, 385, 386, 285, 69, 70, 71, 10,
2718 : 423, 237, 83, 238, 239, 240, 241, 219, 171, 172,
2719 : 173, 237, 80, 238, 239, 240, 241, 262, 263, 264,
2720 : 265, 266, 448, 395, 200, 201, 202, 214, 215, 37,
2721 : 352, 43, 44, 494, 385, 386, 84, 467, 92, 93,
2722 : 472, 473, 474, 55, 353, 354, 355, 200, 201, 202,
2723 : 133, 519, 204, 203, 205, 206, 207, 495, 496, 497,
2724 : 134, 94, 95, 498, 36, 56, 57, 58, 59, 110,
2725 : 122, 123, 124, 125, 126, 204, 193, 205, 206, 207,
2726 : 122, 123, 124, 125, 126, 499, 194, 500, 501, 502,
2727 : 41, 56, 57, 58, 59, 346, 122, 123, 124, 125,
2728 : 126, 347, 56, 57, 96, 364, 122, 123, 124, 125,
2729 : 126, 534, 475, 476, 97, 262, 263, 264, 265, 266,
2730 : 535, 262, 263, 264, 265, 266, 294, 295, 296, 297,
2731 : 365, 513, 514, 515, 516, 517, 366, 271, 272, 42,
2732 : 513, 514, 515, 516, 517, 10, 11, 128, 127, -6,
2733 : -6, 294, 295, 296, 297, 309, 44, 294, 295, 296,
2734 : 297, 378, 379, 380, 381, 382, 122, 123, 124, 125,
2735 : 126, 150, 43, 262, 263, 264, 265, 266, 192, 209,
2736 : 210, 211, 129, 261, 113, 212, 114, 131, 304, 122,
2737 : 123, 124, 125, 126, 305, 115, 122, 123, 124, 125,
2738 : 126, 262, 263, 264, 265, 266, 122, 123, 124, 125,
2739 : 126, 309, 122, 123, 124, 125, 126, 322, 449, 450,
2740 : 451, 135, 345, 116, 452, 117, 132, 362, 118, 262,
2741 : 263, 264, 265, 266, 393, 262, 263, 264, 265, 266,
2742 : 262, 263, 264, 265, 266, 363, 294, 295, 296, 297,
2743 : 394, 119, 262, 263, 264, 265, 266, 463, 120, 41,
2744 : 42, 136, 481, 43, 44, 85, 137, 521, 262, 263,
2745 : 264, 265, 266, 533, 138, 262, 263, 264, 265, 266,
2746 : 262, 263, 264, 265, 266, 513, 514, 515, 516, 517,
2747 : 538, 513, 514, 515, 516, 517, 539, 86, 42, 141,
2748 : 332, 43, 44, 142, 406, 143, 198, 144, 513, 514,
2749 : 515, 516, 517, 407, 513, 514, 515, 516, 517, 294,
2750 : 295, 296, 297, 294, 295, 296, 297, 408, 145, 146,
2751 : 176, 409, 294, 295, 296, 297, 61, 178, 262, 263,
2752 : 170, 306, 266, 180, 182, 360, 294, 295, 296, 297,
2753 : 294, 295, 296, 297, 56, 57, 58, 59, 294, 295,
2754 : 296, 297, 294, 295, 296, 297, 505, 183, 184, 181,
2755 : 531, 262, 263, 264, 265, 266, 513, 514, 515, 516,
2756 : 517, 189, 185, 294, 295, 296, 297, 294, 295, 296,
2757 : 297, 378, 379, 380, 381, 382, 513, 514, 199, 126,
2758 : 517, 220, 221, 262, 263, 264, 265, 266, 161, 162,
2759 : 163, 164, 222, 243, 227, 230, 251, 252, 253, 267,
2760 : 258, 259, 268, 275, 269, 260, 277, 276, 278, 279,
2761 : 283, 313, 266, 282, 426, 323, 286, 289, 290, 291,
2762 : 292, 301, 302, 298, 303, 307, 319, 320, 321, 324,
2763 : 297, 327, 344, 326, 325, 328, 341, 342, 343, 348,
2764 : 359, 372, 349, 420, 387, 361, 445, 367, 368, 373,
2765 : 374, 392, 401, 402, 405, 411, 414, 410, 415, 425,
2766 : 427, 429, 430, 385, 444, 460, 453, 461, 462, 281,
2767 : 478, 479, 480, 482, 284, 486, 454, 140, 493, 446,
2768 : 492, 485, 424, 447, 471, 510, 511, 512, 464, 465,
2769 : 431, 532, 466, 30, 130, 477, 518, 504, 0, 0,
2770 : 0, 0, 487, 53, 52, 0, 0, 0, 0, 0,
2771 : 0, 0, 0, 517, 0, 0, 0, 78, 0, 0,
2772 : 0, 0, 0, 0, 0, 0, 0, 0, 90, 101,
2773 : 91, 0, 0, 0, 0, 0, 0, 105, 104, 0,
2774 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 139
2778 : };
2779 :
2780 : const short int
2781 : Lha_parser::yycheck_[] =
2782 : {
2783 : 195, 286, 157, 8, 16, 134, 8, 22, 9, 45,
2784 : 46, 352, 353, 3, 0, 8, 3, 3, 4, 5,
2785 : 10, 55, 56, 9, 8, 8, 11, 182, 3, 8,
2786 : 10, 16, 27, 11, 49, 13, 13, 14, 33, 34,
2787 : 29, 236, 237, 32, 385, 386, 9, 13, 203, 204,
2788 : 30, 31, 9, 39, 40, 41, 42, 212, 343, 46,
2789 : 65, 47, 98, 65, 65, 51, 52, 62, 63, 55,
2790 : 56, 46, 65, 59, 60, 61, 62, 3, 4, 5,
2791 : 9, 65, 65, 9, 99, 100, 65, 64, 11, 9,
2792 : 13, 286, 221, 222, 289, 290, 291, 292, 64, 294,
2793 : 295, 296, 297, 258, 259, 260, 29, 262, 263, 264,
2794 : 265, 266, 16, 39, 40, 41, 42, 16, 113, 114,
2795 : 115, 4, 5, 0, 10, 6, 9, 122, 123, 124,
2796 : 125, 126, 147, 59, 60, 61, 62, 3, 4, 5,
2797 : 16, 17, 18, 9, 30, 31, 9, 13, 29, 30,
2798 : 31, 32, 4, 10, 30, 31, 39, 40, 41, 42,
2799 : 3, 4, 5, 10, 8, 31, 9, 11, 363, 364,
2800 : 365, 366, 24, 30, 31, 9, 59, 60, 61, 62,
2801 : 3, 4, 5, 30, 31, 11, 9, 13, 31, 28,
2802 : 29, 346, 347, 32, 323, 324, 52, 352, 193, 194,
2803 : 498, 499, 57, 58, 56, 57, 58, 59, 31, 8,
2804 : 10, 10, 510, 511, 512, 513, 514, 515, 516, 517,
2805 : 518, 506, 9, 378, 379, 380, 381, 382, 28, 29,
2806 : 30, 31, 32, 3, 5, 5, 534, 535, 45, 9,
2807 : 8, 48, 10, 3, 31, 5, 33, 34, 35, 9,
2808 : 37, 38, 4, 21, 22, 6, 43, 44, 45, 51,
2809 : 415, 31, 16, 33, 34, 35, 36, 10, 3, 4,
2810 : 5, 31, 5, 33, 34, 35, 36, 28, 29, 30,
2811 : 31, 32, 437, 10, 3, 4, 5, 30, 31, 56,
2812 : 9, 53, 54, 488, 21, 22, 16, 452, 26, 27,
2813 : 455, 456, 457, 6, 23, 24, 25, 3, 4, 5,
2814 : 8, 506, 31, 9, 33, 34, 35, 3, 4, 5,
2815 : 8, 26, 27, 9, 55, 28, 29, 30, 31, 6,
2816 : 28, 29, 30, 31, 32, 31, 8, 33, 34, 35,
2817 : 28, 29, 30, 31, 32, 31, 8, 33, 34, 35,
2818 : 49, 28, 29, 30, 31, 8, 28, 29, 30, 31,
2819 : 32, 8, 28, 29, 16, 8, 28, 29, 30, 31,
2820 : 32, 8, 458, 459, 16, 28, 29, 30, 31, 32,
2821 : 8, 28, 29, 30, 31, 32, 29, 30, 31, 32,
2822 : 8, 28, 29, 30, 31, 32, 8, 214, 215, 50,
2823 : 28, 29, 30, 31, 32, 51, 52, 10, 10, 55,
2824 : 56, 29, 30, 31, 32, 10, 54, 29, 30, 31,
2825 : 32, 16, 17, 18, 19, 20, 28, 29, 30, 31,
2826 : 32, 10, 53, 28, 29, 30, 31, 32, 10, 3,
2827 : 4, 5, 8, 10, 9, 9, 9, 6, 10, 28,
2828 : 29, 30, 31, 32, 10, 9, 28, 29, 30, 31,
2829 : 32, 28, 29, 30, 31, 32, 28, 29, 30, 31,
2830 : 32, 10, 28, 29, 30, 31, 32, 10, 3, 4,
2831 : 5, 64, 10, 9, 9, 9, 6, 10, 9, 28,
2832 : 29, 30, 31, 32, 10, 28, 29, 30, 31, 32,
2833 : 28, 29, 30, 31, 32, 28, 29, 30, 31, 32,
2834 : 10, 9, 28, 29, 30, 31, 32, 10, 9, 49,
2835 : 50, 64, 10, 53, 54, 57, 16, 10, 28, 29,
2836 : 30, 31, 32, 10, 16, 28, 29, 30, 31, 32,
2837 : 28, 29, 30, 31, 32, 28, 29, 30, 31, 32,
2838 : 10, 28, 29, 30, 31, 32, 10, 58, 50, 3,
2839 : 10, 53, 54, 3, 10, 3, 29, 3, 28, 29,
2840 : 30, 31, 32, 10, 28, 29, 30, 31, 32, 29,
2841 : 30, 31, 32, 29, 30, 31, 32, 10, 64, 64,
2842 : 3, 10, 29, 30, 31, 32, 10, 3, 28, 29,
2843 : 4, 12, 32, 64, 16, 12, 29, 30, 31, 32,
2844 : 29, 30, 31, 32, 28, 29, 30, 31, 29, 30,
2845 : 31, 32, 29, 30, 31, 32, 12, 16, 6, 64,
2846 : 12, 28, 29, 30, 31, 32, 28, 29, 30, 31,
2847 : 32, 3, 6, 29, 30, 31, 32, 29, 30, 31,
2848 : 32, 16, 17, 18, 19, 20, 28, 29, 29, 32,
2849 : 32, 10, 8, 28, 29, 30, 31, 32, 117, 118,
2850 : 119, 120, 8, 3, 9, 9, 3, 3, 3, 29,
2851 : 9, 9, 29, 3, 29, 9, 3, 6, 6, 3,
2852 : 65, 29, 32, 9, 15, 8, 11, 9, 9, 9,
2853 : 9, 6, 3, 11, 6, 3, 3, 3, 3, 8,
2854 : 32, 3, 12, 6, 8, 6, 5, 3, 8, 3,
2855 : 8, 3, 29, 64, 3, 12, 29, 12, 11, 10,
2856 : 10, 5, 9, 6, 10, 3, 8, 12, 7, 10,
2857 : 3, 8, 6, 21, 3, 3, 8, 3, 3, 228,
2858 : 3, 3, 3, 3, 232, 3, 21, 89, 3, 29,
2859 : 6, 10, 416, 29, 454, 9, 9, 9, 29, 29,
2860 : 426, 12, 29, 9, 78, 29, 16, 490, -1, -1,
2861 : -1, -1, 29, 20, 19, -1, -1, -1, -1, -1,
2862 : -1, -1, -1, 32, -1, -1, -1, 30, -1, -1,
2863 : -1, -1, -1, -1, -1, -1, -1, -1, 39, 47,
2864 : 40, -1, -1, -1, -1, -1, -1, 51, 50, -1,
2865 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2866 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2867 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2868 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 88
2869 : };
2870 :
2871 : const unsigned char
2872 : Lha_parser::yystos_[] =
2873 : {
2874 : 0, 3, 4, 5, 9, 39, 40, 41, 42, 47,
2875 : 51, 52, 59, 60, 61, 62, 67, 68, 73, 78,
2876 : 79, 111, 112, 114, 16, 114, 9, 9, 9, 9,
2877 : 68, 16, 16, 9, 9, 0, 55, 56, 85, 86,
2878 : 88, 49, 50, 53, 54, 74, 75, 76, 77, 80,
2879 : 81, 83, 79, 78, 111, 6, 28, 29, 30, 31,
2880 : 114, 10, 9, 31, 33, 34, 35, 37, 38, 43,
2881 : 44, 45, 115, 116, 115, 3, 10, 4, 85, 5,
2882 : 5, 115, 115, 16, 16, 57, 58, 90, 91, 98,
2883 : 88, 86, 26, 27, 26, 27, 16, 16, 75, 80,
2884 : 80, 74, 75, 111, 83, 81, 114, 114, 114, 114,
2885 : 6, 115, 115, 9, 9, 9, 9, 9, 9, 9,
2886 : 9, 10, 28, 29, 30, 31, 32, 10, 10, 8,
2887 : 90, 6, 6, 8, 8, 64, 64, 16, 16, 98,
2888 : 91, 3, 3, 3, 3, 64, 64, 80, 111, 111,
2889 : 10, 115, 115, 115, 3, 4, 5, 9, 31, 117,
2890 : 118, 117, 117, 117, 117, 115, 115, 115, 115, 115,
2891 : 4, 3, 4, 5, 113, 113, 3, 87, 3, 89,
2892 : 64, 64, 16, 16, 6, 6, 3, 46, 82, 3,
2893 : 84, 111, 10, 8, 8, 11, 13, 29, 29, 29,
2894 : 3, 4, 5, 9, 31, 33, 34, 35, 70, 3,
2895 : 4, 5, 9, 10, 30, 31, 10, 10, 10, 10,
2896 : 10, 8, 8, 8, 65, 8, 65, 9, 92, 93,
2897 : 9, 99, 100, 70, 3, 5, 9, 31, 33, 34,
2898 : 35, 36, 69, 3, 8, 65, 8, 65, 115, 115,
2899 : 69, 3, 3, 3, 11, 13, 70, 70, 9, 9,
2900 : 9, 10, 28, 29, 30, 31, 32, 29, 29, 29,
2901 : 70, 118, 118, 113, 113, 3, 6, 3, 6, 3,
2902 : 65, 93, 9, 65, 99, 6, 11, 69, 69, 9,
2903 : 9, 9, 9, 6, 29, 30, 31, 32, 11, 3,
2904 : 46, 6, 3, 6, 10, 10, 12, 3, 72, 10,
2905 : 70, 70, 70, 29, 70, 70, 70, 70, 70, 3,
2906 : 3, 3, 10, 8, 8, 8, 6, 3, 6, 3,
2907 : 69, 72, 10, 69, 69, 69, 69, 69, 69, 69,
2908 : 69, 5, 3, 8, 12, 10, 8, 8, 3, 29,
2909 : 113, 113, 9, 23, 24, 25, 70, 96, 97, 8,
2910 : 12, 12, 10, 28, 8, 8, 8, 12, 11, 72,
2911 : 70, 70, 3, 10, 10, 70, 96, 96, 16, 17,
2912 : 18, 19, 20, 8, 10, 21, 22, 3, 69, 69,
2913 : 69, 69, 5, 10, 10, 10, 70, 70, 70, 70,
2914 : 70, 9, 6, 96, 96, 10, 10, 10, 10, 10,
2915 : 12, 3, 94, 95, 8, 7, 8, 10, 13, 14,
2916 : 64, 101, 102, 70, 95, 10, 15, 3, 103, 8,
2917 : 6, 102, 8, 65, 3, 4, 5, 9, 13, 31,
2918 : 104, 105, 106, 107, 3, 29, 29, 29, 70, 3,
2919 : 4, 5, 9, 8, 21, 16, 17, 18, 30, 31,
2920 : 3, 3, 3, 10, 29, 29, 29, 70, 13, 64,
2921 : 108, 104, 70, 70, 70, 107, 107, 29, 3, 3,
2922 : 3, 10, 3, 109, 110, 10, 3, 29, 11, 16,
2923 : 8, 65, 6, 3, 69, 3, 4, 5, 9, 31,
2924 : 33, 34, 35, 71, 110, 12, 11, 13, 71, 71,
2925 : 9, 9, 9, 28, 29, 30, 31, 32, 16, 69,
2926 : 72, 10, 71, 71, 71, 71, 71, 71, 71, 71,
2927 : 71, 12, 12, 10, 8, 8, 71, 71, 10, 10
2928 : };
2929 :
2930 : const unsigned char
2931 : Lha_parser::yyr1_[] =
2932 : {
2933 : 0, 66, 67, 67, 67, 67, 68, 68, 68, 68,
2934 : 68, 69, 69, 69, 69, 69, 69, 69, 69, 69,
2935 : 69, 69, 69, 69, 69, 69, 70, 70, 70, 70,
2936 : 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
2937 : 70, 71, 71, 71, 71, 71, 71, 71, 71, 71,
2938 : 71, 71, 71, 71, 71, 71, 71, 72, 72, 73,
2939 : 73, 73, 73, 73, 74, 74, 75, 75, 76, 76,
2940 : 77, 77, 78, 79, 80, 80, 81, 82, 82, 82,
2941 : 82, 82, 82, 83, 84, 84, 85, 85, 86, 87,
2942 : 87, 88, 89, 89, 90, 90, 91, 92, 92, 93,
2943 : 93, 94, 94, 95, 96, 96, 96, 96, 96, 96,
2944 : 96, 97, 97, 97, 97, 97, 98, 99, 99, 100,
2945 : 101, 101, 101, 101, 102, 103, 103, 104, 104, 104,
2946 : 105, 105, 105, 106, 106, 106, 107, 107, 107, 107,
2947 : 107, 107, 107, 107, 107, 107, 108, 108, 109, 109,
2948 : 110, 110, 111, 111, 112, 112, 113, 113, 113, 114,
2949 : 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
2950 : 114, 114, 114, 114, 114, 114, 115, 115, 115, 115,
2951 : 115, 115, 115, 115, 115, 115, 115, 116, 116, 116,
2952 : 116, 116, 117, 117, 117, 118, 118, 118, 118, 118,
2953 : 118, 118, 118, 118, 118, 118, 118, 118, 118
2954 : };
2955 :
2956 : const unsigned char
2957 : Lha_parser::yyr2_[] =
2958 : {
2959 : 0, 2, 0, 4, 3, 1, 0, 5, 4, 4,
2960 : 3, 1, 1, 4, 4, 3, 2, 3, 3, 3,
2961 : 3, 4, 6, 6, 6, 6, 1, 1, 2, 1,
2962 : 4, 3, 2, 3, 3, 3, 3, 3, 4, 6,
2963 : 6, 1, 1, 2, 1, 4, 4, 3, 2, 3,
2964 : 3, 3, 3, 3, 4, 6, 6, 2, 3, 2,
2965 : 2, 1, 1, 0, 1, 2, 1, 2, 6, 6,
2966 : 4, 4, 4, 4, 2, 2, 6, 1, 2, 5,
2967 : 3, 4, 7, 6, 1, 3, 2, 2, 6, 1,
2968 : 3, 6, 1, 3, 2, 2, 6, 1, 2, 10,
2969 : 6, 1, 3, 3, 1, 1, 1, 3, 3, 3,
2970 : 2, 3, 3, 3, 3, 3, 6, 1, 2, 14,
2971 : 1, 1, 3, 1, 3, 1, 3, 1, 3, 1,
2972 : 3, 3, 3, 1, 3, 3, 1, 5, 3, 3,
2973 : 3, 2, 6, 4, 4, 4, 3, 1, 1, 3,
2974 : 3, 6, 1, 2, 4, 2, 1, 1, 1, 4,
2975 : 1, 3, 4, 1, 1, 6, 10, 10, 4, 3,
2976 : 3, 3, 3, 3, 1, 1, 1, 6, 6, 2,
2977 : 4, 3, 3, 3, 3, 3, 3, 4, 4, 4,
2978 : 4, 4, 1, 3, 3, 1, 2, 4, 5, 3,
2979 : 3, 1, 1, 3, 2, 6, 4, 4, 4
2980 : };
2981 :
2982 :
2983 :
2984 : // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2985 : // First, the terminals, then, starting at \a yyntokens_, nonterminals.
2986 : const char*
2987 : const Lha_parser::yytname_[] =
2988 : {
2989 : "\"end of file\"", "error", "$undefined", "str", "rval", "ival",
2990 : "SEMICOLON", "COLON", "COMMA", "LB", "RB", "LSB", "RSB", "SHARP", "ALL",
2991 : "BackSlash", "EQ", "GEQ", "LEQ", "LL", "GG", "AND", "OR", "NOT", "TRUE",
2992 : "FALSE", "DOUBLE", "INT", "DIV", "MUL", "PLUS", "MINUS", "POWER",
2993 : "FLOOR", "MIN", "MAX", "MOD", "LhaMIN", "LhaMAX", "AVG", "VAR", "PROB",
2994 : "SPRT", "LAST", "INTEGRAL", "MEAN", "DISC", "NOTDET", "LhaName", "Const",
2995 : "Hybrid", "NbLoc", "NbVar", "VList", "LList", "Iloc", "Floc",
2996 : "locations", "edges", "PDF", "CDF", "EXIST_TOK", "NOTALL_TOK", "NEG",
2997 : "'{'", "'}'", "$accept", "LHA", "declarations", "IntMarkingFormula",
2998 : "RealMarkingFormula", "RealVarMarkingFormula", "ColorClassList", "Sizes",
2999 : "Constants", "HybridVars", "Constant", "HybridVar", "NbVariables",
3000 : "NbLocations", "Lists", "VariablesList", "VLabels", "LocationsList",
3001 : "LLabels", "InitFinal", "init", "iLLabels", "final", "fLLabels",
3002 : "definitions", "LocationsDef", "LOCATIONS", "LOCATION", "FLOWS", "FLOW",
3003 : "LogExpr", "CompExpr", "EdgesDef", "EDGES", "EDGE", "ACTIONS",
3004 : "SetOfActions", "Actions", "CONSTRAINTS", "CONSTRAINT", "LinearExp",
3005 : "term", "UPDATES", "Updates", "Update", "HaslExps", "HaslExp", "rorival",
3006 : "TopHaslExp", "AlgExpr", "LhaFunc", "LinForm", "VarTerm", YY_NULLPTR
3007 : };
3008 :
3009 : #if YYDEBUG
3010 : const unsigned short int
3011 : Lha_parser::yyrline_[] =
3012 : {
3013 : 0, 190, 190, 191, 192, 193, 195, 196, 197, 198,
3014 : 199, 205, 206, 221, 232, 239, 240, 241, 242, 243,
3015 : 244, 245, 246, 247, 248, 249, 252, 253, 254, 261,
3016 : 273, 284, 285, 286, 287, 288, 289, 290, 291, 292,
3017 : 293, 295, 296, 297, 304, 323, 330, 341, 342, 343,
3018 : 344, 345, 346, 347, 348, 349, 350, 352, 355, 360,
3019 : 361, 362, 363, 364, 366, 367, 369, 370, 372, 381,
3020 : 390, 398, 408, 410, 412, 413, 415, 431, 439, 449,
3021 : 460, 468, 476, 485, 495, 499, 504, 505, 507, 509,
3022 : 517, 522, 524, 532, 541, 542, 546, 556, 557, 559,
3023 : 570, 584, 585, 586, 593, 594, 595, 596, 597, 598,
3024 : 599, 601, 602, 603, 604, 605, 610, 614, 615, 617,
3025 : 642, 643, 644, 648, 650, 652, 656, 661, 662, 663,
3026 : 665, 670, 675, 681, 682, 683, 685, 689, 694, 699,
3027 : 704, 725, 729, 734, 739, 744, 767, 773, 778, 779,
3028 : 781, 786, 798, 798, 800, 811, 824, 825, 826, 836,
3029 : 840, 843, 846, 850, 853, 856, 859, 874, 889, 900,
3030 : 903, 906, 909, 912, 915, 918, 922, 925, 926, 927,
3031 : 928, 929, 930, 931, 932, 933, 934, 936, 946, 956,
3032 : 966, 976, 987, 988, 989, 992, 1003, 1010, 1017, 1022,
3033 : 1027, 1033, 1036, 1039, 1058, 1062, 1067, 1072, 1077
3034 : };
3035 :
3036 : // Print the state stack on the debug stream.
3037 : void
3038 0 : Lha_parser::yystack_print_ ()
3039 : {
3040 0 : *yycdebug_ << "Stack now";
3041 0 : for (stack_type::const_iterator
3042 0 : i = yystack_.begin (),
3043 0 : i_end = yystack_.end ();
3044 : i != i_end; ++i)
3045 0 : *yycdebug_ << ' ' << i->state;
3046 0 : *yycdebug_ << std::endl;
3047 0 : }
3048 :
3049 : // Report on the debug stream that the rule \a yyrule is going to be reduced.
3050 : void
3051 0 : Lha_parser::yy_reduce_print_ (int yyrule)
3052 : {
3053 0 : unsigned int yylno = yyrline_[yyrule];
3054 0 : int yynrhs = yyr2_[yyrule];
3055 : // Print the symbols being reduced, and their result.
3056 0 : *yycdebug_ << "Reducing stack by rule " << yyrule - 1
3057 0 : << " (line " << yylno << "):" << std::endl;
3058 : // The symbols being reduced.
3059 0 : for (int yyi = 0; yyi < yynrhs; yyi++)
3060 0 : YY_SYMBOL_PRINT (" $" << yyi + 1 << " =",
3061 : yystack_[(yynrhs) - (yyi + 1)]);
3062 0 : }
3063 : #endif // YYDEBUG
3064 :
3065 : // Symbol number corresponding to token number t.
3066 : inline
3067 : Lha_parser::token_number_type
3068 9850 : Lha_parser::yytranslate_ (int t)
3069 : {
3070 : static
3071 : const token_number_type
3072 : translate_table[] =
3073 : {
3074 : 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3075 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3076 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3077 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3078 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3079 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3080 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3081 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3082 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3083 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3084 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3085 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3086 : 2, 2, 2, 64, 2, 65, 2, 2, 2, 2,
3087 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3088 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3089 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3090 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3091 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3092 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3093 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3094 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3095 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3096 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3097 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3098 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3099 : 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
3100 : 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3101 : 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3102 : 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
3103 : 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
3104 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3105 : 55, 56, 57, 58, 59, 60, 61, 62, 63
3106 : };
3107 9850 : const unsigned int user_token_number_max_ = 318;
3108 9850 : const token_number_type undef_token_ = 2;
3109 :
3110 9850 : if (static_cast<int>(t) <= yyeof_)
3111 29 : return yyeof_;
3112 9821 : else if (static_cast<unsigned int> (t) <= user_token_number_max_)
3113 9821 : return translate_table[t];
3114 : else
3115 0 : return undef_token_;
3116 : }
3117 :
3118 :
3119 : } // lha
3120 : #line 3121 "Lha-parser.cc" // lalr1.cc:1167
3121 : #line 1101 "../../../../src/ModelGenerator/LhaParser/Lha-parser.yy" // lalr1.cc:1168
3122 :
3123 :
3124 : void
3125 : lha::Lha_parser::error (const lha::Lha_parser::location_type& l,
3126 : const std::string& m)
3127 : {
3128 : Reader.error (l, m);
3129 : }
|