g2o
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
SlamParser::Parser Class Reference

A Bison parser. More...

#include <bison_parser.h>

Collaboration diagram for SlamParser::Parser:
Collaboration graph
[legend]

Classes

struct  basic_symbol
 
struct  by_kind
 Type access provider for token (enum) based symbols. More...
 
struct  by_state
 Type access provider for state based symbols. More...
 
class  context
 
class  stack
 A stack with random access from its top. More...
 
struct  stack_symbol_type
 "Internal" symbol: element of the stack. More...
 
struct  symbol_kind
 Symbol kinds. More...
 
struct  symbol_type
 "External" symbols: returned by the scanner. More...
 
struct  syntax_error
 Syntax errors thrown from user actions. More...
 
struct  token
 Token kinds. More...
 
union  value_type
 Symbol semantic values. More...
 

Public Types

typedef value_type semantic_type
 Backward compatibility (Bison 3.8).
 
typedef location location_type
 Symbol locations.
 
typedef token::token_kind_type token_kind_type
 Token kind, as returned by yylex.
 
typedef token_kind_type token_type
 Backward compatibility alias (Bison 3.6).
 
typedef symbol_kind::symbol_kind_type symbol_kind_type
 (Internal) symbol kind.
 
typedef by_kind by_type
 Backward compatibility for a private implementation detail (Bison 3.6).
 

Public Member Functions

 Parser (class Driver &driver_yyarg)
 Build a parser object.
 
virtual ~Parser ()
 
int operator() ()
 
virtual int parse ()
 
virtual void error (const location_type &loc, const std::string &msg)
 
void error (const syntax_error &err)
 Report a syntax error.
 

Static Public Member Functions

static std::string symbol_name (symbol_kind_type yysymbol)
 

Static Public Attributes

static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS
 The number of tokens.
 

Private Types

enum  { yylast_ = 68 , yynnts_ = 10 , yyfinal_ = 2 }
 Constants. More...
 
typedef signed char state_type
 Stored state numbers (used for stacks).
 
typedef stack< stack_symbol_typestack_type
 Stack type.
 

Private Member Functions

 Parser (const Parser &)
 Non copyable.
 
Parseroperator= (const Parser &)
 Non copyable.
 
int yy_syntax_error_arguments_ (const context &yyctx, symbol_kind_type yyarg[], int yyargn) const
 The arguments of the error message.
 
virtual std::string yysyntax_error_ (const context &yyctx) const
 
template<typename Base >
void yy_destroy_ (const char *yymsg, basic_symbol< Base > &yysym) const
 Reclaim the memory associated to a symbol.
 
void yypush_ (const char *m, YY_MOVE_REF(stack_symbol_type) sym)
 
void yypush_ (const char *m, state_type s, YY_MOVE_REF(symbol_type) sym)
 
void yypop_ (int n=1) YY_NOEXCEPT
 Pop n symbols from the stack.
 

Static Private Member Functions

static state_type yy_lr_goto_state_ (state_type yystate, int yysym)
 
static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT
 
static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT
 
static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT
 
static std::string yytnamerr_ (const char *yystr)
 Convert the symbol name n to a form suitable for a diagnostic.
 

Private Attributes

stack_type yystack_
 The stack.
 
class Driverdriver
 

Static Private Attributes

static const signed char yypact_ninf_ = -24
 
static const signed char yytable_ninf_ = -1
 
static const char *const yytname_ []
 For a symbol, its name in clear.
 
static const signed char yypact_ []
 
static const signed char yydefact_ []
 
static const signed char yypgoto_ []
 
static const signed char yydefgoto_ [] = {0, 20, 29, 8, 9, 10, 11, 12, 13, 1}
 
static const signed char yytable_ []
 
static const signed char yycheck_ []
 
static const signed char yystos_ []
 
static const signed char yyr1_ []
 
static const signed char yyr2_ []
 

Detailed Description

A Bison parser.

Definition at line 187 of file bison_parser.h.

Member Typedef Documentation

◆ by_type

Backward compatibility for a private implementation detail (Bison 3.6).

Definition at line 400 of file bison_parser.h.

◆ location_type

Symbol locations.

Definition at line 213 of file bison_parser.h.

◆ semantic_type

Backward compatibility (Bison 3.8).

Definition at line 210 of file bison_parser.h.

◆ stack_type

Stack type.

Definition at line 709 of file bison_parser.h.

◆ state_type

typedef signed char SlamParser::Parser::state_type
private

Stored state numbers (used for stacks).

Definition at line 476 of file bison_parser.h.

◆ symbol_kind_type

(Internal) symbol kind.

Definition at line 293 of file bison_parser.h.

◆ token_kind_type

Token kind, as returned by yylex.

Definition at line 253 of file bison_parser.h.

◆ token_type

Backward compatibility alias (Bison 3.6).

Definition at line 256 of file bison_parser.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private

Constants.

Enumerator
yylast_ 

Last index in yytable_.

yynnts_ 

Number of nonterminal symbols.

yyfinal_ 

Termination state number.

Definition at line 733 of file bison_parser.h.

733 {
734 yylast_ = 68,
735 yynnts_ = 10,
736 yyfinal_ = 2
737 };
@ yyfinal_
Termination state number.
@ yynnts_
Number of nonterminal symbols.
@ yylast_
Last index in yytable_.

Constructor & Destructor Documentation

◆ Parser() [1/2]

SlamParser::Parser::Parser ( class Driver driver_yyarg)

Build a parser object.

Definition at line 156 of file bison_parser.cpp.

158 : yydebug_(false),
159 yycdebug_(&std::cerr),
160#else
161 :
162#endif
163 driver(driver_yyarg) {
164}
class Driver & driver

◆ ~Parser()

SlamParser::Parser::~Parser ( )
virtual

Definition at line 166 of file bison_parser.cpp.

166{}

◆ Parser() [2/2]

SlamParser::Parser::Parser ( const Parser )
private

Non copyable.

Member Function Documentation

