text:
/* 32 literalListString <- <(_ STRING Action52)> */
		func() bool {
			position515, tokenIndex515 := position, tokenIndex
			{
				position516 := position
				if !_rules[rule_]() {
					goto l515
				}
				if !_rules[ruleSTRING]() {
					goto l515
				}
				{
					add(ruleAction52, position)
				}
				add(ruleliteralListString, position516)
			}
			return true
		l515:
			position, tokenIndex = position515, tokenIndex515
			return false
		},
		/* 33 tagName <- <(_ <TAG_NAME> Action53)> */
		func() bool {
			position518, tokenIndex518 := position, tokenIndex
			{
				position519 := position
				if !_rules[rule_]() {
					goto l518
				}
				{
					position520 := position
					{
						position521 := position
						if !_rules[ruleIDENTIFIER]() {
							goto l518
						}
						add(ruleTAG_NAME, position521)
					}
					add(rulePegText, position520)
				}
				{
					add(ruleAction53, position)
				}
				add(ruletagName, position519)
			}
			return true
		l518:
			position, tokenIndex = position518, tokenIndex518
			return false
		},
		/* 34 COLUMN_NAME <- <IDENTIFIER> */
		func() bool {
			position523, tokenIndex523 := position, tokenIndex
			{
				position524 := position
				if !_rules[ruleIDENTIFIER]() {
					goto l523
				}
				add(ruleCOLUMN_NAME, position524)
			}
			return true
		l523:
			position, tokenIndex = position523, tokenIndex523
			return false
		},
		/* 35 METRIC_NAME <- <IDENTIFIER> */
		nil,
		/* 36 TAG_NAME <- <IDENTIFIER> */
		nil,
		/* 37 IDENTIFIER <- <(('`' CHAR* ('`' / &{ p.errorHere(position, "expected \"`\" to end identifier") })) / (!(KEYWORD KEY) ID_SEGMENT ('.' (ID_SEGMENT / &{ p.errorHere(position, `expected identifier segment to follow "."`) }))*))> */
		func() bool {
			position527, tokenIndex527 := position, tokenIndex
			{
				position528 := position
				{
					position529, tokenIndex529 := position, tokenIndex
					if buffer[position] != rune('`') {
						goto l530
					}
					position++
				l531:
					{
						position532, tokenIndex532 := position, tokenIndex
						if !_rules[ruleCHAR]() {
							goto l532
						}
						goto l531
					l532:
						position, tokenIndex = position532, tokenIndex532
					}
					{
						position533, tokenIndex533 := position, tokenIndex
						if buffer[position] != rune('`') {
							goto l534
						}
						position++
						goto l533
					l534:
						position, tokenIndex = position533, tokenIndex533
						if !(p.errorHere(position, "expected \"`\" to end identifier")) {
							goto l530
						}
					}
				l533:
					goto l529
				l530:
					position, tokenIndex = position529, tokenIndex529
					{
						position535, tokenIndex535 := position, tokenIndex
						{
							position536 := position
							{
								position537, tokenIndex537 := position, tokenIndex
								{
									position539, tokenIndex539 := position, tokenIndex
									if buffer[position] != rune('a') {
										goto l540
									}
									position++
									goto l539
								l540:
									position, tokenIndex = position539, tokenIndex539
									if buffer[position] != rune('A') {
										goto l538
									}
									position++
								}
							l539:
								{
									position541, tokenIndex541 := position, tokenIndex
									if buffer[position] != rune('l') {
										goto l542
									}
									position++
									goto l541
								l542:
									position, tokenIndex = position541, tokenIndex541
									if buffer[position] != rune('L') {
										goto l538
									}
									position++
								}
							l541:
								{
									position543, tokenIndex543 := position, tokenIndex
									if buffer[position] != rune('l') {
										goto l544
									}
									position++
									goto l543
								l544:
									position, tokenIndex = position543, tokenIndex543
									if buffer[position] != rune('L') {
										goto l538
									}
									position++
								}
							l543:
								goto l537
							l538:
								position, tokenIndex = position537, tokenIndex537
								{
									position546, tokenIndex546 := position, tokenIndex
									if buffer[position] != rune('a') {
										goto l547
									}
									position++
									goto l546
								l547:
									position, tokenIndex = position546, tokenIndex546
									if buffer[position] != rune('A') {
										goto l545
									}
									position++
								}
							l546:
								{
									position548, tokenIndex548 := position, tokenIndex
									if buffer[position] != rune('n') {
										goto l549
									}
									position++
									goto l548
								l549:
									position, tokenIndex = position548, tokenIndex548
									if buffer[position] != rune('N') {
										goto l545
									}
									position++
								}
							l548:
								{
									position550, tokenIndex550 := position, tokenIndex
									if buffer[position] != rune('d') {
										goto l551
									}
									position++
									goto l550
								l551:
									position, tokenIndex = position550, tokenIndex550
									if buffer[position] != rune('D') {
										goto l545
									}
									position++
								}
							l550:
								goto l537
							l545:
								position, tokenIndex = position537, tokenIndex537
								{
									position553, tokenIndex553 := position, tokenIndex
									if buffer[position] != rune('m') {
										goto l554
									}
									position++
									goto l553
								l554:
									position, tokenIndex = position553, tokenIndex553
									if buffer[position] != rune('M') {
										goto l552
									}
									position++
								}
							l553:
								{
									position555, tokenIndex555 := position, tokenIndex
									if buffer[position] != rune('a') {
										goto l556
									}
									position++
									goto l555
								l556:
									position, tokenIndex = position555, tokenIndex555
									if buffer[position] != rune('A') {
										goto l552
									}
									position++
								}
							l555:
								{
									position557, tokenIndex557 := position, tokenIndex
									if buffer[position] != rune('t') {
										goto l558
									}
									position++
									goto l557
								l558:
									position, tokenIndex = position557, tokenIndex557
									if buffer[position] != rune('T') {
										goto l552
									}
									position++
								}
							l557:
								{
									position559, tokenIndex559 := position, tokenIndex
									if buffer[position] != rune('c') {
										goto l560
									}
									position++
									goto l559
								l560:
									position, tokenIndex = position559, tokenIndex559
									if buffer[position] != rune('C') {
										goto l552
									}
									position++
								}
							l559:
								{
									position561, tokenIndex561 := position, tokenIndex
									if buffer[position] != rune('h') {
										goto l562
									}
									position++
									goto l561
								l562:
									position, tokenIndex = position561, tokenIndex561
									if buffer[position] != rune('H') {
										goto l552
									}
									position++
								}
							l561:
								goto l537
							l552:
								position, tokenIndex = position537, tokenIndex537
								{
									position564, tokenIndex564 := position, tokenIndex
									if buffer[position] != rune('s') {
										goto l565
									}
									position++
									goto l564
								l565:
									position, tokenIndex = position564, tokenIndex564
									if buffer[position] != rune('S') {
										goto l563
									}
									position++
								}
							l564:
								{
									position566, tokenIndex566 := position, tokenIndex
									if buffer[position] != rune('e') {
										goto l567
									}
									position++
									goto l566
								l567:
									position, tokenIndex = position566, tokenIndex566
									if buffer[position] != rune('E') {
										goto l563
									}
									position++
								}
							l566:
								{
									position568, tokenIndex568 := position, tokenIndex
									if buffer[position] != rune('l') {
										goto l569
									}
									position++
									goto l568
								l569:
									position, tokenIndex = position568, tokenIndex568
									if buffer[position] != rune('L') {
										goto l563
									}
									position++
								}
							l568:
								{
									position570, tokenIndex570 := position, tokenIndex
									if buffer[position] != rune('e') {
										goto l571
									}
									position++
									goto l570
								l571:
									position, tokenIndex = position570, tokenIndex570
									if buffer[position] != rune('E') {
										goto l563
									}
									position++
								}
							l570:
								{
									position572, tokenIndex572 := position, tokenIndex
									if buffer[position] != rune('c') {
										goto l573
									}
									position++
									goto l572
								l573:
									position, tokenIndex = position572, tokenIndex572
									if buffer[position] != rune('C') {
										goto l563
									}
									position++
								}
							l572:
								{
									position574, tokenIndex574 := position, tokenIndex
									if buffer[position] != rune('t') {
										goto l575
									}
									position++
									goto l574
								l575:
									position, tokenIndex = position574, tokenIndex574
									if buffer[position] != rune('T') {
										goto l563
									}
									position++
								}
							l574:
								goto l537
							l563:
								position, tokenIndex = position537, tokenIndex537
								{
									switch buffer[position] {
									case 'S', 's':
										{
											position577, tokenIndex577 := position, tokenIndex
											if buffer[position] != rune('s') {
												goto l578
											}
											position++
											goto l577
										l578:
											position, tokenIndex = position577, tokenIndex577
											if buffer[position] != rune('S') {
												goto l535
											}
											position++
										}
									l577:
										{
											position579, tokenIndex579 := position, tokenIndex
											if buffer[position] != rune('a') {
												goto l580
											}
											position++
											goto l579
										l580:
											position, tokenIndex = position579, tokenIndex579
											if buffer[position] != rune('A') {
												goto l535
											}
											position++
										}
									l579:
										{
											position581, tokenIndex581 := position, tokenIndex
											if buffer[position] != rune('m') {
												goto l582
											}
											position++
											goto l581
										l582:
											position, tokenIndex = position581, tokenIndex581
											if buffer[position] != rune('M') {
												goto l535
											}
											position++
										}
									l581:
										{
											position583, tokenIndex583 := position, tokenIndex
											if buffer[position] != rune('p') {
												goto l584
											}
											position++
											goto l583
										l584:
											position, tokenIndex = position583, tokenIndex583
											if buffer[position] != rune('P') {
												goto l535
											}
											position++
										}
									l583:
										{
											position585, tokenIndex585 := position, tokenIndex
											if buffer[position] != rune('l') {
												goto l586
											}
											position++
											goto l585
										l586:
											position, tokenIndex = position585, tokenIndex585
											if buffer[position] != rune('L') {
												goto l535
											}
											position++
										}
									l585:
										{
											position587, tokenIndex587 := position, tokenIndex
											if buffer[position] != rune('e') {
												goto l588
											}
											position++
											goto l587
										l588:
											position, tokenIndex = position587, tokenIndex587
											if buffer[position] != rune('E') {
												goto l535
											}
											position++
										}
									l587:
										break
									case 'R', 'r':
										{
											position589, tokenIndex589 := position, tokenIndex
											if buffer[position] != rune('r') {
												goto l590
											}
											position++
											goto l589
										l590:
											position, tokenIndex = position589, tokenIndex589
											if buffer[position] != rune('R') {
												goto l535
											}
											position++
										}
									l589:
										{
											position591, tokenIndex591 := position, tokenIndex
											if buffer[position] != rune('e') {
												goto l592
											}
											position++
											goto l591
										l592:
											position, tokenIndex = position591, tokenIndex591
											if buffer[position] != rune('E') {
												goto l535
											}
											position++
										}
									l591:
										{
											position593, tokenIndex593 := position, tokenIndex
											if buffer[position] != rune('s') {
												goto l594
											}
											position++
											goto l593
										l594:
											position, tokenIndex = position593, tokenIndex593
											if buffer[position] != rune('S') {
												goto l535
											}
											position++
										}
									l593:
										{
											position595, tokenIndex595 := position, tokenIndex
											if buffer[position] != rune('o') {
												goto l596
											}
											position++
											goto l595
										l596:
											position, tokenIndex = position595, tokenIndex595
											if buffer[position] != rune('O') {
												goto l535
											}
											position++
										}
									l595:
										{
											position597, tokenIndex597 := position, tokenIndex
											if buffer[position] != rune('l') {
												goto l598
											}
											position++
											goto l597
										l598:
											position, tokenIndex = position597, tokenIndex597
											if buffer[position] != rune('L') {
												goto l535
											}
											position++
										}
									l597:
										{
											position599, tokenIndex599 := position, tokenIndex
											if buffer[position] != rune('u') {
												goto l600
											}
											position++
											goto l599
										l600:
											position, tokenIndex = position599, tokenIndex599
											if buffer[position] != rune('U') {
												goto l535
											}
											position++
										}
									l599:
										{
											position601, tokenIndex601 := position, tokenIndex
											if buffer[position] != rune('t') {
												goto l602
											}
											position++
											goto l601
										l602:
											position, tokenIndex = position601, tokenIndex601
											if buffer[position] != rune('T') {
												goto l535
											}
											position++
										}
									l601:
										{
											position603, tokenIndex603 := position, tokenIndex
											if buffer[position] != rune('i') {
												goto l604
											}
											position++
											goto l603
										l604:
											position, tokenIndex = position603, tokenIndex603
											if buffer[position] != rune('I') {
												goto l535
											}
											position++
										}
									l603:
										{
											position605, tokenIndex605 := position, tokenIndex
											if buffer[position] != rune('o') {
												goto l606
											}
											position++
											goto l605
										l606:
											position, tokenIndex = position605, tokenIndex605
											if buffer[position] != rune('O') {
												goto l535
											}
											position++
										}
									l605:
										{
											position607, tokenIndex607 := position, tokenIndex
											if buffer[position] != rune('n') {
												goto l608
											}
											position++
											goto l607
										l608:
											position, tokenIndex = position607, tokenIndex607
											if buffer[position] != rune('N') {
												goto l535
											}
											position++
										}
									l607:
										break
									case 'T', 't':
										{
											position609, tokenIndex609 := position, tokenIndex
											if buffer[position] != rune('t') {
												goto l610
											}
											position++
											goto l609
										l610:
											position, tokenIndex = position609, tokenIndex609
											if buffer[position] != rune('T') {
												goto l535
											}
											position++
										}
									l609:
										{
											position611, tokenIndex611 := position, tokenIndex
											if buffer[position] != rune('o') {
												goto l612
											}
											position++
											goto l611
										l612:
											position, tokenIndex = position611, tokenIndex611
											if buffer[position] != rune('O') {
												goto l535
											}
											position++
										}
									l611:
										break
									case 'F', 'f':
										{
											position613, tokenIndex613 := position, tokenIndex
											if buffer[position] != rune('f') {
												goto l614
											}
											position++
											goto l613
										l614:
											position, tokenIndex = position613, tokenIndex613
											if buffer[position] != rune('F') {
												goto l535
											}
											position++
										}
									l613:
										{
											position615, tokenIndex615 := position, tokenIndex
											if buffer[position] != rune('r') {
												goto l616
											}
											position++
											goto l615
										l616:
											position, tokenIndex = position615, tokenIndex615
											if buffer[position] != rune('R') {
												goto l535
											}
											position++
										}
									l615:
										{
											position617, tokenIndex617 := position, tokenIndex
											if buffer[position] != rune('o') {
												goto l618
											}
											position++
											goto l617
										l618:
											position, tokenIndex = position617, tokenIndex617
											if buffer[position] != rune('O') {
												goto l535
											}
											position++
										}
									l617:
										{
											position619, tokenIndex619 := position, tokenIndex
											if buffer[position] != rune('m') {
												goto l620
											}
											position++
											goto l619
										l620:
											position, tokenIndex = position619, tokenIndex619
											if buffer[position] != rune('M') {
												goto l535
											}
											position++
										}
									l619:
										break
									case 'M', 'm':
										{
											position621, tokenIndex621 := position, tokenIndex
											if buffer[position] != rune('m') {
												goto l622
											}
											position++
											goto l621
										l622:
											position, tokenIndex = position621, tokenIndex621
											if buffer[position] != rune('M') {
												goto l535
											}
											position++
										}
									l621:
										{
											position623, tokenIndex623 := position, tokenIndex
											if buffer[position] != rune('e') {
												goto l624
											}
											position++
											goto l623
										l624:
											position, tokenIndex = position623, tokenIndex623
											if buffer[position] != rune('E') {
												goto l535
											}
											position++
										}
									l623:
										{
											position625, tokenIndex625 := position, tokenIndex
											if buffer[position] != rune('t') {
												goto l626
											}
											position++
											goto l625
										l626:
											position, tokenIndex = position625, tokenIndex625
											if buffer[position] != rune('T') {
												goto l535
											}
											position++
										}
									l625:
										{
											position627, tokenIndex627 := position, tokenIndex
											if buffer[position] != rune('r') {
												goto l628
											}
											position++
											goto l627
										l628:
											position, tokenIndex = position627, tokenIndex627
											if buffer[position] != rune('R') {
												goto l535
											}
											position++
										}
									l627:
										{
											position629, tokenIndex629 := position, tokenIndex
											if buffer[position] != rune('i') {
												goto l630
											}
											position++
											goto l629
										l630:
											position, tokenIndex = position629, tokenIndex629
											if buffer[position] != rune('I') {
												goto l535
											}
											position++
										}
									l629:
										{
											position631, tokenIndex631 := position, tokenIndex
											if buffer[position] != rune('c') {
												goto l632
											}
											position++
											goto l631
										l632:
											position, tokenIndex = position631, tokenIndex631
											if buffer[position] != rune('C') {
												goto l535
											}
											position++
										}
									l631:
										{
											position633, tokenIndex633 := position, tokenIndex
											if buffer[position] != rune('s') {
												goto l634
											}
											position++
											goto l633
										l634:
											position, tokenIndex = position633, tokenIndex633
											if buffer[position] != rune('S') {
												goto l535
											}
											position++
										}
									l633:
										break
									case 'W', 'w':
										{
											position635, tokenIndex635 := position, tokenIndex
											if buffer[position] != rune('w') {
												goto l636
											}
											position++
											goto l635
										l636:
											position, tokenIndex = position635, tokenIndex635
											if buffer[position] != rune('W') {
												goto l535
											}
											position++
										}
									l635:
										{
											position637, tokenIndex637 := position, tokenIndex
											if buffer[position] != rune('h') {
												goto l638
											}
											position++
											goto l637
										l638:
											position, tokenIndex = position637, tokenIndex637
											if buffer[position] != rune('H') {
												goto l535
											}
											position++
										}
									l637:
										{
											position639, tokenIndex639 := position, tokenIndex
											if buffer[position] != rune('e') {
												goto l640
											}
											position++
											goto l639
										l640:
											position, tokenIndex = position639, tokenIndex639
											if buffer[position] != rune('E') {
												goto l535
											}
											position++
										}
									l639:
										{
											position641, tokenIndex641 := position, tokenIndex
											if buffer[position] != rune('r') {
												goto l642
											}
											position++
											goto l641
										l642:
											position, tokenIndex = position641, tokenIndex641
											if buffer[position] != rune('R') {
												goto l535
											}
											position++
										}
									l641:
										{
											position643, tokenIndex643 := position, tokenIndex
											if buffer[position] != rune('e') {
												goto l644
											}
											position++
											goto l643
										l644:
											position, tokenIndex = position643, tokenIndex643
											if buffer[position] != rune('E') {
												goto l535
											}
											position++
										}
									l643:
										break
									case 'O', 'o':
										{
											position645, tokenIndex645 := position, tokenIndex
											if buffer[position] != rune('o') {
												goto l646
											}
											position++
											goto l645
										l646:
											position, tokenIndex = position645, tokenIndex645
											if buffer[position] != rune('O') {
												goto l535
											}
											position++
										}
									l645:
										{
											position647, tokenIndex647 := position, tokenIndex
											if buffer[position] != rune('r') {
												goto l648
											}
											position++
											goto l647
										l648:
											position, tokenIndex = position647, tokenIndex647
											if buffer[position] != rune('R') {
												goto l535
											}
											position++
										}
									l647:
										break
									case 'N', 'n':
										{
											position649, tokenIndex649 := position, tokenIndex
											if buffer[position] != rune('n') {
												goto l650
											}
											position++
											goto l649
										l650:
											position, tokenIndex = position649, tokenIndex649
											if buffer[position] != rune('N') {
												goto l535
											}
											position++
										}
									l649:
										{
											position651, tokenIndex651 := position, tokenIndex
											if buffer[position] != rune('o') {
												goto l652
											}
											position++
											goto l651
										l652:
											position, tokenIndex = position651, tokenIndex651
											if buffer[position] != rune('O') {
												goto l535
											}
											position++
										}
									l651:
										{
											position653, tokenIndex653 := position, tokenIndex
											if buffer[position] != rune('t') {
												goto l654
											}
											position++
											goto l653
										l654:
											position, tokenIndex = position653, tokenIndex653
											if buffer[position] != rune('T') {
												goto l535
											}
											position++
										}
									l653:
										break
									case 'I', 'i':
										{
											position655, tokenIndex655 := position, tokenIndex
											if buffer[position] != rune('i') {
												goto l656
											}
											position++
											goto l655
										l656:
											position, tokenIndex = position655, tokenIndex655
											if buffer[position] != rune('I') {
												goto l535
											}
											position++
										}
									l655:
										{
											position657, tokenIndex657 := position, tokenIndex
											if buffer[position] != rune('n') {
												goto l658
											}
											position++
											goto l657
										l658:
											position, tokenIndex = position657, tokenIndex657
											if buffer[position] != rune('N') {
												goto l535
											}
											position++
										}
									l657:
										break
									case 'C', 'c':
										{
											position659, tokenIndex659 := position, tokenIndex
											if buffer[position] != rune('c') {
												goto l660
											}
											position++
											goto l659
										l660:
											position, tokenIndex = position659, tokenIndex659
											if buffer[position] != rune('C') {
												goto l535
											}
											position++
										}
									l659:
										{
											position661, tokenIndex661 := position, tokenIndex
											if buffer[position] != rune('o') {
												goto l662
											}
											position++
											goto l661
										l662:
											position, tokenIndex = position661, tokenIndex661
											if buffer[position] != rune('O') {
												goto l535
											}
											position++
										}
									l661:
										{
											position663, tokenIndex663 := position, tokenIndex
											if buffer[position] != rune('l') {
												goto l664
											}
											position++
											goto l663
										l664:
											position, tokenIndex = position663, tokenIndex663
											if buffer[position] != rune('L') {
												goto l535
											}
											position++
										}
									l663:
										{
											position665, tokenIndex665 := position, tokenIndex
											if buffer[position] != rune('l') {
												goto l666
											}
											position++
											goto l665
										l666:
											position, tokenIndex = position665, tokenIndex665
											if buffer[position] != rune('L') {
												goto l535
											}
											position++
										}
									l665:
										{
											position667, tokenIndex667 := position, tokenIndex
											if buffer[position] != rune('a') {
												goto l668
											}
											position++
											goto l667
										l668:
											position, tokenIndex = position667, tokenIndex667
											if buffer[position] != rune('A') {
												goto l535
											}
											position++
										}
									l667:
										{
											position669, tokenIndex669 := position, tokenIndex
											if buffer[position] != rune('p') {
												goto l670
											}
											position++
											goto l669
										l670:
											position, tokenIndex = position669, tokenIndex669
											if buffer[position] != rune('P') {
												goto l535
											}
											position++
										}
									l669:
										{
											position671, tokenIndex671 := position, tokenIndex
											if buffer[position] != rune('s') {
												goto l672
											}
											position++
											goto l671
										l672:
											position, tokenIndex = position671, tokenIndex671
											if buffer[position] != rune('S') {
												goto l535
											}
											position++
										}
									l671:
										{
											position673, tokenIndex673 := position, tokenIndex
											if buffer[position] != rune('e') {
												goto l674
											}
											position++
											goto l673
										l674:
											position, tokenIndex = position673, tokenIndex673
											if buffer[position] != rune('E') {
												goto l535
											}
											position++
										}
									l673:
										break
									case 'G', 'g':
										{
											position675, tokenIndex675 := position, tokenIndex
											if buffer[position] != rune('g') {
												goto l676
											}
											position++
											goto l675
										l676:
											position, tokenIndex = position675, tokenIndex675
											if buffer[position] != rune('G') {
												goto l535
											}
											position++
										}
									l675:
										{
											position677, tokenIndex677 := position, tokenIndex
											if buffer[position] != rune('r') {
												goto l678
											}
											position++
											goto l677
										l678:
											position, tokenIndex = position677, tokenIndex677
											if buffer[position] != rune('R') {
												goto l535
											}
											position++
										}
									l677:
										{
											position679, tokenIndex679 := position, tokenIndex
											if buffer[position] != rune('o') {
												goto l680
											}
											position++
											goto l679
										l680:
											position, tokenIndex = position679, tokenIndex679
											if buffer[position] != rune('O') {
												goto l535
											}
											position++
										}
									l679:
										{
											position681, tokenIndex681 := position, tokenIndex
											if buffer[position] != rune('u') {
												goto l682
											}
											position++
											goto l681
										l682:
											position, tokenIndex = position681, tokenIndex681
											if buffer[position] != rune('U') {
												goto l535
											}
											position++
										}
									l681:
										{
											position683, tokenIndex683 := position, tokenIndex
											if buffer[position] != rune('p') {
												goto l684
											}
											position++
											goto l683
										l684:
											position, tokenIndex = position683, tokenIndex683
											if buffer[position] != rune('P') {
												goto l535
											}
											position++
										}
									l683:
										break
									case 'D', 'd':
										{
											position685, tokenIndex685 := position, tokenIndex
											if buffer[position] != rune('d') {
												goto l686
											}
											position++
											goto l685
										l686:
											position, tokenIndex = position685, tokenIndex685
											if buffer[position] != rune('D') {
												goto l535
											}
											position++
										}
									l685:
										{
											position687, tokenIndex687 := position, tokenIndex
											if buffer[position] != rune('e') {
												goto l688
											}
											position++
											goto l687
										l688:
											position, tokenIndex = position687, tokenIndex687
											if buffer[position] != rune('E') {
												goto l535
											}
											position++
										}
									l687:
										{
											position689, tokenIndex689 := position, tokenIndex
											if buffer[position] != rune('s') {
												goto l690
											}
											position++
											goto l689
										l690:
											position, tokenIndex = position689, tokenIndex689
											if buffer[position] != rune('S') {
												goto l535
											}
											position++
										}
									l689:
										{
											position691, tokenIndex691 := position, tokenIndex
											if buffer[position] != rune('c') {
												goto l692
											}
											position++
											goto l691
										l692:
											position, tokenIndex = position691, tokenIndex691
											if buffer[position] != rune('C') {
												goto l535
											}
											position++
										}
									l691:
										{
											position693, tokenIndex693 := position, tokenIndex
											if buffer[position] != rune('r') {
												goto l694
											}
											position++
											goto l693
										l694:
											position, tokenIndex = position693, tokenIndex693
											if buffer[position] != rune('R') {
												goto l535
											}
											position++
										}
									l693:
										{
											position695, tokenIndex695 := position, tokenIndex
											if buffer[position] != rune('i') {
												goto l696
											}
											position++
											goto l695
										l696:
											position, tokenIndex = position695, tokenIndex695
											if buffer[position] != rune('I') {
												goto l535
											}
											position++
										}
									l695:
										{
											position697, tokenIndex697 := position, tokenIndex
											if buffer[position] != rune('b') {
												goto l698
											}
											position++
											goto l697
										l698:
											position, tokenIndex = position697, tokenIndex697
											if buffer[position] != rune('B') {
												goto l535
											}
											position++
										}
									l697:
										{
											position699, tokenIndex699 := position, tokenIndex
											if buffer[position] != rune('e') {
												goto l700
											}
											position++
											goto l699
										l700:
											position, tokenIndex = position699, tokenIndex699
											if buffer[position] != rune('E') {
												goto l535
											}
											position++
										}
									l699:
										break
									case 'B', 'b':
										{
											position701, tokenIndex701 := position, tokenIndex
											if buffer[position] != rune('b') {
												goto l702
											}
											position++
											goto l701
										l702:
											position, tokenIndex = position701, tokenIndex701
											if buffer[position] != rune('B') {
												goto l535
											}
											position++
										}
									l701:
										{
											position703, tokenIndex703 := position, tokenIndex
											if buffer[position] != rune('y') {
												goto l704
											}
											position++
											goto l703
										l704:
											position, tokenIndex = position703, tokenIndex703
											if buffer[position] != rune('Y') {
												goto l535
											}
											position++
										}
									l703:
										break
									default:
										{
											position705, tokenIndex705 := position, tokenIndex
											if buffer[position] != rune('a') {
												goto l706
											}
											position++
											goto l705
										l706:
											position, tokenIndex = position705, tokenIndex705
											if buffer[position] != rune('A') {
												goto l535
											}
											position++
										}
									l705:
										{
											position707, tokenIndex707 := position, tokenIndex
											if buffer[position] != rune('s') {
												goto l708
											}
											position++
											goto l707
										l708:
											position, tokenIndex = position707, tokenIndex707
											if buffer[position] != rune('S') {
												goto l535
											}
											position++
										}
									l707:
										break
									}
								}

							}
						l537:
							add(ruleKEYWORD, position536)
						}
						if !_rules[ruleKEY]() {
							goto l535
						}
						goto l527
					l535:
						position, tokenIndex = position535, tokenIndex535
					}
					if !_rules[ruleID_SEGMENT]() {
						goto l527
					}
				l709:
					{
						position710, tokenIndex710 := position, tokenIndex
						if buffer[position] != rune('.') {
							goto l710
						}
						position++
						{
							position711, tokenIndex711 := position, tokenIndex
							if !_rules[ruleID_SEGMENT]() {
								goto l712
							}
							goto l711
						l712:
							position, tokenIndex = position711, tokenIndex711
							if !(p.errorHere(position, `expected identifier segment to follow "."`)) {
								goto l710
							}
						}
					l711:
						goto l709
					l710:
						position, tokenIndex = position710, tokenIndex710
					}
				}
			l529:
				add(ruleIDENTIFIER, position528)
			}
			return true
		l527:
			position, tokenIndex = position527, tokenIndex527
			return false
		},
		/* 38 TIMESTAMP <- <((_ <(NUMBER ([a-z] / [A-Z])*)>) / (_ STRING) / (_ <(('n' / 'N') ('o' / 'O') ('w' / 'W'))> KEY))> */
		nil,
		/* 39 ID_SEGMENT <- <(ID_START ID_CONT*)> */
		func() bool {
			position714, tokenIndex714 := position, tokenIndex
			{
				position715 := position
				if !_rules[ruleID_START]() {
					goto l714
				}
			l716:
				{
					position717, tokenIndex717 := position, tokenIndex
					if !_rules[ruleID_CONT]() {
						goto l717
					}
					goto l716
				l717:
					position, tokenIndex = position717, tokenIndex717
				}
				add(ruleID_SEGMENT, position715)
			}
			return true
		l714:
			position, tokenIndex = position714, tokenIndex714
			return false
		},
		/* 40 ID_START <- <((&('_') '_') | (&('A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z') [A-Z]) | (&('a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z') [a-z]))> */
		func() bool {
			position718, tokenIndex718 := position, tokenIndex
			{
				position719 := position
				{
					switch buffer[position] {
					case '_':
						if buffer[position] != rune('_') {
							goto l718
						}
						position++
						break
					case 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z':
						if c := buffer[position]; c < rune('A') || c > rune('Z') {
							goto l718
						}
						position++
						break
					default:
						if c := buffer[position]; c < rune('a') || c > rune('z') {
							goto l718
						}
						position++
						break
					}
				}

				add(ruleID_START, position719)
			}
			return true
		l718:
			position, tokenIndex = position718, tokenIndex718
			return false
		},
		/* 41 ID_CONT <- <(ID_START / [0-9])> */
		func() bool {
			position721, tokenIndex721 := position, tokenIndex
			{
				position722 := position
				{
					position723, tokenIndex723 := position, tokenIndex
					if !_rules[ruleID_START]() {
						goto l724
					}
					goto l723
				l724:
					position, tokenIndex = position723, tokenIndex723
					if c := buffer[position]; c < rune('0') || c > rune('9') {
						goto l721
					}
					position++
				}
			l723:
				add(ruleID_CONT, position722)
			}
			return true
		l721:
			position, tokenIndex = position721, tokenIndex721
			return false
		},
		/* 42 PROPERTY_KEY <- <((&('S' | 's') (<(('s' / 'S') ('a' / 'A') ('m' / 'M') ('p' / 'P') ('l' / 'L') ('e' / 'E'))> KEY ((_ (('b' / 'B') ('y' / 'Y')) KEY) / &{ p.errorHere(position, `expected keyword "by" to follow keyword "sample"`) }))) | (&('R' | 'r') (<(('r' / 'R') ('e' / 'E') ('s' / 'S') ('o' / 'O') ('l' / 'L') ('u' / 'U') ('t' / 'T') ('i' / 'I') ('o' / 'O') ('n' / 'N'))> KEY)) | (&('T' | 't') (<(('t' / 'T') ('o' / 'O'))> KEY)) | (&('F' | 'f') (<(('f' / 'F') ('r' / 'R') ('o' / 'O') ('m' / 'M'))> KEY)))> */
		nil,
		/* 43 PROPERTY_VALUE <- <TIMESTAMP> */
		nil,
		/* 44 KEYWORD <- <((('a' / 'A') ('l' / 'L') ('l' / 'L')) / (('a' / 'A') ('n' / 'N') ('d' / 'D')) / (('m' / 'M') ('a' / 'A') ('t' / 'T') ('c' / 'C') ('h' / 'H')) / (('s' / 'S') ('e' / 'E') ('l' / 'L') ('e' / 'E') ('c' / 'C') ('t' / 'T')) / ((&('S' | 's') (('s' / 'S') ('a' / 'A') ('m' / 'M') ('p' / 'P') ('l' / 'L') ('e' / 'E'))) | (&('R' | 'r') (('r' / 'R') ('e' / 'E') ('s' / 'S') ('o' / 'O') ('l' / 'L') ('u' / 'U') ('t' / 'T') ('i' / 'I') ('o' / 'O') ('n' / 'N'))) | (&('T' | 't') (('t' / 'T') ('o' / 'O'))) | (&('F' | 'f') (('f' / 'F') ('r' / 'R') ('o' / 'O') ('m' / 'M'))) | (&('M' | 'm') (('m' / 'M') ('e' / 'E') ('t' / 'T') ('r' / 'R') ('i' / 'I') ('c' / 'C') ('s' / 'S'))) | (&('W' | 'w') (('w' / 'W') ('h' / 'H') ('e' / 'E') ('r' / 'R') ('e' / 'E'))) | (&('O' | 'o') (('o' / 'O') ('r' / 'R'))) | (&('N' | 'n') (('n' / 'N') ('o' / 'O') ('t' / 'T'))) | (&('I' | 'i') (('i' / 'I') ('n' / 'N'))) | (&('C' | 'c') (('c' / 'C') ('o' / 'O') ('l' / 'L') ('l' / 'L') ('a' / 'A') ('p' / 'P') ('s' / 'S') ('e' / 'E'))) | (&('G' | 'g') (('g' / 'G') ('r' / 'R') ('o' / 'O') ('u' / 'U') ('p' / 'P'))) | (&('D' | 'd') (('d' / 'D') ('e' / 'E') ('s' / 'S') ('c' / 'C') ('r' / 'R') ('i' / 'I') ('b' / 'B') ('e' / 'E'))) | (&('B' | 'b') (('b' / 'B') ('y' / 'Y'))) | (&('A' | 'a') (('a' / 'A') ('s' / 'S')))))> */
		nil,
		/* 45 OP_PIPE <- <'|'> */
		nil,
		/* 46 OP_ADD <- <'+'> */
		nil,
		/* 47 OP_SUB <- <'-'> */
		nil,
		/* 48 OP_MULT <- <'*'> */
		nil,
		/* 49 OP_DIV <- <'/'> */
		nil,
		/* 50 OP_AND <- <(('a' / 'A') ('n' / 'N') ('d' / 'D') KEY)> */
		nil,
		/* 51 OP_OR <- <(('o' / 'O') ('r' / 'R') KEY)> */
		nil,
		/* 52 OP_NOT <- <(('n' / 'N') ('o' / 'O') ('t' / 'T') KEY)> */
		nil,
		/* 53 QUOTE_SINGLE <- <'\''> */
		func() bool {
			position736, tokenIndex736 := position, tokenIndex
			{
				position737 := position
				if buffer[position] != rune('\'') {
					goto l736
				}
				position++
				add(ruleQUOTE_SINGLE, position737)
			}
			return true
		l736:
			position, tokenIndex = position736, tokenIndex736
			return false
		},
		/* 54 QUOTE_DOUBLE <- <'"'> */
		func() bool {
			position738, tokenIndex738 := position, tokenIndex
			{
				position739 := position
				if buffer[position] != rune('"') {
					goto l738
				}
				position++
				add(ruleQUOTE_DOUBLE, position739)
			}
			return true
		l738:
			position, tokenIndex = position738, tokenIndex738
			return false
		},
		/* 55 STRING <- <((QUOTE_SINGLE <(!QUOTE_SINGLE CHAR)*> (QUOTE_SINGLE / &{ p.errorHere(position, `expected "'" to close string`) })) / (QUOTE_DOUBLE <(!QUOTE_DOUBLE CHAR)*> (QUOTE_DOUBLE / &{ p.errorHere(position, `expected '"' to close string`) })))> */
		func() bool {
			position740, tokenIndex740 := position, tokenIndex
			{
				position741 := position
				{
					position742, tokenIndex742 := position, tokenIndex
					if !_rules[ruleQUOTE_SINGLE]() {
						goto l743
					}
					{
						position744 := position
					l745:
						{
							position746, tokenIndex746 := position, tokenIndex
							{
								position747, tokenIndex747 := position, tokenIndex
								if !_rules[ruleQUOTE_SINGLE]() {
									goto l747
								}
								goto l746
							l747:
								position, tokenIndex = position747, tokenIndex747
							}
							if !_rules[ruleCHAR]() {
								goto l746
							}
							goto l745
						l746:
							position, tokenIndex = position746, tokenIndex746
						}
						add(rulePegText, position744)
					}
					{
						position748, tokenIndex748 := position, tokenIndex
						if !_rules[ruleQUOTE_SINGLE]() {
							goto l749
						}
						goto l748
					l749:
						position, tokenIndex = position748, tokenIndex748
						if !(p.errorHere(position, `expected "'" to close string`)) {
							goto l743
						}
					}
				l748:
					goto l742
				l743:
					position, tokenIndex = position742, tokenIndex742
					if !_rules[ruleQUOTE_DOUBLE]() {
						goto l740
					}
					{
						position750 := position
					l751:
						{
							position752, tokenIndex752 := position, tokenIndex
							{
								position753, tokenIndex753 := position, tokenIndex
								if !_rules[ruleQUOTE_DOUBLE]() {
									goto l753
								}
								goto l752
							l753:
								position, tokenIndex = position753, tokenIndex753
							}
							if !_rules[ruleCHAR]() {
								goto l752
							}
							goto l751
						l752:
							position, tokenIndex = position752, tokenIndex752
						}
						add(rulePegText, position750)
					}
					{
						position754, tokenIndex754 := position, tokenIndex
						if !_rules[ruleQUOTE_DOUBLE]() {
							goto l755
						}
						goto l754
					l755:
						position, tokenIndex = position754, tokenIndex754
						if !(p.errorHere(position, `expected '"' to close string`)) {
							goto l740
						}
					}
				l754:
				}
			l742:
				add(ruleSTRING, position741)
			}
			return true
		l740:
			position, tokenIndex = position740, tokenIndex740
			return false
		},
		/* 56 CHAR <- <(('\\' ((&('"') (QUOTE_DOUBLE / &{ p.errorHere(position, "expected \"\\\", \"'\", \"`\", or '\"' to follow \"\\\" in string literal") })) | (&('\'') QUOTE_SINGLE) | (&('\\' | '`') ESCAPE_CLASS))) / (!ESCAPE_CLASS .))> */
		func() bool {
			position756, tokenIndex756 := position, tokenIndex
			{
				position757 := position
				{
					position758, tokenIndex758 := position, tokenIndex
					if buffer[position] != rune('\\') {
						goto l759
					}
					position++
					{
						switch buffer[position] {
						case '"':
							{
								position761, tokenIndex761 := position, tokenIndex
								if !_rules[ruleQUOTE_DOUBLE]() {
									goto l762
								}
								goto l761
							l762:
								position, tokenIndex = position761, tokenIndex761
								if !(p.errorHere(position, "expected \"\\\", \"'\", \"`\", or '\"' to follow \"\\\" in string literal")) {
									goto l759
								}
							}
						l761:
							break
						case '\'':
							if !_rules[ruleQUOTE_SINGLE]() {
								goto l759
							}
							break
						default:
							if !_rules[ruleESCAPE_CLASS]() {
								goto l759
							}
							break
						}
					}

					goto l758
				l759:
					position, tokenIndex = position758, tokenIndex758
					{
						position763, tokenIndex763 := position, tokenIndex
						if !_rules[ruleESCAPE_CLASS]() {
							goto l763
						}
						goto l756
					l763:
						position, tokenIndex = position763, tokenIndex763
					}
					if !matchDot() {
						goto l756
					}
				}
			l758:
				add(ruleCHAR, position757)
			}
			return true
		l756:
			position, tokenIndex = position756, tokenIndex756
			return false
		},
		/* 57 ESCAPE_CLASS <- <('`' / '\\')> */
		func() bool {
			position764, tokenIndex764 := position, tokenIndex
			{
				position765 := position
				{
					position766, tokenIndex766 := position, tokenIndex
					if buffer[position] != rune('`') {
						goto l767
					}
					position++
					goto l766
				l767:
					position, tokenIndex = position766, tokenIndex766
					if buffer[position] != rune('\\') {
						goto l764
					}
					position++
				}
			l766:
				add(ruleESCAPE_CLASS, position765)
			}
			return true
		l764:
			position, tokenIndex = position764, tokenIndex764
			return false
		},
		/* 58 NUMBER <- <(NUMBER_INTEGER NUMBER_FRACTION? NUMBER_EXP?)> */
		func() bool {
			position768, tokenIndex768 := position, tokenIndex
			{
				position769 := position
				{
					position770 := position
					{
						position771, tokenIndex771 := position, tokenIndex
						if buffer[position] != rune('-') {
							goto l771
						}
						position++
						goto l772
					l771:
						position, tokenIndex = position771, tokenIndex771
					}
				l772:
					{
						position773 := position
						{
							position774, tokenIndex774 := position, tokenIndex
							if buffer[position] != rune('0') {
								goto l775
							}
							position++
							goto l774
						l775:
							position, tokenIndex = position774, tokenIndex774
							if c := buffer[position]; c < rune('1') || c > rune('9') {
								goto l768
							}
							position++
						l776:
							{
								position777, tokenIndex777 := position, tokenIndex
								if c := buffer[position]; c < rune('0') || c > rune('9') {
									goto l777
								}
								position++
								goto l776
							l777:
								position, tokenIndex = position777, tokenIndex777
							}
						}
					l774:
						add(ruleNUMBER_NATURAL, position773)
					}
					add(ruleNUMBER_INTEGER, position770)
				}
				{
					position778, tokenIndex778 := position, tokenIndex
					{
						position780 := position
						if buffer[position] != rune('.') {
							goto l778
						}
						position++
						if c := buffer[position]; c < rune('0') || c > rune('9') {
							goto l778
						}
						position++
					l781:
						{
							position782, tokenIndex782 := position, tokenIndex
							if c := buffer[position]; c < rune('0') || c > rune('9') {
								goto l782
							}
							position++
							goto l781
						l782:
							position, tokenIndex = position782, tokenIndex782
						}
						add(ruleNUMBER_FRACTION, position780)
					}
					goto l779
				l778:
					position, tokenIndex = position778, tokenIndex778
				}
			l779:
				{
					position783, tokenIndex783 := position, tokenIndex
					{
						position785 := position
						{
							position786, tokenIndex786 := position, tokenIndex
							if buffer[position] != rune('e') {
								goto l787
							}
							position++
							goto l786
						l787:
							position, tokenIndex = position786, tokenIndex786
							if buffer[position] != rune('E') {
								goto l783
							}
							position++
						}
					l786:
						{
							position788, tokenIndex788 := position, tokenIndex
							{
								position790, tokenIndex790 := position, tokenIndex
								if buffer[position] != rune('+') {
									goto l791
								}
								position++
								goto l790
							l791:
								position, tokenIndex = position790, tokenIndex790
								if buffer[position] != rune('-') {
									goto l788
								}
								position++
							}
						l790:
							goto l789
						l788:
							position, tokenIndex = position788, tokenIndex788
						}
					l789:
						{
							position792, tokenIndex792 := position, tokenIndex
							if c := buffer[position]; c < rune('0') || c > rune('9') {
								goto l793
							}
							position++
						l794:
							{
								position795, tokenIndex795 := position, tokenIndex
								if c := buffer[position]; c < rune('0') || c > rune('9') {
									goto l795
								}
								position++
								goto l794
							l795:
								position, tokenIndex = position795, tokenIndex795
							}
							goto l792
						l793:
							position, tokenIndex = position792, tokenIndex792
							if !(p.errorHere(position, `expected exponent`)) {
								goto l783
							}
						}
					l792:
						add(ruleNUMBER_EXP, position785)
					}
					goto l784
				l783:
					position, tokenIndex = position783, tokenIndex783
				}
			l784:
				add(ruleNUMBER, position769)
			}
			return true
		l768:
			position, tokenIndex = position768, tokenIndex768
			return false
		},
		/* 59 NUMBER_NATURAL <- <('0' / ([1-9] [0-9]*))> */
		nil,
		/* 60 NUMBER_FRACTION <- <('.' [0-9]+)> */
		nil,
		/* 61 NUMBER_INTEGER <- <('-'? NUMBER_NATURAL)> */
		nil,
		/* 62 NUMBER_EXP <- <(('e' / 'E') ('+' / '-')? ([0-9]+ / &{ p.errorHere(position, `expected exponent`) }))> */
		nil,
		/* 63 DURATION <- <(NUMBER [a-z]+ KEY)> */
		nil,
		/* 64 PAREN_OPEN <- <'('> */
		func() bool {
			position801, tokenIndex801 := position, tokenIndex
			{
				position802 := position
				if buffer[position] != rune('(') {
					goto l801
				}
				position++
				add(rulePAREN_OPEN, position802)
			}
			return true
		l801:
			position, tokenIndex = position801, tokenIndex801
			return false
		},
		/* 65 PAREN_CLOSE <- <')'> */
		func() bool {
			position803, tokenIndex803 := position, tokenIndex
			{
				position804 := position
				if buffer[position] != rune(')') {
					goto l803
				}
				position++
				add(rulePAREN_CLOSE, position804)
			}
			return true
		l803:
			position, tokenIndex = position803, tokenIndex803
			return false
		},
		/* 66 COMMA <- <','> */
		func() bool {
			position805, tokenIndex805 := position, tokenIndex
			{
				position806 := position
				if buffer[position] != rune(',') {
					goto l805
				}
				position++
				add(ruleCOMMA, position806)
			}
			return true
		l805:
			position, tokenIndex = position805, tokenIndex805
			return false
		},
		/* 67 _ <- <((&('/') COMMENT_BLOCK) | (&('-') COMMENT_TRAIL) | (&('\t' | '\n' | ' ') SPACE))*> */
		func() bool {
			{
				position808 := position
			l809:
				{
					position810, tokenIndex810 := position, tokenIndex
					{
						switch buffer[position] {
						case '/':
							{
								position812 := position
								if buffer[position] != rune('/') {
									goto l810
								}
								position++
								if buffer[position] != rune('*') {
									goto l810
								}
								position++
							l813:
								{
									position814, tokenIndex814 := position, tokenIndex
									{
										position815, tokenIndex815 := position, tokenIndex
										if buffer[position] != rune('*') {
											goto l815
										}
										position++
										if buffer[position] != rune('/') {
											goto l815
										}
										position++
										goto l814
									l815:
										position, tokenIndex = position815, tokenIndex815
									}
									if !matchDot() {
										goto l814
									}
									goto l813
								l814:
									position, tokenIndex = position814, tokenIndex814
								}
								if buffer[position] != rune('*') {
									goto l810
								}
								position++
								if buffer[position] != rune('/') {
									goto l810
								}
								position++
								add(ruleCOMMENT_BLOCK, position812)
							}
							break
						case '-':
							{
								position816 := position
								if buffer[position] != rune('-') {
									goto l810
								}
								position++
								if buffer[position] != rune('-') {
									goto l810
								}
								position++
							l817:
								{
									position818, tokenIndex818 := position, tokenIndex
									{
										position819, tokenIndex819 := position, tokenIndex
										if buffer[position] != rune('\n') {
											goto l819
										}
										position++
										goto l818
									l819:
										position, tokenIndex = position819, tokenIndex819
									}
									if !matchDot() {
										goto l818
									}
									goto l817
								l818:
									position, tokenIndex = position818, tokenIndex818
								}
								add(ruleCOMMENT_TRAIL, position816)
							}
							break
						default:
							{
								position820 := position
								{
									switch buffer[position] {
									case '\t':
										if buffer[position] != rune('\t') {
											goto l810
										}
										position++
										break
									case '\n':
										if buffer[position] != rune('\n') {
											goto l810
										}
										position++
										break
									default:
										if buffer[position] != rune(' ') {
											goto l810
										}
										position++
										break
									}
								}

								add(ruleSPACE, position820)
							}
							break
						}
					}

					goto l809
				l810:
					position, tokenIndex = position810, tokenIndex810
				}
				add(rule_, position808)
			}
			return true
		},
		/* 68 COMMENT_TRAIL <- <('-' '-' (!'\n' .)*)> */
		nil,
		/* 69 COMMENT_BLOCK <- <('/' '*' (!('*' '/') .)* ('*' '/'))> */
		nil,
		/* 70 KEY <- <!ID_CONT> */
		func() bool {
			position824, tokenIndex824 := position, tokenIndex
			{
				position825 := position
				{
					position826, tokenIndex826 := position, tokenIndex
					if !_rules[ruleID_CONT]() {
						goto l826
					}
					goto l824
				l826:
					position, tokenIndex = position826, tokenIndex826
				}
				add(ruleKEY, position825)
			}
			return true
		l824:
			position, tokenIndex = position824, tokenIndex824
			return false
		},
		/* 71 SPACE <- <((&('\t') '\t') | (&('\n') '\n') | (&(' ') ' '))> */
		nil,
		/* 73 Action0 <- <{ p.makeSelect() }> */
		nil,
		/* 74 Action1 <- <{ p.makeDescribeAll() }> */
		nil,
		/* 75 Action2 <- <{ p.addNullMatchClause() }> */
		nil,
		/* 76 Action3 <- <{ p.addMatchClause() }> */
		nil,
		/* 77 Action4 <- <{ p.makeDescribeMetrics() }> */
		nil,
		nil,
		/* 79 Action5 <- <{ p.pushString(unescapeLiteral(text)) }> */
		nil,
		/* 80 Action6 <- <{ p.makeDescribe() }> */
		nil,
		/* 81 Action7 <- <{ p.addEvaluationContext() }> */
		nil,
		/* 82 Action8 <- <{ p.addPropertyKey(text) }> */
		nil,
		/* 83 Action9 <- <{
		   p.addPropertyValue(text) }> */
		nil,
		/* 84 Action10 <- <{ p.insertPropertyKeyValue() }> */
		nil,
		/* 85 Action11 <- <{ p.checkPropertyClause() }> */
		nil,
		/* 86 Action12 <- <{ p.addNullPredicate() }> */
		nil,
		/* 87 Action13 <- <{ p.addExpressionList() }> */
		nil,
		/* 88 Action14 <- <{ p.appendExpression() }> */
		nil,
		/* 89 Action15 <- <{ p.appendExpression() }> */
		nil,
		/* 90 Action16 <- <{ p.addOperatorLiteral("+") }> */
		nil,
		/* 91 Action17 <- <{ p.addOperatorLiteral("-") }> */
		nil,
		/* 92 Action18 <- <{ p.addOperatorFunction() }> */
		nil,
		/* 93 Action19 <- <{ p.addOperatorLiteral("/") }> */
		nil,
		/* 94 Action20 <- <{ p.addOperatorLiteral("*") }> */
		nil,
		/* 95 Action21 <- <{ p.addOperatorFunction() }> */
		nil,
		/* 96 Action22 <- <{ p.pushString(unescapeLiteral(text)) }> */
		nil,
		/* 97 Action23 <- <{p.addExpressionList()}> */
		nil,
		/* 98 Action24 <- <{
		   p.addExpressionList()
		   p.addGroupBy()
		 }> */
		nil,
		/* 99 Action25 <- <{ p.addPipeExpression() }> */
		nil,
		/* 100 Action26 <- <{ p.addDurationNode(text) }> */
		nil,
		/* 101 Action27 <- <{ p.addNumberNode(text) }> */
		nil,
		/* 102 Action28 <- <{ p.addStringNode(unescapeLiteral(text)) }> */
		nil,
		/* 103 Action29 <- <{ p.addAnnotationExpression(text) }> */
		nil,
		/* 104 Action30 <- <{ p.addGroupBy() }> */
		nil,
		/* 105 Action31 <- <{ p.pushString(unescapeLiteral(text)) }> */
		nil,
		/* 106 Action32 <- <{ p.addFunctionInvocation() }> */
		nil,
		/* 107 Action33 <- <{ p.pushString(unescapeLiteral(text)) }> */
		nil,
		/* 108 Action34 <- <{ p.addNullPredicate() }> */
		nil,
		/* 109 Action35 <- <{ p.addMetricExpression() }> */
		nil,
		/* 110 Action36 <- <{ p.addGroupBy() }> */
		nil,
		/* 111 Action37 <- <{ p.appendGroupTag(unescapeLiteral(text)) }> */
		nil,
		/* 112 Action38 <- <{ p.appendGroupTag(unescapeLiteral(text)) }> */
		nil,
		/* 113 Action39 <- <{ p.addCollapseBy() }> */
		nil,
		/* 114 Action40 <- <{ p.appendGroupTag(unescapeLiteral(text)) }> */
		nil,
		/* 115 Action41 <- <{ p.appendGroupTag(unescapeLiteral(text)) }> */
		nil,
		/* 116 Action42 <- <{ p.addOrPredicate() }> */
		nil,
		/* 117 Action43 <- <{ p.addAndPredicate() }> */
		nil,
		/* 118 Action44 <- <{ p.addNotPredicate() }> */
		nil,
		/* 119 Action45 <- <{ p.addLiteralMatcher() }> */
		nil,
		/* 120 Action46 <- <{ p.addLiteralMatcher() }> */
		nil,
		/* 121 Action47 <- <{ p.addNotPredicate() }> */
		nil,
		/* 122 Action48 <- <{ p.addRegexMatcher() }> */
		nil,
		/* 123 Action49 <- <{ p.addListMatcher() }> */
		nil,
		/* 124 Action50 <- <{ p.pushString(unescapeLiteral(text)) }> */
		nil,
		/* 125 Action51 <- <{ p.addLiteralList() }> */
		nil,
		/* 126 Action52 <- <{ p.appendLiteral(unescapeLiteral(text)) }> */
		nil,
		/* 127 Action53 <- <{ p.addTagLiteral(unescapeLiteral(text)) }> */
		nil,
	}
	p.rules = _rules
}

