512
514
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
513
515
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
514
516
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
519
#define YYPACT_NINF -23
521
#define YYPACT_NINF -34
521
523
#define yypact_value_is_default(Yystate) \
522
(!!((Yystate) == (-23)))
524
(!!((Yystate) == (-34)))
524
#define YYTABLE_NINF -16
526
#define YYTABLE_NINF -1
526
528
#define yytable_value_is_error(Yytable_value) \
529
531
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
531
static const yytype_int8 yypact[] =
533
static const yytype_int16 yypact[] =
533
54, -23, -23, -23, -23, -23, -23, 81, 10, 81,
534
-2, 8, 81, 81, 81, 81, 11, 19, 9, -23,
535
-23, -23, 110, -8, -23, 26, 102, 24, 81, -23,
536
17, 81, 8, -18, -23, -23, -23, -23, 81, 81,
537
-23, 8, 8, 8, 8, 8, 8, 25, 25, 25,
538
-23, -23, 81, -23, 81, -23, 1, 12, 13, -18,
539
-18, -18, -18, -18, -18, -8, -8, -23, -23, -23,
540
81, 81, 28, 29, -23, -23
535
76, -34, -34, -34, -34, -34, -34, 104, 37, 104,
536
1, 12, 104, 104, 104, 104, 9, 11, 3, 152,
537
-34, -34, -34, -34, 47, -23, -34, 80, 119, 17,
538
104, -34, 24, 104, 12, 8, -34, -34, -34, -34,
539
104, 104, -34, 104, 104, 104, 104, 12, 12, 12,
540
12, 12, 12, 158, 158, 158, -34, -34, 104, 152,
541
104, 152, 2, -3, 30, -34, -34, -34, -34, 8,
542
8, 8, 8, 8, 8, -23, -23, -34, 152, 152,
543
104, 104, 104, 104, 108, 134, 139, 144, -34, -34,
543
547
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
545
549
means the default is an error. */
546
550
static const yytype_uint8 yydefact[] =
548
0, 3, 36, 35, 20, 18, 19, 15, 0, 15,
549
0, 0, 15, 15, 15, 15, 0, 0, 0, 2,
550
14, 17, 0, 31, 33, 0, 0, 0, 15, 16,
551
0, 15, 0, 30, 7, 6, 5, 4, 15, 15,
552
1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
553
21, 34, 15, 10, 15, 11, 0, 0, 0, 22,
554
23, 24, 25, 26, 27, 28, 29, 32, 12, 13,
552
0, 3, 43, 42, 22, 20, 21, 0, 0, 0,
553
0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
554
5, 4, 24, 19, 0, 38, 40, 0, 0, 0,
555
0, 18, 0, 0, 0, 37, 9, 8, 7, 6,
556
0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
557
0, 0, 0, 0, 0, 0, 23, 41, 0, 14,
558
0, 15, 0, 0, 0, 27, 28, 25, 26, 29,
559
30, 31, 32, 33, 34, 35, 36, 39, 16, 17,
560
0, 0, 0, 0, 0, 0, 0, 0, 10, 12,
558
564
/* YYPGOTO[NTERM-NUM]. */
559
565
static const yytype_int8 yypgoto[] =
561
-23, -23, -7, -23, -23, 7, -22, -9
567
-34, -34, -7, -34, -34, -34, -34, 7, -5, -33
564
570
/* YYDEFGOTO[NTERM-NUM]. */
565
571
static const yytype_int8 yydefgoto[] =
567
-1, 18, 19, 20, 21, 22, 23, 24
573
-1, 18, 19, 20, 21, 22, 23, 24, 25, 26
570
576
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
571
577
positive, shift that token. If negative, reduce the rule whose
572
578
number is the opposite. If YYTABLE_NINF, syntax error. */
573
static const yytype_int8 yytable[] =
579
static const yytype_uint8 yytable[] =
575
25, 30, 29, 47, 48, 34, 35, 36, 37, 40,
576
51, 2, 3, 27, 26, 49, 32, 31, 33, 38,
577
28, 53, 47, 48, 55, 65, 66, 39, 2, 3,
578
11, 57, 58, 32, 52, 50, 54, 74, 75, 56,
579
67, 0, 70, 71, 0, 68, 0, 69, 59, 60,
580
61, 62, 63, 64, -15, 1, 0, 2, 3, 4,
581
5, 6, 7, 72, 73, 8, 0, 0, 9, 0,
582
0, 10, 0, 0, 0, 0, 11, 0, 12, 13,
583
14, 15, 16, 17, 2, 3, 4, 5, 6, 7,
584
0, 0, 8, 0, 0, 9, 0, 0, 10, 0,
585
0, 0, 0, 11, 0, 12, 13, 14, 15, 16,
586
17, 51, 0, 0, 0, 0, 0, 41, 42, 43,
587
44, 45, 46, 47, 48, 41, 42, 43, 44, 45,
581
27, 55, 31, 42, 32, 36, 37, 38, 39, 43,
582
44, 57, 45, 46, 28, 2, 3, 40, 35, 41,
583
34, 33, 77, 59, 53, 54, 61, 58, 80, 81,
584
53, 54, 0, 63, 64, 11, 65, 66, 67, 68,
585
29, 62, 43, 44, 60, 45, 46, 30, 75, 76,
586
0, 78, 0, 79, 69, 70, 71, 72, 73, 74,
587
0, 82, 83, 47, 48, 49, 50, 51, 52, 53,
588
54, 0, 0, 84, 85, 86, 87, 1, 0, 2,
589
3, 4, 5, 6, 7, 0, 0, 8, 0, 56,
590
9, 0, 43, 44, 10, 45, 46, 0, 0, 11,
591
0, 12, 13, 14, 15, 16, 17, 2, 3, 4,
592
5, 6, 7, 0, 0, 8, 0, 88, 9, 0,
593
43, 44, 10, 45, 46, 0, 0, 11, 57, 12,
594
13, 14, 15, 16, 17, 47, 48, 49, 50, 51,
595
52, 53, 54, 89, 0, 0, 43, 44, 90, 45,
596
46, 43, 44, 91, 45, 46, 43, 44, 0, 45,
597
46, 2, 3, 0, 43, 44, 34, 45, 46
591
600
static const yytype_int8 yycheck[] =
593
7, 3, 9, 21, 22, 12, 13, 14, 15, 0,
594
9, 3, 4, 3, 7, 23, 8, 19, 11, 8,
595
10, 28, 21, 22, 31, 47, 48, 8, 3, 4,
596
22, 38, 39, 8, 10, 9, 19, 9, 9, 32,
597
49, -1, 30, 30, -1, 52, -1, 54, 41, 42,
598
43, 44, 45, 46, 0, 1, -1, 3, 4, 5,
599
6, 7, 8, 70, 71, 11, -1, -1, 14, -1,
600
-1, 17, -1, -1, -1, -1, 22, -1, 24, 25,
601
26, 27, 28, 29, 3, 4, 5, 6, 7, 8,
602
-1, -1, 11, -1, -1, 14, -1, -1, 17, -1,
603
-1, -1, -1, 22, -1, 24, 25, 26, 27, 28,
604
29, 9, -1, -1, -1, -1, -1, 15, 16, 17,
605
18, 19, 20, 21, 22, 15, 16, 17, 18, 19,
602
7, 24, 9, 0, 3, 12, 13, 14, 15, 12,
603
13, 9, 15, 16, 7, 3, 4, 8, 11, 8,
604
8, 20, 55, 30, 22, 23, 33, 10, 31, 32,
605
22, 23, -1, 40, 41, 23, 43, 44, 45, 46,
606
3, 34, 12, 13, 20, 15, 16, 10, 53, 54,
607
-1, 58, -1, 60, 47, 48, 49, 50, 51, 52,
608
-1, 31, 32, 16, 17, 18, 19, 20, 21, 22,
609
23, -1, -1, 80, 81, 82, 83, 1, -1, 3,
610
4, 5, 6, 7, 8, -1, -1, 11, -1, 9,
611
14, -1, 12, 13, 18, 15, 16, -1, -1, 23,
612
-1, 25, 26, 27, 28, 29, 30, 3, 4, 5,
613
6, 7, 8, -1, -1, 11, -1, 9, 14, -1,
614
12, 13, 18, 15, 16, -1, -1, 23, 9, 25,
615
26, 27, 28, 29, 30, 16, 17, 18, 19, 20,
616
21, 22, 23, 9, -1, -1, 12, 13, 9, 15,
617
16, 12, 13, 9, 15, 16, 12, 13, -1, 15,
618
16, 3, 4, -1, 12, 13, 8, 15, 16
609
621
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
611
623
static const yytype_uint8 yystos[] =
613
625
0, 1, 3, 4, 5, 6, 7, 8, 11, 14,
614
17, 22, 24, 25, 26, 27, 28, 29, 33, 34,
615
35, 36, 37, 38, 39, 34, 37, 3, 10, 34,
616
3, 19, 8, 37, 34, 34, 34, 34, 8, 8,
617
0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
618
9, 9, 10, 34, 19, 34, 37, 34, 34, 37,
619
37, 37, 37, 37, 37, 38, 38, 39, 34, 34,
626
18, 23, 25, 26, 27, 28, 29, 30, 34, 35,
627
36, 37, 38, 39, 40, 41, 42, 35, 40, 3,
628
10, 35, 3, 20, 8, 40, 35, 35, 35, 35,
629
8, 8, 0, 12, 13, 15, 16, 16, 17, 18,
630
19, 20, 21, 22, 23, 24, 9, 9, 10, 35,
631
20, 35, 40, 35, 35, 35, 35, 35, 35, 40,
632
40, 40, 40, 40, 40, 41, 41, 42, 35, 35,
633
31, 32, 31, 32, 35, 35, 35, 35, 9, 9,
623
637
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
624
638
static const yytype_uint8 yyr1[] =
626
0, 32, 33, 33, 34, 34, 34, 34, 34, 34,
627
34, 34, 34, 34, 34, 35, 35, 35, 35, 35,
628
35, 35, 36, 36, 36, 36, 36, 36, 37, 37,
629
37, 37, 38, 38, 39, 39, 39
640
0, 33, 34, 34, 35, 35, 36, 36, 36, 36,
641
36, 36, 36, 36, 36, 36, 36, 36, 37, 37,
642
37, 37, 37, 37, 37, 38, 38, 38, 38, 39,
643
39, 39, 39, 39, 39, 40, 40, 40, 40, 41,
632
647
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
633
648
static const yytype_uint8 yyr2[] =
635
0, 2, 1, 1, 2, 2, 2, 2, 6, 6,
636
3, 3, 4, 4, 1, 0, 2, 1, 1, 1,
637
1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
650
0, 2, 1, 1, 1, 1, 2, 2, 2, 2,
651
6, 6, 6, 6, 3, 3, 4, 4, 2, 1,
652
1, 1, 1, 3, 1, 3, 3, 3, 3, 3,
653
3, 3, 3, 3, 3, 3, 3, 2, 1, 3,
1315
#line 54 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1331
#line 53 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1316
1332
{ query = Condition_ptr((yyvsp[0].cond));}
1317
#line 1318 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1333
#line 1334 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1321
#line 55 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1337
#line 54 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1323
#line 1324 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1339
#line 1340 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1343
#line 58 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1344
{ (yyval.cond) = (yyvsp[0].cond); }
1345
#line 1346 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1327
1349
#line 59 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1350
{ (yyval.cond) = (yyvsp[0].cond); }
1351
#line 1352 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1355
#line 63 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1328
1356
{ (yyval.cond) = new AGCondition(Condition_ptr((yyvsp[0].cond)));}
1329
#line 1330 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1357
#line 1358 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1333
#line 60 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1361
#line 64 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1334
1362
{ (yyval.cond) = new AFCondition(Condition_ptr((yyvsp[0].cond)));}
1335
#line 1336 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1363
#line 1364 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1339
#line 61 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1367
#line 65 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1340
1368
{ (yyval.cond) = new EGCondition(Condition_ptr((yyvsp[0].cond)));}
1341
#line 1342 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1369
#line 1370 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1345
#line 62 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1373
#line 66 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1346
1374
{ (yyval.cond) = new EFCondition(Condition_ptr((yyvsp[0].cond)));}
1347
#line 1348 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1375
#line 1376 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1351
#line 63 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1379
#line 67 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1352
1380
{ (yyval.cond) = new AUCondition(Condition_ptr((yyvsp[-3].cond)), Condition_ptr((yyvsp[-1].cond)));}
1353
#line 1354 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1381
#line 1382 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1357
#line 64 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1385
#line 68 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1358
1386
{ (yyval.cond) = new EUCondition(Condition_ptr((yyvsp[-3].cond)), Condition_ptr((yyvsp[-1].cond)));}
1359
#line 1360 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1363
#line 65 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1364
{ (yyval.cond) = new AXCondition(Condition_ptr((yyvsp[0].cond)));}
1365
#line 1366 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1369
#line 66 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1370
{ (yyval.cond) = new EXCondition(Condition_ptr((yyvsp[0].cond)));}
1371
#line 1372 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1387
#line 1388 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1375
#line 67 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1376
{ (yyval.cond) = new ATransitionCondition(*(yyvsp[-2].string), Condition_ptr((yyvsp[0].cond))); }
1377
#line 1378 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1391
#line 69 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1393
auto a = Condition_ptr((yyvsp[-3].cond));
1394
auto b = Condition_ptr((yyvsp[-1].cond));
1395
(yyval.cond) = new NotCondition(
1396
std::make_shared<EUCondition>(
1397
std::make_shared<AndCondition>(a, std::make_shared<NotCondition>(b)),
1398
std::make_shared<AndCondition>(std::make_shared<NotCondition>(a),
1399
std::make_shared<NotCondition>(b))
1403
#line 1404 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1381
#line 68 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1382
{ (yyval.cond) = new ETransitionCondition(*(yyvsp[-2].string), Condition_ptr((yyvsp[0].cond))); }
1383
#line 1384 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1407
#line 80 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1409
auto a = Condition_ptr((yyvsp[-3].cond));
1410
auto b = Condition_ptr((yyvsp[-1].cond));
1411
(yyval.cond) = new OrCondition(std::make_shared<EGCondition>(a), std::make_shared<EUCondition>(a, b));
1413
#line 1414 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1387
#line 69 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1388
{ (yyval.cond) = (yyvsp[0].cond);}
1389
#line 1390 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1417
#line 85 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1418
{ (yyval.cond) = new AXCondition(Condition_ptr((yyvsp[0].cond)));}
1419
#line 1420 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1423
#line 86 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1424
{ (yyval.cond) = new EXCondition(Condition_ptr((yyvsp[0].cond)));}
1425
#line 1426 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1393
#line 75 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1394
{ (yyval.cond) = new NotCondition(Condition_ptr((yyvsp[0].cond)));}
1395
#line 1396 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1429
#line 87 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1430
{ (yyval.cond) = new ATransitionCondition(*(yyvsp[-2].string), Condition_ptr((yyvsp[0].cond))); }
1431
#line 1432 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1399
#line 76 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1400
{ (yyval.cond) = (yyvsp[0].cond);}
1401
#line 1402 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1435
#line 88 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1436
{ (yyval.cond) = new ETransitionCondition(*(yyvsp[-2].string), Condition_ptr((yyvsp[0].cond))); }
1437
#line 1438 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1405
#line 77 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1406
{ (yyval.cond) = new BooleanCondition(true);}
1407
#line 1408 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1441
#line 92 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1442
{ (yyval.cond) = new NotCondition(Condition_ptr((yyvsp[0].cond)));}
1443
#line 1444 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1411
#line 78 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1412
{ (yyval.cond) = new BooleanCondition(false);}
1413
#line 1414 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1447
#line 93 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1448
{ (yyval.cond) = (yyvsp[0].cond);}
1449
#line 1450 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1417
#line 79 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1418
{ (yyval.cond) = new DeadlockCondition();}
1419
#line 1420 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1453
#line 94 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1454
{ (yyval.cond) = new BooleanCondition(true);}
1455
#line 1456 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1423
#line 80 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1424
{ (yyval.cond) = (yyvsp[-1].cond);}
1425
#line 1426 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1459
#line 95 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1460
{ (yyval.cond) = new BooleanCondition(false);}
1461
#line 1462 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1429
#line 84 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1430
{ (yyval.cond) = new EqualCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1431
#line 1432 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1465
#line 96 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1466
{ (yyval.cond) = new DeadlockCondition();}
1467
#line 1468 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1435
#line 85 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1436
{ (yyval.cond) = new NotEqualCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1437
#line 1438 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1441
#line 86 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1442
{ (yyval.cond) = new LessThanCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1443
#line 1444 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1471
#line 97 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1472
{ (yyval.cond) = (yyvsp[-1].cond);}
1473
#line 1474 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1447
#line 87 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1448
{ (yyval.cond) = new LessThanOrEqualCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1449
#line 1450 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1477
#line 103 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1479
auto a = Condition_ptr((yyvsp[-2].cond));
1480
auto b = Condition_ptr((yyvsp[0].cond));
1481
(yyval.cond) = new OrCondition(std::make_shared<NotCondition>(a), std::make_shared<AndCondition>(a, b));
1483
#line 1484 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1453
#line 88 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1454
{ (yyval.cond) = new GreaterThanCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1455
#line 1456 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1487
#line 108 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1489
auto a = Condition_ptr((yyvsp[-2].cond));
1490
auto b = Condition_ptr((yyvsp[0].cond));
1491
(yyval.cond) = new OrCondition(
1492
std::make_shared<AndCondition>(a, b),
1493
std::make_shared<AndCondition>(
1494
std::make_shared<NotCondition>(a),
1495
std::make_shared<NotCondition>(b)
1499
#line 1500 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1459
#line 89 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1460
{ (yyval.cond) = new GreaterThanOrEqualCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1461
#line 1462 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1503
#line 119 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1504
{ (yyval.cond) = new AndCondition(Condition_ptr((yyvsp[-2].cond)), Condition_ptr((yyvsp[0].cond)));}
1505
#line 1506 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1465
#line 93 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1466
{ (yyval.expr) = new PlusExpr(std::vector<Expr_ptr>(
1467
{Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr))}));}
1468
#line 1469 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1509
#line 120 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1510
{ (yyval.cond) = new OrCondition(Condition_ptr((yyvsp[-2].cond)), Condition_ptr((yyvsp[0].cond)));}
1511
#line 1512 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1472
#line 95 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1473
{ (yyval.expr) = new SubtractExpr(std::vector<Expr_ptr>(
1474
{Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr))}));}
1475
#line 1476 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1515
#line 124 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1516
{ (yyval.cond) = new EqualCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1517
#line 1518 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1479
#line 97 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1480
{ (yyval.expr) = new MinusExpr(Expr_ptr((yyvsp[0].expr)));}
1481
#line 1482 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1521
#line 125 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1522
{ (yyval.cond) = new NotEqualCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1523
#line 1524 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1485
#line 98 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1486
{ (yyval.expr) = (yyvsp[0].expr);}
1487
#line 1488 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1527
#line 126 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1528
{ (yyval.cond) = new LessThanCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1529
#line 1530 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1491
#line 102 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1492
{ (yyval.expr) = new MultiplyExpr(std::vector<Expr_ptr>(
1493
{Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr))}));}
1494
#line 1495 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1533
#line 127 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1534
{ (yyval.cond) = new LessThanOrEqualCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1535
#line 1536 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1498
#line 104 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1499
{ (yyval.expr) = (yyvsp[0].expr);}
1500
#line 1501 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1539
#line 128 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1540
{ (yyval.cond) = new GreaterThanCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1541
#line 1542 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1504
#line 108 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1545
#line 129 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1546
{ (yyval.cond) = new GreaterThanOrEqualCondition(Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr)));}
1547
#line 1548 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1551
#line 133 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1552
{ (yyval.expr) = new PlusExpr(std::vector<Expr_ptr>(
1553
{Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr))}));}
1554
#line 1555 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1558
#line 135 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1559
{ (yyval.expr) = new SubtractExpr(std::vector<Expr_ptr>(
1560
{Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr))}));}
1561
#line 1562 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1565
#line 137 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1566
{ (yyval.expr) = new MinusExpr(Expr_ptr((yyvsp[0].expr)));}
1567
#line 1568 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1571
#line 138 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1572
{ (yyval.expr) = (yyvsp[0].expr);}
1573
#line 1574 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1577
#line 142 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1578
{ (yyval.expr) = new MultiplyExpr(std::vector<Expr_ptr>(
1579
{Expr_ptr((yyvsp[-2].expr)), Expr_ptr((yyvsp[0].expr))}));}
1580
#line 1581 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1584
#line 144 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1585
{ (yyval.expr) = (yyvsp[0].expr);}
1586
#line 1587 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1590
#line 148 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1505
1591
{ (yyval.expr) = (yyvsp[-1].expr);}
1506
#line 1507 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1592
#line 1593 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1510
#line 109 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1596
#line 149 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1511
1597
{ (yyval.expr) = new LiteralExpr(atol((yyvsp[0].string)->c_str()));
1512
1598
delete (yyvsp[0].string);}
1513
#line 1514 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1599
#line 1600 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1517
#line 111 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1603
#line 151 "PetriEngine/PQL/PQLQueryParser.y" /* yacc.c:1646 */
1518
1604
{ (yyval.expr) = new IdentifierExpr(*(yyvsp[0].string));
1519
1605
delete (yyvsp[0].string);}
1520
#line 1521 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1606
#line 1607 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1524
#line 1525 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1610
#line 1611 "PetriEngine/PQL/PQLQueryParser.parser.cpp" /* yacc.c:1646 */
1525
1611
default: break;
1527
1613
/* User semantic actions sometimes alter yychar, and that requires