◆ error() [1/2]

void SlamParser::Parser::error ( const location_type loc,
const std::string &  msg 
)
virtual

Report a syntax error.

Parameters
locwhere the syntax error is found.
msga description of the syntax error.

Definition at line 1258 of file bison_parser.cpp.

1259 {
1260 driver.error(l, m);
1261}
void error(const class location &l, const std::string &m)
Definition driver.cpp:68

Referenced by error(), and parse().

◆ error() [2/2]

void SlamParser::Parser::error ( const syntax_error err)

Report a syntax error.

Definition at line 969 of file bison_parser.cpp.

969 {
970 error(yyexc.location, yyexc.what());
971}
virtual void error(const location_type &loc, const std::string &msg)

References error(), and SlamParser::Parser::syntax_error::location.

◆ operator()()

int SlamParser::Parser::operator() ( )

Parse. An alias for parse ().

Returns
0 iff parsing succeeded.

Definition at line 426 of file bison_parser.cpp.

426{ return parse(); }
virtual int parse()

References parse().

◆ operator=()

Parser & SlamParser::Parser::operator= ( const Parser )
private

Non copyable.

◆ parse()

int SlamParser::Parser::parse ( )
virtual

Parse.

Returns
0 iff parsing succeeded.

Length of the RHS of the rule being reduced.

The lookahead symbol.

The locations where the error started and ended.

The return value of parse ().

Definition at line 428 of file bison_parser.cpp.