license_type: permissive

branch_name: refs/heads/master

extension: go


text:
SUMMARY = "QEMU wrapper script"
HOMEPAGE = "http://qemu.org"
LICENSE = "MIT"

S = "${WORKDIR}"

DEPENDS += "qemu-native"

inherit qemu

do_populate_sysroot[depends] = ""

do_install () {
	install -d ${D}${bindir_crossscripts}/

	qemu_binary=${@qemu_target_binary(d)}
	qemu_options='${QEMU_OPTIONS} -E LD_LIBRARY_PATH=$D${libdir}:$D${base_libdir}'

	cat >> ${D}${bindir_crossscripts}/${MLPREFIX}qemuwrapper << EOF
#!/bin/sh
set -x

if [ ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d)} = False -a "${PN}" != "nativesdk-qemuwrapper-cross" ]; then
	echo "qemuwrapper: qemu usermode is not supported"
	exit 1
fi

$qemu_binary $qemu_options "\$@"
EOF

	chmod +x ${D}${bindir_crossscripts}/${MLPREFIX}qemuwrapper
}

SYSROOT_DIRS += "${bindir_crossscripts}"

INHIBIT_DEFAULT_DEPS = "1"

BBCLASSEXTEND = "nativesdk"

license: MIT

repository: Linaro/meta-ledge