428 {
429 int yyn;
431 int yylen = 0;
432
433 // Error handling.
434 int yyerrstatus_ = 0;
435
437 symbol_type yyla;
438
440 stack_symbol_type yyerror_range[3];
441
443 int yyresult;
444
445#if YY_EXCEPTIONS
446 try
447#endif // YY_EXCEPTIONS
448 {
449 YYCDEBUG << "Starting parse\n";
450
451 // User initialization code.
452#line 38 "parser.yy"
453 {
454 // initialize the initial location object
455 yyla.location.begin.filename = yyla.location.end.filename =
457 }
458
459#line 557 "bison_parser.cpp"
460
461 /* Initialize the stack. The initial state will be set in
462 yynewstate, since the latter expects the semantical and the
463 location values to have been already stored, initialize these
464 stacks with a primary value. */
465 yystack_.clear();
466 yypush_(YY_NULLPTR, 0, YY_MOVE(yyla));
467
468 /*-----------------------------------------------.
469 | yynewstate -- push a new symbol on the stack. |
470 `-----------------------------------------------*/
471 yynewstate:
472 YYCDEBUG << "Entering state " << int(yystack_[0].state) << '\n';
474
475 // Accept?
476 if (yystack_[0].state == yyfinal_) YYACCEPT;
477
478 goto yybackup;
479
480 /*-----------.
481 | yybackup. |
482 `-----------*/
483 yybackup:
484 // Try to take a decision without lookahead.
485 yyn = yypact_[+yystack_[0].state];
486 if (yy_pact_value_is_default_(yyn)) goto yydefault;
487
488 // Read a lookahead token.
489 if (yyla.empty()) {
490 YYCDEBUG << "Reading a token\n";
491#if YY_EXCEPTIONS
492 try
493#endif // YY_EXCEPTIONS
494 {
495 yyla.kind_ = yytranslate_(yylex(&yyla.value, &yyla.location));
496 }
497#if YY_EXCEPTIONS
498 catch (const syntax_error& yyexc) {
499 YYCDEBUG << "Caught exception: " << yyexc.what() << '\n';
500 error(yyexc);
501 goto yyerrlab1;
502 }
503#endif // YY_EXCEPTIONS
504 }
505 YY_SYMBOL_PRINT("Next token is", yyla);
506
507 if (yyla.kind() == symbol_kind::S_YYerror) {
508 // The scanner already issued an error message, process directly
509 // to error recovery. But do not keep the error token as
510 // lookahead, it is too special and may lead us to an endless
511 // loop in error recovery. */
512 yyla.kind_ = symbol_kind::S_YYUNDEF;
513 goto yyerrlab1;
514 }
515
516 /* If the proper action on seeing token YYLA.TYPE is to reduce or
517 to detect an error, take that action. */
518 yyn += yyla.kind();
519 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind()) {
520 goto yydefault;
521 }
522
523 // Reduce or error.
524 yyn = yytable_[yyn];
525 if (yyn <= 0) {
526 if (yy_table_value_is_error_(yyn)) goto yyerrlab;
527 yyn = -yyn;
528 goto yyreduce;
529 }
530
531 // Count tokens shifted since error; after three, turn off error status.
532 if (yyerrstatus_) --yyerrstatus_;
533
534 // Shift the lookahead token.
535 yypush_("Shifting", state_type(yyn), YY_MOVE(yyla));
536 goto yynewstate;
537
538 /*-----------------------------------------------------------.
539 | yydefault -- do the default action for the current state. |
540 `-----------------------------------------------------------*/
541 yydefault:
542 yyn = yydefact_[+yystack_[0].state];
543 if (yyn == 0) goto yyerrlab;
544 goto yyreduce;
545
546 /*-----------------------------.
547 | yyreduce -- do a reduction. |
548 `-----------------------------*/
549 yyreduce:
550 yylen = yyr2_[yyn];
551 {
552 stack_symbol_type yylhs;
553 yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]);
554 /* If YYLEN is nonzero, implement the default value of the
555 action: '$$ = $1'. Otherwise, use the top of the stack.
556
557 Otherwise, the following line sets YYLHS.VALUE to garbage.
558 This behavior is undocumented and Bison users should not rely
559 upon it. */
560 if (yylen)
561 yylhs.value = yystack_[yylen - 1].value;
562 else
563 yylhs.value = yystack_[0].value;
564
565 // Default location.
566 {
567 stack_type::slice range(yystack_, yylen);
568 YYLLOC_DEFAULT(yylhs.location, range, yylen);
569 yyerror_range[1].location = yylhs.location;
570 }
571
572 // Perform the reduction.
573 YY_REDUCE_PRINT(yyn);
574#if YY_EXCEPTIONS
575 try
576#endif // YY_EXCEPTIONS
577 {
578 switch (yyn) {
579 case 2: // int_list: "integer"
580#line 104 "parser.yy"
581 {
582 (yylhs.value.intList) = new std::vector<int>;
583 (yylhs.value.intList)->push_back((yystack_[0].value.integerVal));
584 }
585#line 698 "bison_parser.cpp"
586 break;
587
588 case 3: // int_list: int_list "integer"
589#line 109 "parser.yy"
590 {
591 (yystack_[1].value.intList)
592 ->push_back((yystack_[0].value.integerVal));
593 (yylhs.value.intList) = (yystack_[1].value.intList);
594 }
595#line 707 "bison_parser.cpp"
596 break;
597
598 case 4: // NUMBER: "integer"
599#line 115 "parser.yy"
600 {
601 (yylhs.value.doubleVal) = (yystack_[0].value.integerVal);
602 }
603#line 715 "bison_parser.cpp"
604 break;
605
606 case 5: // NUMBER: "double"
607#line 119 "parser.yy"
608 {
609 (yylhs.value.doubleVal) = (yystack_[0].value.doubleVal);
610 }
611#line 723 "bison_parser.cpp"
612 break;
613
614 case 6: // add_se2: "ADD" "Vertex SE2" "integer"
615#line 124 "parser.yy"
616 {
617 (yylhs.value.commandNode) =
618 new AddNode(*(yystack_[1].value.stringVal),
619 (yystack_[0].value.integerVal), 3);
620 delete (yystack_[1].value.stringVal);
621 }
622#line 732 "bison_parser.cpp"
623 break;
624
625 case 7: // add_se2: "ADD" "Vertex SE2" "integer" NUMBER NUMBER NUMBER
626#line 129 "parser.yy"
627 {
628 std::vector<double> values;
629 values.push_back((yystack_[2].value.doubleVal));
630 values.push_back((yystack_[1].value.doubleVal));
631 values.push_back((yystack_[0].value.doubleVal));
632 (yylhs.value.commandNode) =
633 new AddNode(*(yystack_[4].value.stringVal),
634 (yystack_[3].value.integerVal), 3, values);
635 delete (yystack_[4].value.stringVal);
636 }
637#line 745 "bison_parser.cpp"
638 break;
639
640 case 8: // add_se2: "ADD" "Edge SE2" "integer" "integer" "integer"
641 // NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER
642 // NUMBER
643#line 138 "parser.yy"
644 {
645 std::vector<double> values;
646 values.push_back((yystack_[8].value.doubleVal));
647 values.push_back((yystack_[7].value.doubleVal));
648 values.push_back((yystack_[6].value.doubleVal));
649 std::vector<double> information;
650 information.push_back((yystack_[5].value.doubleVal));
651 information.push_back((yystack_[4].value.doubleVal));
652 information.push_back((yystack_[3].value.doubleVal));
653 information.push_back((yystack_[2].value.doubleVal));
654 information.push_back((yystack_[1].value.doubleVal));
655 information.push_back((yystack_[0].value.doubleVal));
656 (yylhs.value.commandNode) = new AddEdge(
657 *(yystack_[12].value.stringVal),
658 (yystack_[11].value.integerVal), values.size(),
659 (yystack_[10].value.integerVal), (yystack_[9].value.integerVal),
660 values, information);
661 delete (yystack_[12].value.stringVal);
662 }
663#line 765 "bison_parser.cpp"
664 break;
665
666 case 9: // add_se3: "ADD" "Vertex SE3" "integer"
667#line 155 "parser.yy"
668 {
669 (yylhs.value.commandNode) =
670 new AddNode(*(yystack_[1].value.stringVal),
671 (yystack_[0].value.integerVal), 6);
672 delete (yystack_[1].value.stringVal);
673 }
674#line 774 "bison_parser.cpp"
675 break;
676
677 case 10: // add_se3: "ADD" "Vertex SE3" "integer" NUMBER NUMBER
678 // NUMBER NUMBER NUMBER NUMBER
679#line 160 "parser.yy"
680 {
681 (yylhs.value.commandNode) =
682 new AddNode(*(yystack_[7].value.stringVal),
683 (yystack_[6].value.integerVal), 6);
684 delete (yystack_[7].value.stringVal);
685 }
686#line 783 "bison_parser.cpp"
687 break;
688
689 case 11: // add_se3: "ADD" "Edge SE3" "integer" "integer" "integer"
690 // NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER
691 // NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER
692 // NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER
693 // NUMBER NUMBER NUMBER
694#line 165 "parser.yy"
695 {
696 std::vector<double> values;
697 values.push_back((yystack_[26].value.doubleVal));
698 values.push_back((yystack_[25].value.doubleVal));
699 values.push_back((yystack_[24].value.doubleVal));
700 values.push_back((yystack_[23].value.doubleVal));
701 values.push_back((yystack_[22].value.doubleVal));
702 values.push_back((yystack_[21].value.doubleVal));
703 std::vector<double> information;
704 information.push_back((yystack_[20].value.doubleVal));
705 information.push_back((yystack_[19].value.doubleVal));
706 information.push_back((yystack_[18].value.doubleVal));
707 information.push_back((yystack_[17].value.doubleVal));
708 information.push_back((yystack_[16].value.doubleVal));
709 information.push_back((yystack_[15].value.doubleVal));
710 information.push_back((yystack_[14].value.doubleVal));
711 information.push_back((yystack_[13].value.doubleVal));
712 information.push_back((yystack_[12].value.doubleVal));
713 information.push_back((yystack_[11].value.doubleVal));
714 information.push_back((yystack_[10].value.doubleVal));
715 information.push_back((yystack_[9].value.doubleVal));
716 information.push_back((yystack_[8].value.doubleVal));
717 information.push_back((yystack_[7].value.doubleVal));
718 information.push_back((yystack_[6].value.doubleVal));
719 information.push_back((yystack_[5].value.doubleVal));
720 information.push_back((yystack_[4].value.doubleVal));
721 information.push_back((yystack_[3].value.doubleVal));
722 information.push_back((yystack_[2].value.doubleVal));
723 information.push_back((yystack_[1].value.doubleVal));
724 information.push_back((yystack_[0].value.doubleVal));
725 (yylhs.value.commandNode) = new AddEdge(
726 *(yystack_[30].value.stringVal),
727 (yystack_[29].value.integerVal), values.size(),
728 (yystack_[28].value.integerVal),
729 (yystack_[27].value.integerVal), values, information);
730 delete (yystack_[30].value.stringVal);
731 }
732#line 821 "bison_parser.cpp"
733 break;
734
735 case 12: // fix_node: "Fix" "integer"
736#line 200 "parser.yy"
737 {
738 std::vector<int> values;
739 values.push_back((yystack_[0].value.integerVal));
740 (yylhs.value.commandNode) = new FixNode("FIX", values);
741 }
742#line 831 "bison_parser.cpp"
743 break;
744
745 case 13: // solve_state: "Solve State"
746#line 207 "parser.yy"
747 {
748 (yylhs.value.commandNode) = new SolveSate("SOLVE_STATE");
749 }
750#line 839 "bison_parser.cpp"
751 break;
752
753 case 14: // query_state: "Query State"
754#line 212 "parser.yy"
755 {
756 (yylhs.value.commandNode) = new QueryState("QUERY_STATE");
757 }
758#line 847 "bison_parser.cpp"
759 break;
760
761 case 15: // query_state: "Query State" int_list
762#line 216 "parser.yy"
763 {
764 (yylhs.value.commandNode) =
765 new QueryState("QUERY_STATE", *(yystack_[0].value.intList));
766 delete (yystack_[0].value.intList);
767 }
768#line 856 "bison_parser.cpp"
769 break;
770
771 case 16: // command: add_se2
772#line 222 "parser.yy"
773 {
774 (yylhs.value.commandNode) = (yystack_[0].value.commandNode);
775 }
776#line 864 "bison_parser.cpp"
777 break;
778
779 case 17: // command: add_se3
780#line 226 "parser.yy"
781 {
782 (yylhs.value.commandNode) = (yystack_[0].value.commandNode);
783 }
784#line 872 "bison_parser.cpp"
785 break;
786
787 case 18: // command: fix_node
788#line 230 "parser.yy"
789 {
790 (yylhs.value.commandNode) = (yystack_[0].value.commandNode);
791 }
792#line 880 "bison_parser.cpp"
793 break;
794
795 case 19: // command: solve_state
796#line 234 "parser.yy"
797 {
798 (yylhs.value.commandNode) = (yystack_[0].value.commandNode);
799 }
800#line 888 "bison_parser.cpp"
801 break;
802
803 case 20: // command: query_state
804#line 238 "parser.yy"
805 {
806 (yylhs.value.commandNode) = (yystack_[0].value.commandNode);
807 }
808#line 896 "bison_parser.cpp"
809 break;
810
811 case 23: // start: start command ';'
812#line 245 "parser.yy"
813 {
814 driver.slamContext.process((yystack_[1].value.commandNode));
815 delete (yystack_[1].value.commandNode);
816 }
817#line 905 "bison_parser.cpp"
818 break;
819
820#line 909 "bison_parser.cpp"
821
822 default:
823 break;
824 }
825 }
826#if YY_EXCEPTIONS
827 catch (const syntax_error& yyexc) {
828 YYCDEBUG << "Caught exception: " << yyexc.what() << '\n';
829 error(yyexc);
830 YYERROR;
831 }
832#endif // YY_EXCEPTIONS
833 YY_SYMBOL_PRINT("-> $$ =", yylhs);
834 yypop_(yylen);
835 yylen = 0;
836
837 // Shift the result of the reduction.
838 yypush_(YY_NULLPTR, YY_MOVE(yylhs));
839 }
840 goto yynewstate;
841
842 /*--------------------------------------.
843 | yyerrlab -- here on detecting error. |
844 `--------------------------------------*/
845 yyerrlab:
846 // If not already recovering from an error, report this error.
847 if (!yyerrstatus_) {
848 context yyctx(*this, yyla);
849 std::string msg = yysyntax_error_(yyctx);
850 error(yyla.location, YY_MOVE(msg));
851 }
852
853 yyerror_range[1].location = yyla.location;
854 if (yyerrstatus_ == 3) {
855 /* If just tried and failed to reuse lookahead token after an
856 error, discard it. */
857
858 // Return failure if at end of input.
859 if (yyla.kind() == symbol_kind::S_YYEOF)
860 YYABORT;
861 else if (!yyla.empty()) {
862 yy_destroy_("Error: discarding", yyla);
863 yyla.clear();
864 }
865 }
866
867 // Else will try to reuse lookahead token after shifting the error token.
868 goto yyerrlab1;
869
870 /*---------------------------------------------------.
871 | yyerrorlab -- error raised explicitly by YYERROR. |
872 `---------------------------------------------------*/
873 yyerrorlab:
874 /* Pacify compilers when the user code never invokes YYERROR and
875 the label yyerrorlab therefore never appears in user code. */
876 if (false) YYERROR;
877
878 /* Do not reclaim the symbols of the rule whose action triggered
879 this YYERROR. */
880 yypop_(yylen);
881 yylen = 0;
883 goto yyerrlab1;
884
885 /*-------------------------------------------------------------.
886 | yyerrlab1 -- common code for both syntax error and YYERROR. |
887 `-------------------------------------------------------------*/
888 yyerrlab1:
889 yyerrstatus_ = 3; // Each real token shifted decrements this.
890 // Pop stack until we find a state that shifts the error token.
891 for (;;) {
892 yyn = yypact_[+yystack_[0].state];
893 if (!yy_pact_value_is_default_(yyn)) {
895 if (0 <= yyn && yyn <= yylast_ &&
897 yyn = yytable_[yyn];
898 if (0 < yyn) break;
899 }
900 }
901
902 // Pop the current state because it cannot handle the error token.
903 if (yystack_.size() == 1) YYABORT;
904
905 yyerror_range[1].location = yystack_[0].location;
906 yy_destroy_("Error: popping", yystack_[0]);
907 yypop_();
909 }
910 {
911 stack_symbol_type error_token;
912
913 yyerror_range[2].location = yyla.location;
914 YYLLOC_DEFAULT(error_token.location, yyerror_range, 2);
915
916 // Shift the error token.
917 error_token.state = state_type(yyn);
918 yypush_("Shifting", YY_MOVE(error_token));
919 }
920 goto yynewstate;
921
922 /*-------------------------------------.
923 | yyacceptlab -- YYACCEPT comes here. |
924 `-------------------------------------*/
925 yyacceptlab:
926 yyresult = 0;
927 goto yyreturn;
928
929 /*-----------------------------------.
930 | yyabortlab -- YYABORT comes here. |
931 `-----------------------------------*/
932 yyabortlab:
933 yyresult = 1;
934 goto yyreturn;
935
936 /*-----------------------------------------------------.
937 | yyreturn -- parsing is finished, return the result. |
938 `-----------------------------------------------------*/
939 yyreturn:
940 if (!yyla.empty()) yy_destroy_("Cleanup: discarding lookahead", yyla);
941
942 /* Do not reclaim the symbols of the rule whose action triggered
943 this YYABORT or YYACCEPT. */
944 yypop_(yylen);
946 while (1 < yystack_.size()) {
947 yy_destroy_("Cleanup: popping", yystack_[0]);
948 yypop_();
949 }
950
951 return yyresult;
952 }
953#if YY_EXCEPTIONS
954 catch (...) {
955 YYCDEBUG << "Exception caught: cleaning lookahead and stack\n";
956 // Do not try to display the values of the reclaimed symbols,
957 // as their printers might throw an exception.
958 if (!yyla.empty()) yy_destroy_(YY_NULLPTR, yyla);
959
960 while (1 < yystack_.size()) {
962 yypop_();
963 }
964 throw;
965 }
966#endif // YY_EXCEPTIONS
967}
#define YYCDEBUG
#define YYABORT
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define YY_REDUCE_PRINT(Rule)
#define YY_SYMBOL_PRINT(Title, Symbol)
#define yylex
#define YY_STACK_PRINT()
#define YYACCEPT
#define YYERROR
#define YY_MOVE
class SlamContext & slamContext
Definition driver.h:92
std::string streamname
stream name (file or input stream) used for error messages.
Definition driver.h:49
index_type size() const YY_NOEXCEPT
Number of elements on the stack.
void clear() YY_NOEXCEPT
Pop all elements from the stack.
virtual std::string yysyntax_error_(const context &yyctx) const
static bool yy_table_value_is_error_(int yyvalue) YY_NOEXCEPT
void yy_destroy_(const char *yymsg, basic_symbol< Base > &yysym) const
Reclaim the memory associated to a symbol.
static symbol_kind_type yytranslate_(int t) YY_NOEXCEPT
static bool yy_pact_value_is_default_(int yyvalue) YY_NOEXCEPT
static state_type yy_lr_goto_state_(state_type yystate, int yysym)
stack_type yystack_
The stack.
static const signed char yypact_[]
void yypop_(int n=1) YY_NOEXCEPT
Pop n symbols from the stack.
signed char state_type
Stored state numbers (used for stacks).
static const signed char yydefact_[]
static const signed char yyr1_[]
static const signed char yycheck_[]
static const signed char yyr2_[]
void yypush_(const char *m, YY_MOVE_REF(stack_symbol_type) sym)
static const signed char yytable_[]
virtual bool process(CommandNode *commandNode)
#define YY_NULLPTR
Definition location.hh:52

References SlamParser::location::begin, SlamParser::Parser::basic_symbol< Base >::clear(), SlamParser::Parser::stack< T, S >::clear(), SlamParser::Parser::value_type::commandNode, SlamParser::Parser::value_type::doubleVal, driver, SlamParser::Parser::basic_symbol< Base >::empty(), SlamParser::location::end, error(), SlamParser::position::filename, SlamParser::Parser::value_type::intList, SlamParser::Parser::by_kind::kind(), SlamParser::Parser::by_kind::kind_, SlamParser::Parser::basic_symbol< Base >::location, SlamParser::SlamContext::process(), SlamParser::Parser::symbol_kind::S_YYEOF, SlamParser::Parser::symbol_kind::S_YYerror, SlamParser::Parser::symbol_kind::S_YYUNDEF, SlamParser::Parser::stack< T, S >::size(), SlamParser::Driver::slamContext, SlamParser::Parser::by_state::state, SlamParser::Driver::streamname, SlamParser::Parser::basic_symbol< Base >::value, yy_destroy_(), yy_lr_goto_state_(), YY_MOVE, YY_NULLPTR, yy_pact_value_is_default_(), YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, yy_table_value_is_error_(), YYABORT, YYACCEPT, YYCDEBUG, yycheck_, yydefact_, YYERROR, yyfinal_, yylast_, yylex, YYLLOC_DEFAULT, yypact_, yypop_(), yypush_(), yyr1_, yyr2_, yystack_, yysyntax_error_(), yytable_, and yytranslate_().