repo_name: Linaro/meta-ledge

branch_name: refs/heads/hardknott

gha_license_id: MIT

gha_language: Shell

extension: bb


text:
DESCRIPTION = "This package provides dbox2/dreambox \
compatible header files for the API to the drivers."

MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"

SRC_URI = "http://sources.dreamboxupdate.com/snapshots/include2.tar.gz"
S = "${WORKDIR}/include"

ALLOW_EMPTY_dreambox-dvbincludes = "1"

INPUT_FILES = "input_fake.h ci/ci.h  dbox/avia_gt_pig.h dbox/avs_core.h \
	dbox/event.h dbox/fp.h dbox/info.h dbox/lcd.h dbox/saa7126_core.h \
	dbox/lcd-ks0713.h dbox/fb.h \
	dreambox/dreaminfo.h \
	tuxbox/hardware_dbox2.h tuxbox/hardware_dreambox.h tuxbox/hardware_pci.h \
	tuxbox/info.h tuxbox/info_dbox2.h tuxbox/kernel.h"

INPUT_FILES_OST =	" ost/audio.h ost/ca.h ost/demux.h ost/descrambler.h ost/dmx.h \
	ost/dvb.h ost/dvb_frontend.h  ost/frontend.h ost/net.h ost/sec.h \
	ost/video.h "