Referenced by operator()(), and SlamParser::Driver::parse_stream().

◆ symbol_name()

std::string SlamParser::Parser::symbol_name ( symbol_kind_type  yysymbol)
static

The user-facing name of the symbol whose (internal) number is YYSYMBOL. No bounds checking.

Definition at line 1008 of file bison_parser.cpp.

1008 {
1009 return yytnamerr_(yytname_[yysymbol]);
1010}
static const char *const yytname_[]
For a symbol, its name in clear.
static std::string yytnamerr_(const char *yystr)
Convert the symbol name n to a form suitable for a diagnostic.

References yytname_, and yytnamerr_().

Referenced by yysyntax_error_().

◆ yy_destroy_()

template<typename Base >
void SlamParser::Parser::yy_destroy_ ( const char *  yymsg,
basic_symbol< Base > &  yysym 
) const
private

Reclaim the memory associated to a symbol.

Parameters
yymsgWhy this token is reclaimed. If null, print nothing.
yysymThe symbol.

Definition at line 299 of file bison_parser.cpp.

299 {
300 if (yymsg) YY_SYMBOL_PRINT(yymsg, yysym);
301
302 // User destructor.
303 switch (yysym.kind()) {
304 case symbol_kind::S_STRING: // "string"
305#line 79 "parser.yy"
306 {
307 delete (yysym.value.stringVal);
308 }
309#line 378 "bison_parser.cpp"
310 break;
311
312 case symbol_kind::S_add_se2: // add_se2
313#line 80 "parser.yy"
314 {
315 delete (yysym.value.commandNode);
316 }
317#line 384 "bison_parser.cpp"
318 break;
319
320 case symbol_kind::S_add_se3: // add_se3
321#line 80 "parser.yy"
322 {
323 delete (yysym.value.commandNode);
324 }
325#line 390 "bison_parser.cpp"
326 break;
327
328 case symbol_kind::S_fix_node: // fix_node
329#line 80 "parser.yy"
330 {
331 delete (yysym.value.commandNode);
332 }
333#line 396 "bison_parser.cpp"
334 break;
335
336 case symbol_kind::S_solve_state: // solve_state
337#line 80 "parser.yy"
338 {
339 delete (yysym.value.commandNode);
340 }
341#line 402 "bison_parser.cpp"
342 break;
343
344 case symbol_kind::S_query_state: // query_state
345#line 80 "parser.yy"
346 {
347 delete (yysym.value.commandNode);
348 }
349#line 408 "bison_parser.cpp"
350 break;
351
352 case symbol_kind::S_command: // command
353#line 80 "parser.yy"
354 {
355 delete (yysym.value.commandNode);
356 }
357#line 414 "bison_parser.cpp"
358 break;
359
360 default:
361 break;
362 }
363}