PV="1"

do_install_powerpc() {
	install -d ${STAGING_INCDIR}/ci
	install -d ${STAGING_INCDIR}/dbox
	install -d ${STAGING_INCDIR}/dreambox
	install -d ${STAGING_INCDIR}/ost
	install -d ${STAGING_INCDIR}/tuxbox
	for f in ${INPUT_FILES} ${INPUT_FILES_OST}; do
		install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
	done;
}

do_install_mipsel() {
	install -d ${STAGING_INCDIR}/ci
	install -d ${STAGING_INCDIR}/dbox
	install -d ${STAGING_INCDIR}/dreambox
	install -d ${STAGING_INCDIR}/tuxbox
	for f in ${INPUT_FILES}; do
		install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
	done;
}

gha_language: C


text:
DESCRIPTION = "Alsa Drivers"
MAINTAINER = "Pigi"
SECTION = "console/utils"
LICENSE = "GPL"
#DEPENDS = "alsa-lib"

SRC_URI = "ftp://ftp.handhelds.org/packages/alsa-driver/alsa-driver-${PV}.tar.gz \
	file://sound.p.patch;patch=1 \
	file://h5400.patch;patch=1 \
	file://adriver.h.patch;patch=1 "

#inherit autotools
#inherit module

#EXTRA_OECONF = "  --with-isapnp=no "
EXTRA_OECONF=" --with-sequencer=no --with-isapnp=no --with-oss=yes  --with-cards=${cards} --with-kernel=${STAGING_KERNEL_DIR} --with-kernel-version=${KERNEL_VERSION} --host=arm-linux"
#EXTRA_OECONF = " /ext/ambient/tmp/work/handhelds-sa-2.4.19-rmk6-pxa1-hh37.4-r5/kernel/ "

do_configure() {

VERS=`grep "^VERSION =" ${STAGING_KERNEL_DIR}/Makefile | awk '{print $3}'`
PATLEV=`grep "^PATCHLEVEL =" ${STAGING_KERNEL_DIR}/Makefile | awk '{print $3}'`
SBLEV=`grep "^SUBLEVEL =" ${STAGING_KERNEL_DIR}/Makefile | awk '{print $3}'`
EXVER=`grep "^EXTRAVERSION =" ${STAGING_KERNEL_DIR}/Makefile | awk '{print $3}'`

KERNEL_VERSION=$VERS.$PATLEV.$SBLEV$EXVER

cards=
if egrep "CONFIG_SA1100_H3[168]00=y" "${STAGING_KERNEL_DIR}/.config" ; then
  cards="$cards,sa11xx-uda1341"
  familiar_arch=ipaqsa
fi
if grep "CONFIG_ARCH_H3900=y" "${STAGING_KERNEL_DIR}/.config" ; then
  cards="$cards,pxa-uda1380,h5400-ak4535"
  familiar_arch=ipaqpxa
fi
cards="$cards,bluez-sco,pdaudiocf"

   configure ${EXTRA_OECONF}
   #./config.ipaq ${STAGING_KERNEL_DIR}

}

do_install() {

if egrep "CONFIG_SA1100_H3[168]00=y" "${STAGING_KERNEL_DIR}/.config" ; then
  familiar_arch=ipaqsa
fi
if grep "CONFIG_ARCH_H3900=y" "${STAGING_KERNEL_DIR}/.config" ; then
  familiar_arch=ipaqpxa
fi
extra_modules="snd-gus-synth.o snd-emu8000-synth.o snd-emux-synth.o \
        snd-ainstr-fm.o snd-ainstr-gf1.o snd-ainstr-iw.o snd-ainstr-simple.o \
        snd-seq-midi-emul.o snd-seq-midi-event.o snd-seq-midi.o snd-seq-virmidi.o snd-seq-oss.o"

      fakeroot make -k NODEPMOD=yes DESTDIR=${D} install;

      for i in ${extra_modules};
        do rm -f ${D}/lib/modules/*/misc/$i;
      done

      if [ -d ${D}/${sysconfdir}/modutils/ ] ; then
         rm -r ${D}/${sysconfdir}/modutils/ ;
      fi
      mkdir ${D}/${sysconfdir}/modutils/
      cp familiar/alsa-modules-${familiar_arch} ${D}/${sysconfdir}/modutils/
}

#FILES_alsa-driver = "/lib/modules/${KERNEL_VERSION}/misc/snd* /${sysconfdir}/init.d/ /${sysconfdir}"
FILES_${PN} = "/lib/modules/*/misc/snd* ${sysconfdir}/modutils/* "

repository: BackupTheBerlios/openslug-svn

repo_name: BackupTheBerlios/openslug-svn