References SlamParser::Parser::value_type::commandNode, SlamParser::Parser::symbol_kind::S_add_se2, SlamParser::Parser::symbol_kind::S_add_se3, SlamParser::Parser::symbol_kind::S_STRING, SlamParser::Parser::value_type::stringVal, SlamParser::Parser::basic_symbol< Base >::value, and YY_SYMBOL_PRINT.

Referenced by parse().

◆ yy_lr_goto_state_()

Parser::state_type SlamParser::Parser::yy_lr_goto_state_ ( state_type  yystate,
int  yysym 
)
staticprivate

Compute post-reduction state.

Parameters
yystatethe current state
yysymthe nonterminal to push on the stack

Definition at line 410 of file bison_parser.cpp.

410 {
411 int yyr = yypgoto_[yysym - YYNTOKENS] + yystate;
412 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
413 return yytable_[yyr];
414 else
415 return yydefgoto_[yysym - YYNTOKENS];
416}
static const signed char yydefgoto_[]
static const symbol_kind_type YYNTOKENS
The number of tokens.
static const signed char yypgoto_[]

References yycheck_, yydefgoto_, yylast_, YYNTOKENS, yypgoto_, and yytable_.

Referenced by parse().

◆ yy_pact_value_is_default_()

bool SlamParser::Parser::yy_pact_value_is_default_ ( int  yyvalue)
staticprivate

Whether the given yypact_ value indicates a defaulted state.

Parameters
yyvaluethe value to check

Definition at line 418 of file bison_parser.cpp.

418 {
419 return yyvalue == yypact_ninf_;
420}
static const signed char yypact_ninf_

References yypact_ninf_.

Referenced by SlamParser::Parser::context::expected_tokens(), and parse().

◆ yy_syntax_error_arguments_()

int SlamParser::Parser::yy_syntax_error_arguments_ ( const context yyctx,
symbol_kind_type  yyarg[],
int  yyargn 
) const
private

The arguments of the error message.

Definition at line 1046 of file bison_parser.cpp.

1048 {
1049 /* There are many possibilities here to consider:
1050 - If this state is a consistent state with a default action, then
1051 the only way this function was invoked is if the default action
1052 is an error action. In that case, don't check for expected
1053 tokens because there are none.
1054 - The only way there can be no lookahead present (in yyla) is
1055 if this state is a consistent state with a default action.
1056 Thus, detecting the absence of a lookahead is sufficient to
1057 determine that there is no unexpected or expected token to
1058 report. In that case, just report a simple "syntax error".
1059 - Don't assume there isn't a lookahead just because this state is
1060 a consistent state with a default action. There might have
1061 been a previous inconsistent state, consistent state with a
1062 non-default action, or user semantic action that manipulated
1063 yyla. (However, yyla is currently not documented for users.)
1064 - Of course, the expected token list depends on states to have
1065 correct lookahead information, and it depends on the parser not
1066 to perform extra reductions after fetching a lookahead from the
1067 scanner and before detecting a syntax error. Thus, state merging
1068 (from LALR or IELR) and default reductions corrupt the expected
1069 token list. However, the list is correct for canonical LR with
1070 one exception: it will still contain any token that will not be
1071 accepted due to an error action in a later state.
1072 */
1073
1074 if (!yyctx.lookahead().empty()) {
1075 if (yyarg) yyarg[0] = yyctx.token();
1076 int yyn = yyctx.expected_tokens(yyarg ? yyarg + 1 : yyarg, yyargn - 1);
1077 return yyn + 1;
1078 }
1079 return 0;
1080}

References SlamParser::Parser::basic_symbol< Base >::empty(), SlamParser::Parser::context::expected_tokens(), SlamParser::Parser::context::lookahead(), and SlamParser::Parser::context::token().

Referenced by yysyntax_error_().

◆ yy_table_value_is_error_()

bool SlamParser::Parser::yy_table_value_is_error_ ( int  yyvalue)
staticprivate

Whether the given yytable_ value indicates a syntax error.

Parameters
yyvaluethe value to check

Definition at line 422 of file bison_parser.cpp.

422 {
423 return yyvalue == yytable_ninf_;
424}
static const signed char yytable_ninf_

References yytable_ninf_.

Referenced by SlamParser::Parser::context::expected_tokens(), and parse().

◆ yypop_()

void SlamParser::Parser::yypop_ ( int  n = 1)
private

Pop n symbols from the stack.

Definition at line 398 of file bison_parser.cpp.

398{ yystack_.pop(n); }
void pop(std::ptrdiff_t n=1) YY_NOEXCEPT
Pop elements from the stack.

References SlamParser::Parser::stack< T, S >::pop(), and yystack_.

Referenced by parse().

◆ yypush_() [1/2]

void SlamParser::Parser::yypush_ ( const char *  m,
state_type  s,
YY_MOVE_REF(symbol_type sym 
)
private

Push a new look ahead token on the state on the stack.

Parameters
ma debug message to display if null, no trace is output.
sthe state
symthe symbol (for its value and location).
Warning
the contents of sym.value is stolen.

Definition at line 388 of file bison_parser.cpp.

389 {
390#if 201103L <= YY_CPLUSPLUS
391 yypush_(m, stack_symbol_type(s, std::move(sym)));
392#else
393 stack_symbol_type ss(s, sym);
394 yypush_(m, ss);
395#endif
396}

References yypush_().

◆ yypush_() [2/2]

void SlamParser::Parser::yypush_ ( const char *  m,
YY_MOVE_REF(stack_symbol_type sym 
)
private

Push a new state on the stack.

Parameters
ma debug message to display if null, no trace is output.
symthe symbol
Warning
the contents of s.value is stolen.

Definition at line 383 of file bison_parser.cpp.

383 {
384 if (m) YY_SYMBOL_PRINT(m, sym);
385 yystack_.push(YY_MOVE(sym));
386}
void push(YY_MOVE_REF(T) t)

References SlamParser::Parser::stack< T, S >::push(), YY_MOVE, YY_SYMBOL_PRINT, and yystack_.

Referenced by parse(), and yypush_().

◆ yysyntax_error_()

std::string SlamParser::Parser::yysyntax_error_ ( const context yyctx) const
privatevirtual

Generate an error message.

Parameters
yyctxthe context in which the error occurred.

Definition at line 1083 of file bison_parser.cpp.

1083 {
1084 // Its maximum.
1085 enum { YYARGS_MAX = 5 };
1086 // Arguments of yyformat.
1087 symbol_kind_type yyarg[YYARGS_MAX];
1088 int yycount = yy_syntax_error_arguments_(yyctx, yyarg, YYARGS_MAX);
1089
1090 char const* yyformat = YY_NULLPTR;
1091 switch (yycount) {
1092#define YYCASE_(N, S) \
1093 case N: \
1094 yyformat = S; \
1095 break
1096 default: // Avoid compiler warnings.
1097 YYCASE_(0, YY_("syntax error"));
1098 YYCASE_(1, YY_("syntax error, unexpected %s"));
1099 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1100 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1101 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1102 YYCASE_(
1103 5,
1104 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1105#undef YYCASE_
1106 }
1107
1108 std::string yyres;
1109 // Argument number.
1110 std::ptrdiff_t yyi = 0;
1111 for (char const* yyp = yyformat; *yyp; ++yyp)
1112 if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount) {
1113 yyres += symbol_name(yyarg[yyi++]);
1114 ++yyp;
1115 } else
1116 yyres += *yyp;
1117 return yyres;
1118}
#define YYCASE_(N, S)
#define YY_(msgid)
int yy_syntax_error_arguments_(const context &yyctx, symbol_kind_type yyarg[], int yyargn) const
The arguments of the error message.
static std::string symbol_name(symbol_kind_type yysymbol)
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.

References symbol_name(), YY_, YY_NULLPTR, yy_syntax_error_arguments_(), and YYCASE_.

Referenced by parse().

◆ yytnamerr_()

std::string SlamParser::Parser::yytnamerr_ ( const char *  yystr)
staticprivate

Convert the symbol name n to a form suitable for a diagnostic.

Definition at line 978 of file bison_parser.cpp.

978 {
979 if (*yystr == '"') {
980 std::string yyr;
981 char const* yyp = yystr;
982
983 for (;;) switch (*++yyp) {
984 case '\'':
985 case ',':
986 goto do_not_strip_quotes;
987
988 case '\\':
989 if (*++yyp != '\\')
990 goto do_not_strip_quotes;
991 else
992 goto append;
993
994 append:
995 default:
996 yyr += *yyp;
997 break;
998
999 case '"':
1000 return yyr;
1001 }
1002 do_not_strip_quotes:;
1003 }
1004
1005 return yystr;
1006}

Referenced by symbol_name().

◆ yytranslate_()

Parser::symbol_kind_type SlamParser::Parser::yytranslate_ ( int  t)
staticprivate

Convert a scanner token kind t to a symbol kind. In theory t should be a token_kind_type, but character literals are valid, yet not members of the token_kind_type enum.

Definition at line 1225 of file bison_parser.cpp.

1225 {
1226 // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
1227 // TOKEN-NUM as returned by yylex.
1228 static const signed char translate_table[] = {
1229 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1230 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1231 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 15, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1232 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1233 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1234 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1235 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1236 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1237 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1238 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1239 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1240 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
1241 // Last valid token kind.
1242 const int code_max = 269;
1243
1244 if (t <= 0)
1245 return symbol_kind::S_YYEOF;
1246 else if (t <= code_max)
1247 return static_cast<symbol_kind_type>(translate_table[t]);
1248 else
1250}

References SlamParser::Parser::symbol_kind::S_YYEOF, and SlamParser::Parser::symbol_kind::S_YYUNDEF.

Referenced by parse().

Member Data Documentation

◆ driver

class Driver& SlamParser::Parser::driver
private

Definition at line 740 of file bison_parser.h.

Referenced by parse().

◆ yycheck_

const signed char SlamParser::Parser::yycheck_
staticprivate
Initial value:
= {
23, 8, 9, 10, 11, 4, 29, 30, 4, 5, 33, 34, 35, 36, 4, 38, 39, 40,
41, 42, 43, 44, 45, 46, 15, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 4,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
0, 4, 4, 3, -1, 4, 4, 7, 4, 4, 4, 4, 12, 13, 14}

Definition at line 533 of file bison_parser.h.

Referenced by SlamParser::Parser::context::expected_tokens(), parse(), and yy_lr_goto_state_().

◆ yydefact_

const signed char SlamParser::Parser::yydefact_
staticprivate
Initial value:
= {
21, 0, 1, 22, 0, 0, 13, 14, 16, 17, 18, 19, 20, 0, 0, 0, 0, 0, 12, 2,
15, 23, 6, 9, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11}

Definition at line 520 of file bison_parser.h.

Referenced by parse().

◆ yydefgoto_

const signed char SlamParser::Parser::yydefgoto_ = {0, 20, 29, 8, 9, 10, 11, 12, 13, 1}
staticprivate

Definition at line 526 of file bison_parser.h.

Referenced by yy_lr_goto_state_().

◆ YYNTOKENS

const symbol_kind_type SlamParser::Parser::YYNTOKENS = symbol_kind::YYNTOKENS
static

The number of tokens.

Definition at line 296 of file bison_parser.h.

Referenced by SlamParser::Parser::context::expected_tokens(), and yy_lr_goto_state_().

◆ yypact_

const signed char SlamParser::Parser::yypact_
staticprivate
Initial value:
= {
-24, 54, -24, -24, -7, 1, -24, 10, -24, -24, -24, -24, -24, 9, 31, 51,
52, 55, -24, -24, 56, -24, 4, 4, 58, 59, -24, -24, -24, 4, 4, 60,
61, 4, 4, 4, 4, -24, 4, 4, 4, 4, 4, 4, 4, 4, 4, -24,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -24, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -24}

Definition at line 515 of file bison_parser.h.

Referenced by SlamParser::Parser::context::expected_tokens(), and parse().

◆ yypact_ninf_

const signed char SlamParser::Parser::yypact_ninf_ = -24
staticprivate

Definition at line 498 of file bison_parser.h.

Referenced by yy_pact_value_is_default_().

◆ yypgoto_

const signed char SlamParser::Parser::yypgoto_
staticprivate
Initial value:
= {-24, -24, -23, -24, -24,
-24, -24, -24, -24, -24}

Definition at line 523 of file bison_parser.h.

Referenced by yy_lr_goto_state_().

◆ yyr1_

const signed char SlamParser::Parser::yyr1_
staticprivate
Initial value:
= {0, 16, 17, 17, 18, 18, 19, 19,
19, 20, 20, 20, 21, 22, 23, 23,
24, 24, 24, 24, 24, 25, 25, 25}

Definition at line 540 of file bison_parser.h.

Referenced by parse().

◆ yyr2_

const signed char SlamParser::Parser::yyr2_
staticprivate
Initial value:
= {0, 2, 1, 2, 1, 1, 3, 6, 14, 3, 9, 32,
2, 1, 1, 2, 1, 1, 1, 1, 1, 0, 2, 3}

Definition at line 544 of file bison_parser.h.

Referenced by parse().

◆ yystack_

stack_type SlamParser::Parser::yystack_
private

The stack.

Definition at line 712 of file bison_parser.h.

Referenced by parse(), yypop_(), and yypush_().

◆ yystos_

const signed char SlamParser::Parser::yystos_
staticprivate
Initial value:
= {
0, 25, 0, 3, 7, 12, 13, 14, 19, 20, 21, 22, 23, 24, 8, 9,
10, 11, 4, 4, 17, 15, 4, 4, 4, 4, 4, 4, 5, 18, 18, 4,
4, 18, 18, 4, 4, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18}

Definition at line 537 of file bison_parser.h.

Referenced by SlamParser::Parser::by_state::kind().

◆ yytable_

const signed char SlamParser::Parser::yytable_
staticprivate
Initial value:
= {
30, 14, 15, 16, 17, 18, 33, 34, 27, 28, 37, 38, 39, 40, 19, 41, 42, 43,
44, 45, 46, 47, 48, 49, 21, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 22,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2, 23, 24, 3, 0, 25, 26, 4, 31, 32, 35, 36, 5, 6, 7}

Definition at line 531 of file bison_parser.h.

Referenced by SlamParser::Parser::context::expected_tokens(), parse(), and yy_lr_goto_state_().

◆ yytable_ninf_

const signed char SlamParser::Parser::yytable_ninf_ = -1
staticprivate

Definition at line 499 of file bison_parser.h.

Referenced by yy_table_value_is_error_().

◆ yytname_

const char *const SlamParser::Parser::yytname_
staticprivate
Initial value:
= {"\"end of file\"",
"error",
"\"invalid token\"",
"\"end of line\"",
"\"integer\"",
"\"double\"",
"\"string\"",
"\"ADD\"",
"\"Vertex SE2\"",
"\"Vertex SE3\"",
"\"Edge SE2\"",
"\"Edge SE3\"",
"\"Fix\"",
"\"Solve State\"",
"\"Query State\"",
"';'",
"$accept",
"int_list",
"NUMBER",
"add_se2",
"add_se3",
"fix_node",
"solve_state",
"query_state",
"command",
"start",

For a symbol, its name in clear.

Definition at line 510 of file bison_parser.h.

Referenced by symbol_name().


The documentation for this class was generated from the following files: