47 #define YYBISON_VERSION "3.0.4"
50 #define YYSKELETON_NAME "yacc.c"
62 #define YYSTYPE OCTAVE_STYPE
64 #define yyparse octave_parse
65 #define yypush_parse octave_push_parse
66 #define yypull_parse octave_pull_parse
67 #define yypstate_new octave_pstate_new
68 #define yypstate_delete octave_pstate_delete
69 #define yypstate octave_pstate
70 #define yylex octave_lex
71 #define yyerror octave_error
72 #define yydebug octave_debug
73 #define yynerrs octave_nerrs
77 #line 30 "libinterp/parse-tree/oct-parse.yy"
82 #if defined (HAVE_CONFIG_H)
152 #define lexer parser.lexer
153 #define scanner lexer.scanner
155 #if defined (HAVE_PRAGMA_GCC_DIAGNOSTIC)
159 #pragma GCC diagnostic push
160 #pragma GCC diagnostic ignored "-Wold-style-cast"
164 #line 165 "libinterp/parse-tree/oct-parse.cc"
167 # if defined __cplusplus && 201103L <= __cplusplus
168 # define YY_NULLPTR nullptr
170 # define YY_NULLPTR 0
175 #ifdef YYERROR_VERBOSE
176 # undef YYERROR_VERBOSE
177 # define YYERROR_VERBOSE 1
179 # define YYERROR_VERBOSE 0
184 #ifndef YY_OCTAVE_LIBINTERP_PARSE_TREE_OCT_PARSE_H_INCLUDED
185 # define YY_OCTAVE_LIBINTERP_PARSE_TREE_OCT_PARSE_H_INCLUDED
190 # define OCTAVE_DEBUG 1
192 # define OCTAVE_DEBUG 0
195 # define OCTAVE_DEBUG 0
203 #ifndef OCTAVE_TOKENTYPE
204 # define OCTAVE_TOKENTYPE
292 #define LEFTDIV_EQ 262
296 #define ELEFTDIV_EQ 266
300 #define EXPR_AND_AND 270
301 #define EXPR_OR_OR 271
317 #define HERMITIAN 287
318 #define TRANSPOSE 288
319 #define PLUS_PLUS 289
320 #define MINUS_MINUS 290
325 #define STRUCT_ELT 295
328 #define DQ_STRING 298
329 #define SQ_STRING 299
340 #define OTHERWISE 310
349 #define PERSISTENT 319
350 #define FCN_HANDLE 320
352 #define PROPERTIES 322
355 #define ENUMERATION 325
356 #define METAQUERY 326
357 #define SUPERCLASSREF 327
362 #define LEXICAL_ERROR 332
363 #define END_OF_INPUT 333
364 #define INPUT_FILE 334
368 #if ! defined OCTAVE_STYPE && ! defined OCTAVE_STYPE_IS_DECLARED
372 #line 141 "libinterp/parse-tree/oct-parse.yy"
430 #line 431 "libinterp/parse-tree/oct-parse.cc"
434 # define OCTAVE_STYPE_IS_TRIVIAL 1
435 # define OCTAVE_STYPE_IS_DECLARED 1
440 #ifndef YYPUSH_MORE_DEFINED
441 # define YYPUSH_MORE_DEFINED
457 #line 458 "libinterp/parse-tree/oct-parse.cc"
488 # ifdef __SIZE_TYPE__
489 # define YYSIZE_T __SIZE_TYPE__
490 # elif defined size_t
491 # define YYSIZE_T size_t
492 # elif ! defined YYSIZE_T
494 # define YYSIZE_T size_t
496 # define YYSIZE_T unsigned int
500 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
503 # if defined YYENABLE_NLS && YYENABLE_NLS
505 # include <libintl.h>
506 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
510 # define YY_(Msgid) Msgid
515 # if (defined __GNUC__ \
516 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
517 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
518 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
520 # define YY_ATTRIBUTE(Spec)
524 #ifndef YY_ATTRIBUTE_PURE
525 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
528 #ifndef YY_ATTRIBUTE_UNUSED
529 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
532 #if !defined _Noreturn \
533 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
534 # if defined _MSC_VER && 1200 <= _MSC_VER
535 # define _Noreturn __declspec (noreturn)
537 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
542 #if ! defined lint || defined __GNUC__
543 # define YYUSE(E) ((void) (E))
548 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
550 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
551 _Pragma ("GCC diagnostic push") \
552 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
553 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
554 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
555 _Pragma ("GCC diagnostic pop")
557 # define YY_INITIAL_VALUE(Value) Value
559 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
560 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
561 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
563 #ifndef YY_INITIAL_VALUE
564 # define YY_INITIAL_VALUE(Value)
568 #if ! defined yyoverflow || YYERROR_VERBOSE
572 # ifdef YYSTACK_ALLOC
574 # define YYSTACK_FREE(Ptr) do { ; } while (0)
575 # ifndef YYSTACK_ALLOC_MAXIMUM
580 # define YYSTACK_ALLOC_MAXIMUM 4032
583 # define YYSTACK_ALLOC YYMALLOC
584 # define YYSTACK_FREE YYFREE
585 # ifndef YYSTACK_ALLOC_MAXIMUM
586 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
588 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
589 && ! ((defined YYMALLOC || defined malloc) \
590 && (defined YYFREE || defined free)))
592 # ifndef EXIT_SUCCESS
593 # define EXIT_SUCCESS 0
597 # define YYMALLOC malloc
598 # if ! defined malloc && ! defined EXIT_SUCCESS
604 # if ! defined free && ! defined EXIT_SUCCESS
612 #if (! defined yyoverflow \
613 && (! defined __cplusplus \
614 || (defined OCTAVE_STYPE_IS_TRIVIAL && OCTAVE_STYPE_IS_TRIVIAL)))
624 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
628 # define YYSTACK_BYTES(N) \
629 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
630 + YYSTACK_GAP_MAXIMUM)
632 # define YYCOPY_NEEDED 1
639 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
642 YYSIZE_T yynewbytes; \
643 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
644 Stack = &yyptr->Stack_alloc; \
645 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
646 yyptr += yynewbytes / sizeof (*yyptr); \
652 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
656 # if defined __GNUC__ && 1 < __GNUC__
657 # define YYCOPY(Dst, Src, Count) \
658 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
660 # define YYCOPY(Dst, Src, Count) \
664 for (yyi = 0; yyi < (Count); yyi++) \
665 (Dst)[yyi] = (Src)[yyi]; \
684 #define YYNSTATES 516
689 #define YYMAXUTOK 335
691 #define YYTRANSLATE(YYX) \
692 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
698 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
699 96, 2, 2, 2, 2, 2, 2, 2, 2, 2,
700 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
701 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
702 86, 87, 7, 6, 93, 5, 92, 8, 2, 2,
703 2, 2, 2, 2, 2, 2, 2, 2, 4, 94,
704 2, 3, 2, 2, 95, 2, 2, 2, 2, 2,
705 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
706 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
707 2, 88, 2, 89, 2, 2, 2, 2, 2, 2,
708 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
709 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
710 2, 2, 2, 90, 2, 91, 2, 2, 2, 2,
711 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
712 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
713 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
714 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
715 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
716 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
717 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
718 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
719 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
720 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
721 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
722 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
723 2, 2, 2, 2, 2, 2, 1, 2, 9, 10,
724 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
725 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
726 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
727 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
728 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
729 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
730 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
731 81, 82, 83, 84, 85, 97
738 0, 389, 389, 395, 402, 409, 415, 419, 421, 426,
739 427, 431, 435, 437, 441, 443, 445, 457, 468, 470,
740 481, 489, 498, 506, 508, 512, 514, 516, 520, 524,
741 526, 540, 544, 546, 565, 566, 568, 570, 572, 574,
742 578, 585, 592, 594, 596, 598, 603, 605, 607, 609,
743 613, 622, 630, 632, 634, 636, 641, 646, 653, 660,
744 662, 664, 666, 675, 684, 693, 702, 704, 706, 708,
745 710, 712, 714, 716, 718, 720, 722, 724, 726, 728,
746 730, 732, 734, 736, 738, 740, 742, 746, 748, 750,
747 752, 761, 770, 779, 788, 790, 792, 794, 796, 798,
748 800, 804, 808, 810, 823, 825, 827, 829, 831, 833,
749 835, 837, 839, 841, 843, 847, 861, 863, 865, 867,
750 869, 871, 873, 875, 877, 879, 881, 883, 885, 889,
751 904, 911, 919, 921, 923, 925, 927, 929, 931, 939,
752 944, 951, 953, 961, 966, 968, 981, 983, 991, 1001,
753 1003, 1010, 1018, 1025, 1036, 1049, 1062, 1063, 1065, 1067,
754 1074, 1076, 1083, 1092, 1105, 1117, 1124, 1136, 1148, 1160,
755 1178, 1180, 1182, 1190, 1203, 1216, 1233, 1265, 1279, 1287,
756 1294, 1303, 1304, 1320, 1322, 1329, 1331, 1339, 1345, 1363,
757 1380, 1382, 1393, 1419, 1435, 1444, 1450, 1460, 1469, 1478,
758 1489, 1507, 1513, 1521, 1534, 1574, 1587, 1600, 1615, 1616,
759 1620, 1622, 1629, 1631, 1638, 1648, 1649, 1654, 1653, 1662,
760 1661, 1674, 1678, 1680, 1682, 1684, 1686, 1693, 1700, 1707,
761 1717, 1729, 1743, 1745, 1754, 1756, 1765, 1777, 1791, 1796,
762 1803, 1806, 1805, 1820, 1822, 1826, 1834, 1848, 1860, 1873,
763 1875, 1884, 1888, 1900, 1913, 1915, 1924, 1933, 1940, 1943,
764 1949, 1953, 1955, 1957, 1959, 1964, 1965, 1970, 1971, 1975,
765 1977, 1981, 1983, 1985, 1987, 1989, 1991, 1996, 1997
769 #if OCTAVE_DEBUG || YYERROR_VERBOSE || 0
772 static const char *
const yytname[] =
774 "$end",
"error",
"$undefined",
"'='",
"':'",
"'-'",
"'+'",
"'*'",
"'/'",
775 "ADD_EQ",
"SUB_EQ",
"MUL_EQ",
"DIV_EQ",
"LEFTDIV_EQ",
"POW_EQ",
776 "EMUL_EQ",
"EDIV_EQ",
"ELEFTDIV_EQ",
"EPOW_EQ",
"AND_EQ",
"OR_EQ",
777 "EXPR_AND_AND",
"EXPR_OR_OR",
"EXPR_AND",
"EXPR_OR",
"EXPR_NOT",
778 "EXPR_LT",
"EXPR_LE",
"EXPR_EQ",
"EXPR_NE",
"EXPR_GE",
"EXPR_GT",
779 "LEFTDIV",
"EMUL",
"EDIV",
"ELEFTDIV",
"EPLUS",
"EMINUS",
"HERMITIAN",
780 "TRANSPOSE",
"PLUS_PLUS",
"MINUS_MINUS",
"POW",
"EPOW",
"NUM",
781 "IMAG_NUM",
"STRUCT_ELT",
"NAME",
"END",
"DQ_STRING",
"SQ_STRING",
"FOR",
782 "PARFOR",
"WHILE",
"DO",
"UNTIL",
"IF",
"ELSEIF",
"ELSE",
"SWITCH",
783 "CASE",
"OTHERWISE",
"BREAK",
"CONTINUE",
"FUNC_RET",
"UNWIND",
784 "CLEANUP",
"TRY",
"CATCH",
"GLOBAL",
"PERSISTENT",
"FCN_HANDLE",
785 "CLASSDEF",
"PROPERTIES",
"METHODS",
"EVENTS",
"ENUMERATION",
786 "METAQUERY",
"SUPERCLASSREF",
"FQ_IDENT",
"GET",
"SET",
"FCN",
787 "LEXICAL_ERROR",
"END_OF_INPUT",
"INPUT_FILE",
"'('",
"')'",
"'['",
788 "']'",
"'{'",
"'}'",
"'.'",
"','",
"';'",
"'@'",
"'\\n'",
"UNARY",
789 "$accept",
"input",
"simple_list",
"simple_list1",
"opt_list",
"list",
790 "list1",
"statement",
"word_list_cmd",
"word_list",
"identifier",
791 "superclass_identifier",
"meta_identifier",
"string",
"constant",
792 "matrix",
"matrix_rows",
"cell",
"cell_rows",
"cell_or_matrix_row",
793 "fcn_handle",
"anon_fcn_handle",
"primary_expr",
"magic_colon",
794 "magic_tilde",
"arg_list",
"indirect_ref_op",
"oper_expr",
"power_expr",
795 "colon_expr",
"colon_expr1",
"simple_expr",
"assign_lhs",
"assign_expr",
796 "expression",
"command",
"declaration",
"decl1",
"decl_param_init",
797 "decl2",
"select_command",
"if_command",
"if_cmd_list",
"if_cmd_list1",
798 "elseif_clause",
"else_clause",
"switch_command",
"case_list",
799 "case_list1",
"switch_case",
"default_case",
"loop_command",
800 "jump_command",
"except_command",
"push_fcn_symtab",
"param_list_beg",
801 "param_list_end",
"param_list",
"param_list1",
"param_list2",
802 "param_list_elt",
"return_list",
"return_list1",
"file",
"function_beg",
803 "function",
"fcn_name",
"function1",
"function2",
"function_end",
804 "classdef_beg",
"classdef",
"opt_attr_list",
"attr_list",
"attr",
805 "opt_superclass_list",
"superclass_list",
"$@1",
"$@2",
"superclass",
806 "class_body",
"properties_block",
"property_list",
"class_property",
807 "methods_block",
"method_decl1",
"method_decl",
"$@3",
"method",
808 "methods_list",
"events_block",
"events_list",
"class_event",
809 "enum_block",
"enum_list",
"class_enum",
"stmt_begin",
"stash_comment",
810 "parse_error",
"sep_no_nl",
"opt_sep_no_nl",
"opt_nl",
"nl",
"sep",
820 0, 256, 257, 61, 58, 45, 43, 42, 47, 258,
821 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
822 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
823 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
824 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
825 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
826 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
827 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
828 329, 330, 331, 332, 333, 334, 40, 41, 91, 93,
829 123, 125, 46, 44, 59, 64, 10, 335
833 #define YYPACT_NINF -413
835 #define yypact_value_is_default(Yystate) \
836 (!!((Yystate) == (-413)))
838 #define YYTABLE_NINF -266
840 #define yytable_value_is_error(Yytable_value) \
847 554, -413, 1173, 1173, 1173, 1173, 1173, -413, -413, -413,
848 -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
849 -413, -413, -413, 16, 16, -413, -413, -413, -5, 1194,
850 415, 415, -413, -413, 28, 72, -30, -47, -413, -413,
851 165, -413, -413, -413, -413, -413, -413, -413, -413, -413,
852 1348, -413, 89, 1432, 905, -413, -413, -413, -413, -413,
853 -413, -413, -413, -413, -413, 34, -413, -413, -413, -413,
854 110, -413, 31, -413, 127, 127, 127, 127, 127, 1250,
855 1271, 1194, 59, 1194, 1194, 59, 59, 147, 16, -413,
856 16, -413, 973, 68, 86, -413, 1173, 851, -39, -413,
857 -413, -413, 100, -413, 91, -413, -413, -413, 20, -413,
858 -413, -413, -413, 907, -413, 165, -413, 1173, 1173, 1173,
859 1173, 1173, 1173, 1173, 1173, 1173, 1173, -413, -413, -413,
860 -413, 1327, 1327, 687, 713, -413, -4, 1173, 1173, 1173,
861 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1194, 1194,
862 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
863 1194, -413, -10, -413, -413, 1194, 323, 193, 1194, 197,
864 -413, -413, -413, -413, 129, 1041, -413, 168, 181, 59,
865 1041, 1041, -413, -413, -413, 136, -413, 59, -413, -413,
866 59, -413, -413, 143, -413, 415, 851, -413, 415, -413,
867 -413, -413, -413, 153, 161, -413, 1107, -413, -413, 1386,
868 1386, 127, 127, 127, 127, 127, 127, 1386, 1386, 1327,
869 1327, 1327, 1327, 1327, -413, -11, -11, -413, 11, -413,
870 10, -413, 1194, 1348, 333, 221, 249, 240, -413, -413,
871 -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
872 -413, -413, -413, -413, -413, -413, -413, 173, 191, -13,
873 283, 286, 98, -413, 1470, 1194, 1488, 1194, 59, -413,
874 -413, -413, 236, 59, -413, -413, -413, -413, -413, 196,
875 229, 95, 1194, -413, 620, -413, 212, 217, 851, -413,
876 -413, -413, -413, -413, -413, -413, 36, -413, -11, -11,
877 -11, -11, -11, -413, -413, 775, 789, 3, -413, 851,
878 -413, 223, 16, 16, -413, -413, 49, -12, 59, -413,
879 1041, 1194, -413, 1194, -413, 1041, 1194, 1041, 59, 59,
880 -413, -413, 260, 196, -413, -413, -413, -413, -413, -413,
881 -413, 39, 16, -413, -413, -413, 19, -413, 116, -413,
882 1194, -413, -413, -413, -413, 16, -413, -413, 1041, -7,
883 234, 59, 230, 59, 268, -413, -413, 1194, 1041, 59,
884 59, -413, -413, -413, 59, 59, 16, 319, 108, -413,
885 298, -413, -413, 243, -413, -7, -413, -413, -413, 59,
886 1041, 1194, 1041, -413, -413, -413, 1194, 1041, 1041, 1041,
887 -413, -413, -413, 39, -413, 59, 308, -413, -413, 1041,
888 284, 248, 285, 59, -413, -413, 289, 290, 1194, -413,
889 261, 103, -413, 291, -413, 59, -413, 1041, 59, -413,
890 -413, -413, -413, -413, -413, -413, -413, -413, -413, 59,
891 -413, -413, -413, -413, 261, -413, 1041, -413, 1041, 212,
892 212, 212, 212, 154, -413, 300, -413, 59, 59, 59,
893 59, -413, -413, -413, -413, -413, -413, 246, 5, 257,
894 259, -413, 362, 59, -413, -413, -413, -413, -413, 59,
895 -14, -413, -413, 59, -413, -413, 280, 59, -413, -413,
896 1, 321, 14, 25, 367, -413, 267, 1194, 271, 1194,
897 -413, -413, -413, -413, -413, -413, -413, -413, 287, -413,
898 -413, -413, 16, -413, 292, -413
906 0, 260, 0, 0, 0, 0, 0, 25, 26, 20,
907 23, 24, 258, 258, 258, 258, 258, 258, 170, 171,
908 172, 258, 258, 0, 0, 22, 21, 259, 267, 0,
909 34, 34, 261, 262, 0, 0, 0, 265, 7, 16,
910 42, 48, 47, 27, 43, 45, 46, 44, 131, 59,
911 102, 104, 101, 129, 0, 130, 14, 15, 132, 133,
912 146, 147, 134, 135, 136, 0, 138, 258, 137, 4,
913 266, 5, 0, 42, 74, 73, 72, 70, 71, 0,
914 0, 0, 277, 0, 0, 277, 277, 144, 139, 141,
915 140, 269, 9, 268, 0, 50, 51, 35, 0, 29,
916 53, 54, 36, 52, 0, 32, 40, 177, 0, 257,
917 1, 3, 2, 266, 6, 17, 18, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 0, 66, 67, 60,
919 61, 0, 0, 0, 0, 58, 0, 0, 0, 0,
920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
922 0, 194, 0, 263, 264, 0, 115, 0, 0, 0,
923 257, 271, 272, 273, 278, 9, 257, 0, 149, 277,
924 9, 9, 143, 142, 205, 0, 10, 277, 12, 258,
925 277, 270, 49, 38, 28, 34, 37, 31, 34, 180,
926 51, 186, 185, 0, 182, 183, 176, 8, 19, 78,
927 77, 79, 80, 85, 83, 84, 86, 81, 82, 0,
928 0, 0, 0, 0, 87, 75, 76, 62, 0, 64,
929 0, 68, 0, 103, 113, 114, 111, 112, 105, 106,
930 107, 110, 108, 109, 116, 117, 118, 119, 120, 121,
931 122, 123, 124, 125, 126, 127, 128, 0, 0, 0,
932 197, 0, 277, 195, 0, 0, 0, 0, 277, 274,
933 275, 276, 0, 277, 148, 258, 258, 152, 150, 156,
934 0, 0, 0, 192, 278, 11, 208, 0, 39, 30,
935 55, 56, 57, 33, 178, 179, 0, 41, 100, 99,
936 98, 96, 97, 88, 89, 0, 0, 0, 63, 0,
937 65, 0, 0, 0, 187, 190, 0, 0, 277, 200,
938 9, 0, 257, 0, 257, 9, 0, 9, 277, 277,
939 258, 258, 0, 158, 160, 157, 258, 175, 258, 145,
940 13, 0, 0, 193, 184, 90, 0, 92, 0, 94,
941 0, 69, 198, 199, 189, 0, 197, 196, 9, 0,
942 0, 277, 116, 277, 0, 165, 151, 0, 9, 277,
943 277, 155, 161, 159, 277, 277, 0, 212, 0, 210,
944 215, 91, 93, 0, 191, 0, 203, 204, 202, 277,
945 9, 0, 9, 164, 257, 154, 0, 9, 9, 9,
946 214, 143, 209, 0, 217, 277, 216, 95, 201, 9,
947 0, 0, 0, 277, 257, 163, 0, 0, 0, 211,
948 0, 0, 219, 0, 166, 277, 168, 9, 277, 173,
949 174, 213, 221, 218, 207, 258, 258, 258, 258, 277,
950 222, 223, 224, 225, 0, 167, 9, 153, 9, 208,
951 208, 208, 208, 0, 220, 0, 162, 277, 277, 277,
952 277, 206, 226, 227, 228, 229, 169, 0, 258, 0,
953 0, 231, 234, 277, 232, 237, 244, 243, 245, 277,
954 0, 248, 251, 277, 249, 253, 0, 277, 254, 143,
955 278, 0, 258, 238, 0, 240, 0, 0, 0, 0,
956 233, 230, 236, 246, 239, 241, 247, 250, 0, 252,
957 255, 235, 0, 256, 238, 242
963 -413, -413, -413, -413, -137, -413, -413, 4, -413, -413,
964 0, -413, -413, -15, -413, -413, -413, -413, -413, -9,
965 -413, -413, -100, -170, -91, -94, -141, 410, -74, -413,
966 -413, 601, -28, -413, -24, -413, -413, 347, -374, -72,
967 -413, -413, -413, -413, -413, -413, -413, -413, -413, 40,
968 44, -413, -413, -413, -413, -413, -413, -25, -413, -413,
969 83, -98, -413, -413, -413, -412, -413, 63, -413, -1,
970 -413, -413, -217, -413, -20, -413, -413, -413, -413, -59,
971 -413, -66, -413, -102, -64, -121, -413, -413, -99, -413,
972 -58, -413, -96, -57, -413, -97, -168, -2, -413, 365,
973 368, -413, -413, -186, 113
979 -1, 35, 36, 37, 185, 186, 187, 188, 39, 115,
980 73, 41, 42, 43, 44, 45, 98, 46, 104, 99,
981 47, 48, 49, 100, 101, 102, 136, 50, 225, 51,
982 52, 53, 54, 55, 56, 57, 58, 88, 282, 89,
983 59, 60, 177, 178, 277, 278, 61, 332, 333, 334,
984 335, 62, 63, 64, 65, 108, 295, 504, 203, 204,
985 205, 261, 316, 66, 67, 68, 262, 263, 319, 388,
986 189, 190, 342, 378, 379, 405, 406, 420, 444, 433,
987 439, 440, 473, 474, 441, 495, 477, 512, 478, 479,
988 442, 483, 484, 443, 487, 488, 206, 480, 69, 70,
997 40, 284, 268, 193, 38, 94, 103, 103, 273, 109,
998 79, 80, 81, 82, 83, 84, 183, 201, 183, 85,
999 86, 199, 105, 87, 87, 116, 290, 418, -188, 303,
1000 304, 224, 224, 9, 9, 9, 202, 9, 272, 228,
1001 230, 386, 231, 280, 281, 200, 32, 33, 9, 349,
1002 194, 167, 169, 475, 111, 195, 476, 170, 226, 176,
1003 179, 200, 502, 9, 376, 162, 112, 9, 257, 258,
1004 257, 258, 110, 103, 259, 305, 314, 387, 259, 306,
1005 476, 135, 232, 9, 307, 307, 9, -176, 87, 350,
1006 87, 91, 40, 137, 269, 270, -176, 271, 308, 106,
1007 208, 310, 106, 309, 309, 291, 381, -181, 87, 103,
1008 103, 107, 309, 40, 107, 499, 161, 207, 290, 224,
1009 224, 224, 224, 224, 244, 245, 246, 247, 248, 249,
1010 250, 251, 252, 253, 254, 255, 256, 264, 354, 290,
1011 266, 94, 355, 337, 94, 298, 299, 300, 301, 302,
1012 182, 434, 171, 172, 361, 173, 363, 307, 307, 307,
1013 307, 307, 260, 338, 191, 127, 128, 129, 130, 131,
1014 132, 103, 292, 192, 103, 40, 435, 436, 437, 438,
1015 40, 40, 197, 359, 107, 198, 289, 286, 364, 293,
1016 366, 171, 172, 196, 173, 402, 265, 291, 180, 181,
1017 267, 403, 461, 163, 164, 201, 40, 382, 311, 309,
1018 297, 346, 348, 133, 10, 11, 274, 134, 291, 135,
1019 283, 385, 269, 270, 202, 271, 413, 435, 436, 437,
1020 438, 395, 457, 458, 459, 460, 288, 318, 275, 276,
1021 294, 322, 138, 324, 140, 141, 428, 142, 143, 144,
1022 145, 146, 147, 410, 296, 412, 330, 331, 339, 315,
1023 415, 416, 417, 140, 292, 312, 142, 143, 144, 145,
1024 146, 147, 423, 328, 329, 142, 143, 144, 145, 146,
1025 147, 103, 103, 313, 40, 292, -188, 490, 340, 317,
1026 447, 326, 279, 9, 471, 336, 87, 360, 341, 362,
1027 285, 343, 365, 287, 9, 481, 9, 485, 371, 455,
1028 351, 456, 352, 353, 9, 506, 393, 356, 9, 509,
1029 40, 389, 401, 391, 404, 40, 383, 40, 369, 370,
1030 407, 422, 424, 426, 374, 425, 375, 429, 430, 445,
1031 432, 377, 380, 394, 138, 139, 140, 141, 466, 142,
1032 143, 144, 145, 146, 147, 384, 140, 141, 40, 142,
1033 143, 144, 145, 146, 147, 489, 497, 411, 40, 501,
1034 505, 90, 414, 372, 513, 320, 400, 373, 107, 344,
1035 357, 325, 494, 419, 408, 454, 327, 462, 500, 463,
1036 40, 515, 40, 503, 431, 464, 465, 40, 40, 40,
1037 507, 510, 113, 377, 0, 114, 0, 0, 0, 40,
1038 0, 0, 74, 75, 76, 77, 78, 0, 0, 95,
1039 2, 3, 0, 0, 0, 0, 0, 40, 0, 0,
1040 0, 358, 0, 449, 450, 451, 452, 0, 0, 0,
1041 96, 367, 368, 0, 0, 0, 40, 0, 40, 0,
1042 0, 0, 0, 0, 0, 5, 6, 0, 0, 7,
1043 8, 0, 9, 0, 10, 11, 0, 472, 0, 482,
1044 486, 0, 0, 508, 390, 511, 392, 0, 0, 0,
1045 493, 0, 396, 397, 0, 0, 0, 398, 399, 0,
1046 472, 0, 25, 26, 0, 0, 482, 0, 486, 0,
1047 0, 29, 409, 30, 0, 31, 76, 0, 97, 0,
1048 34, 0, 514, 0, 0, 0, 0, 0, 421, 0,
1049 0, 0, 0, 0, 0, 0, 427, 209, 210, 211,
1050 212, 213, 214, 215, 216, 217, 218, 0, 446, 0,
1051 0, 448, 0, 0, 0, 0, 0, 233, 0, 0,
1052 0, 0, 453, 0, 0, 1, 0, 0, 0, 2,
1053 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1054 467, 468, 469, 470, 0, 0, 0, 0, 0, 4,
1055 0, 0, 0, 0, 0, 0, 491, 0, 0, 0,
1056 0, 0, 492, 0, 5, 6, 496, 0, 7, 8,
1057 498, 9, 0, 10, 11, 12, 13, 14, 15, 0,
1058 16, 0, 0, 17, 0, 0, 18, 19, 20, 21,
1059 0, 22, 0, 23, 24, 2, 3, 0, 0, 0,
1060 0, 25, 26, 0, 0, 0, -176, 27, -265, 28,
1061 29, 0, 30, 0, 31, 4, 0, 32, 33, 34,
1062 -265, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1063 5, 6, 0, 0, 7, 8, 0, 9, 0, 10,
1064 11, 12, 13, 14, 15, 0, 16, 0, 0, 17,
1065 166, 166, 18, 19, 20, 21, 0, 22, 0, 23,
1066 24, 95, 2, 3, 0, 0, 0, 25, 26, 0,
1067 0, 0, -176, 0, 0, 28, 29, 0, 30, 0,
1068 31, 0, 96, 269, 270, 34, 271, 95, 2, 3,
1069 0, 0, 0, 0, 0, 0, 0, 5, 6, 0,
1070 0, 7, 8, 0, 9, 0, 10, 11, 96, 234,
1071 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
1072 0, 0, 0, 5, 6, 0, 0, 7, 8, 0,
1073 9, 0, 10, 11, 25, 26, 0, 0, 0, 0,
1074 0, 0, 0, 29, 227, 30, 0, 31, 0, 95,
1075 2, 3, 34, 0, 0, 0, 0, 0, 0, 0,
1076 25, 26, 0, 95, 2, 3, 0, 0, 0, 29,
1077 96, 30, 0, 31, 229, 0, 0, 0, 34, 0,
1078 0, 0, 0, 0, 96, 5, 6, 0, 0, 7,
1079 8, 0, 9, 0, 10, 11, 0, 0, 0, 5,
1080 6, 0, 0, 7, 8, 0, 9, 0, 10, 11,
1081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1082 0, 0, 25, 26, 0, 95, 2, 3, 0, 0,
1083 0, 29, 345, 30, 0, 31, 25, 26, 0, 0,
1084 34, 0, 0, 0, 0, 29, 96, 30, 0, 31,
1085 347, 0, 0, 0, 34, 0, 0, 0, 0, 0,
1086 0, 5, 6, 0, 0, 7, 8, 0, 9, 0,
1087 10, 11, 0, 0, 0, 0, 0, 0, 148, 0,
1088 0, 0, 2, 3, 149, 150, 151, 152, 153, 154,
1089 155, 156, 157, 158, 159, 160, 0, 0, 25, 26,
1090 0, 0, 4, 0, 0, 0, 0, 29, 0, 30,
1091 0, 31, 0, 0, 0, 0, 34, 5, 6, 0,
1092 0, 7, 8, 0, 9, 0, 10, 11, 12, 13,
1093 14, 15, 0, 16, 0, 0, 17, 0, 0, 18,
1094 19, 20, 21, 0, 22, 0, 23, 24, 2, 3,
1095 0, 0, 0, 0, 25, 26, 0, 0, 0, -176,
1096 0, 0, 28, 29, 0, 30, 0, 31, 4, 0,
1097 163, 164, 34, 0, 0, 0, 0, 0, 0, 0,
1098 0, 0, 0, 5, 6, 0, 0, 7, 8, 0,
1099 9, 0, 10, 11, 12, 13, 14, 15, 0, 16,
1100 0, 0, 17, 0, 0, 18, 19, 20, 21, 0,
1101 22, 0, 23, 24, 0, 184, 2, 3, 0, 0,
1102 25, 26, 0, 0, 0, -176, 0, 0, 28, 29,
1103 0, 30, 0, 31, 0, 0, 4, 0, 34, 0,
1104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1105 0, 5, 6, 0, 0, 7, 8, 0, 9, 0,
1106 10, 11, 12, 13, 14, 15, 0, 16, 0, 0,
1107 17, 0, 0, 18, 19, 20, 21, 0, 22, 0,
1108 23, 24, 2, 3, 0, 0, 0, 0, 25, 26,
1109 0, 0, 0, -176, 0, 0, 28, 29, 0, 30,
1110 0, 31, 4, 0, 0, 0, 34, 0, 0, 0,
1111 0, 0, 0, 0, 0, 0, 0, 5, 6, 0,
1112 0, 7, 8, 0, 9, 0, 10, 11, 12, 13,
1113 14, 15, 0, 16, 0, 0, 17, 0, 0, 18,
1114 19, 20, 21, 0, 22, 0, 23, 24, 2, 3,
1115 0, 0, 0, 0, 25, 26, 0, 0, 0, 0,
1116 0, 0, 28, 29, 0, 30, 0, 31, 4, 2,
1117 3, 0, 34, 0, 0, 0, 0, 0, 0, 0,
1118 0, 0, 0, 5, 6, 0, 0, 7, 8, 4,
1119 9, 0, 10, 11, 0, 0, 0, 0, 0, 0,
1120 0, 0, 0, 0, 5, 6, 0, 0, 7, 8,
1121 0, 9, 0, 10, 11, 0, 0, 0, 0, 0,
1122 25, 26, 0, 0, 0, 2, 3, 0, 0, 29,
1123 0, 30, 0, 31, 0, 0, 0, 0, 72, 0,
1124 0, 25, 26, 0, 0, 4, 2, 3, 0, 0,
1125 29, 0, 30, 0, 31, 0, 0, 0, 0, 34,
1126 5, 6, 0, 0, 7, 8, 4, 9, 0, 10,
1127 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1128 0, 5, 6, 0, 0, 7, 8, 0, 9, 0,
1129 10, 11, 0, 0, 0, 0, 0, 25, 26, 0,
1130 0, 0, 219, 220, 0, 0, 165, 0, 30, 0,
1131 31, 0, 0, 0, 0, 72, 0, 0, 25, 26,
1132 0, 0, 221, 117, 118, 119, 120, 168, 0, 30,
1133 0, 31, 0, 0, 0, 0, 72, 222, 223, 0,
1134 0, 7, 8, 0, 9, 0, 10, 11, 0, 0,
1135 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1136 131, 132, 0, 119, 120, 0, 0, 0, 0, 0,
1137 0, 0, 0, 0, 25, 26, 0, 0, 0, 0,
1138 0, 0, 0, 29, 0, 30, 0, 31, 121, 122,
1139 123, 124, 72, 0, 127, 128, 129, 130, 131, 132,
1140 0, 0, 0, 0, 133, -115, 0, 0, 134, 0,
1141 135, -115, -115, -115, -115, -115, -115, -115, -115, -115,
1142 -115, -115, -115, 138, 139, 140, 141, 0, 142, 143,
1143 144, 145, 146, 147, 0, 0, 0, 0, 0, 0,
1144 0, 0, 133, 321, 0, 0, 134, 0, 135, 149,
1145 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1146 160, 323, 0, 0, 0, 0, 0, 149, 150, 151,
1147 152, 153, 154, 155, 156, 157, 158, 159, 160
1152 0, 187, 170, 97, 0, 29, 30, 31, 176, 34,
1153 12, 13, 14, 15, 16, 17, 88, 108, 90, 21,
1154 22, 1, 31, 23, 24, 40, 196, 401, 3, 40,
1155 41, 131, 132, 47, 47, 47, 108, 47, 175, 133,
1156 134, 48, 46, 180, 181, 25, 93, 94, 47, 46,
1157 89, 79, 80, 48, 84, 94, 468, 81, 132, 83,
1158 84, 25, 48, 47, 25, 67, 96, 47, 80, 81,
1159 80, 81, 0, 97, 88, 86, 89, 84, 88, 90,
1160 492, 92, 86, 47, 225, 226, 47, 82, 88, 86,
1161 90, 96, 92, 4, 93, 94, 82, 96, 87, 71,
1162 115, 91, 71, 93, 93, 196, 87, 87, 108, 133,
1163 134, 86, 93, 113, 86, 489, 82, 113, 288, 219,
1164 220, 221, 222, 223, 148, 149, 150, 151, 152, 153,
1165 154, 155, 156, 157, 158, 159, 160, 165, 89, 309,
1166 168, 165, 93, 48, 168, 219, 220, 221, 222, 223,
1167 3, 48, 93, 94, 322, 96, 324, 298, 299, 300,
1168 301, 302, 162, 68, 96, 38, 39, 40, 41, 42,
1169 43, 195, 196, 87, 198, 175, 73, 74, 75, 76,
1170 180, 181, 91, 320, 86, 94, 195, 189, 325, 198,
1171 327, 93, 94, 93, 96, 87, 3, 288, 85, 86,
1172 3, 93, 48, 93, 94, 296, 206, 91, 232, 93,
1173 206, 305, 306, 86, 49, 50, 48, 90, 309, 92,
1174 84, 358, 93, 94, 296, 96, 394, 73, 74, 75,
1175 76, 368, 449, 450, 451, 452, 93, 262, 57, 58,
1176 87, 265, 21, 267, 23, 24, 414, 26, 27, 28,
1177 29, 30, 31, 390, 93, 392, 60, 61, 282, 259,
1178 397, 398, 399, 23, 288, 92, 26, 27, 28, 29,
1179 30, 31, 409, 275, 276, 26, 27, 28, 29, 30,
1180 31, 305, 306, 92, 284, 309, 3, 473, 284, 3,
1181 427, 55, 179, 47, 48, 66, 296, 321, 86, 323,
1182 187, 84, 326, 190, 47, 48, 47, 48, 48, 446,
1183 87, 448, 312, 313, 47, 48, 48, 317, 47, 48,
1184 320, 87, 3, 93, 26, 325, 350, 327, 330, 331,
1185 87, 23, 48, 48, 336, 87, 338, 48, 48, 48,
1186 79, 341, 342, 367, 21, 22, 23, 24, 48, 26,
1187 27, 28, 29, 30, 31, 355, 23, 24, 358, 26,
1188 27, 28, 29, 30, 31, 3, 86, 391, 368, 48,
1189 3, 24, 396, 333, 87, 262, 376, 333, 86, 296,
1190 317, 268, 480, 403, 385, 444, 273, 453, 490, 453,
1191 390, 512, 392, 492, 418, 453, 453, 397, 398, 399,
1192 496, 498, 37, 403, -1, 37, -1, -1, -1, 409,
1193 -1, -1, 2, 3, 4, 5, 6, -1, -1, 4,
1194 5, 6, -1, -1, -1, -1, -1, 427, -1, -1,
1195 -1, 318, -1, 435, 436, 437, 438, -1, -1, -1,
1196 25, 328, 329, -1, -1, -1, 446, -1, 448, -1,
1197 -1, -1, -1, -1, -1, 40, 41, -1, -1, 44,
1198 45, -1, 47, -1, 49, 50, -1, 467, -1, 469,
1199 470, -1, -1, 497, 361, 499, 363, -1, -1, -1,
1200 480, -1, 369, 370, -1, -1, -1, 374, 375, -1,
1201 490, -1, 77, 78, -1, -1, 496, -1, 498, -1,
1202 -1, 86, 389, 88, -1, 90, 96, -1, 93, -1,
1203 95, -1, 512, -1, -1, -1, -1, -1, 405, -1,
1204 -1, -1, -1, -1, -1, -1, 413, 117, 118, 119,
1205 120, 121, 122, 123, 124, 125, 126, -1, 425, -1,
1206 -1, 428, -1, -1, -1, -1, -1, 137, -1, -1,
1207 -1, -1, 439, -1, -1, 1, -1, -1, -1, 5,
1208 6, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1209 457, 458, 459, 460, -1, -1, -1, -1, -1, 25,
1210 -1, -1, -1, -1, -1, -1, 473, -1, -1, -1,
1211 -1, -1, 479, -1, 40, 41, 483, -1, 44, 45,
1212 487, 47, -1, 49, 50, 51, 52, 53, 54, -1,
1213 56, -1, -1, 59, -1, -1, 62, 63, 64, 65,
1214 -1, 67, -1, 69, 70, 5, 6, -1, -1, -1,
1215 -1, 77, 78, -1, -1, -1, 82, 83, 84, 85,
1216 86, -1, 88, -1, 90, 25, -1, 93, 94, 95,
1217 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1218 40, 41, -1, -1, 44, 45, -1, 47, -1, 49,
1219 50, 51, 52, 53, 54, -1, 56, -1, -1, 59,
1220 79, 80, 62, 63, 64, 65, -1, 67, -1, 69,
1221 70, 4, 5, 6, -1, -1, -1, 77, 78, -1,
1222 -1, -1, 82, -1, -1, 85, 86, -1, 88, -1,
1223 90, -1, 25, 93, 94, 95, 96, 4, 5, 6,
1224 -1, -1, -1, -1, -1, -1, -1, 40, 41, -1,
1225 -1, 44, 45, -1, 47, -1, 49, 50, 25, 138,
1226 139, 140, 141, 142, 143, 144, 145, 146, 147, -1,
1227 -1, -1, -1, 40, 41, -1, -1, 44, 45, -1,
1228 47, -1, 49, 50, 77, 78, -1, -1, -1, -1,
1229 -1, -1, -1, 86, 87, 88, -1, 90, -1, 4,
1230 5, 6, 95, -1, -1, -1, -1, -1, -1, -1,
1231 77, 78, -1, 4, 5, 6, -1, -1, -1, 86,
1232 25, 88, -1, 90, 91, -1, -1, -1, 95, -1,
1233 -1, -1, -1, -1, 25, 40, 41, -1, -1, 44,
1234 45, -1, 47, -1, 49, 50, -1, -1, -1, 40,
1235 41, -1, -1, 44, 45, -1, 47, -1, 49, 50,
1236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1237 -1, -1, 77, 78, -1, 4, 5, 6, -1, -1,
1238 -1, 86, 87, 88, -1, 90, 77, 78, -1, -1,
1239 95, -1, -1, -1, -1, 86, 25, 88, -1, 90,
1240 91, -1, -1, -1, 95, -1, -1, -1, -1, -1,
1241 -1, 40, 41, -1, -1, 44, 45, -1, 47, -1,
1242 49, 50, -1, -1, -1, -1, -1, -1, 3, -1,
1243 -1, -1, 5, 6, 9, 10, 11, 12, 13, 14,
1244 15, 16, 17, 18, 19, 20, -1, -1, 77, 78,
1245 -1, -1, 25, -1, -1, -1, -1, 86, -1, 88,
1246 -1, 90, -1, -1, -1, -1, 95, 40, 41, -1,
1247 -1, 44, 45, -1, 47, -1, 49, 50, 51, 52,
1248 53, 54, -1, 56, -1, -1, 59, -1, -1, 62,
1249 63, 64, 65, -1, 67, -1, 69, 70, 5, 6,
1250 -1, -1, -1, -1, 77, 78, -1, -1, -1, 82,
1251 -1, -1, 85, 86, -1, 88, -1, 90, 25, -1,
1252 93, 94, 95, -1, -1, -1, -1, -1, -1, -1,
1253 -1, -1, -1, 40, 41, -1, -1, 44, 45, -1,
1254 47, -1, 49, 50, 51, 52, 53, 54, -1, 56,
1255 -1, -1, 59, -1, -1, 62, 63, 64, 65, -1,
1256 67, -1, 69, 70, -1, 72, 5, 6, -1, -1,
1257 77, 78, -1, -1, -1, 82, -1, -1, 85, 86,
1258 -1, 88, -1, 90, -1, -1, 25, -1, 95, -1,
1259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1260 -1, 40, 41, -1, -1, 44, 45, -1, 47, -1,
1261 49, 50, 51, 52, 53, 54, -1, 56, -1, -1,
1262 59, -1, -1, 62, 63, 64, 65, -1, 67, -1,
1263 69, 70, 5, 6, -1, -1, -1, -1, 77, 78,
1264 -1, -1, -1, 82, -1, -1, 85, 86, -1, 88,
1265 -1, 90, 25, -1, -1, -1, 95, -1, -1, -1,
1266 -1, -1, -1, -1, -1, -1, -1, 40, 41, -1,
1267 -1, 44, 45, -1, 47, -1, 49, 50, 51, 52,
1268 53, 54, -1, 56, -1, -1, 59, -1, -1, 62,
1269 63, 64, 65, -1, 67, -1, 69, 70, 5, 6,
1270 -1, -1, -1, -1, 77, 78, -1, -1, -1, -1,
1271 -1, -1, 85, 86, -1, 88, -1, 90, 25, 5,
1272 6, -1, 95, -1, -1, -1, -1, -1, -1, -1,
1273 -1, -1, -1, 40, 41, -1, -1, 44, 45, 25,
1274 47, -1, 49, 50, -1, -1, -1, -1, -1, -1,
1275 -1, -1, -1, -1, 40, 41, -1, -1, 44, 45,
1276 -1, 47, -1, 49, 50, -1, -1, -1, -1, -1,
1277 77, 78, -1, -1, -1, 5, 6, -1, -1, 86,
1278 -1, 88, -1, 90, -1, -1, -1, -1, 95, -1,
1279 -1, 77, 78, -1, -1, 25, 5, 6, -1, -1,
1280 86, -1, 88, -1, 90, -1, -1, -1, -1, 95,
1281 40, 41, -1, -1, 44, 45, 25, 47, -1, 49,
1282 50, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1283 -1, 40, 41, -1, -1, 44, 45, -1, 47, -1,
1284 49, 50, -1, -1, -1, -1, -1, 77, 78, -1,
1285 -1, -1, 5, 6, -1, -1, 86, -1, 88, -1,
1286 90, -1, -1, -1, -1, 95, -1, -1, 77, 78,
1287 -1, -1, 25, 5, 6, 7, 8, 86, -1, 88,
1288 -1, 90, -1, -1, -1, -1, 95, 40, 41, -1,
1289 -1, 44, 45, -1, 47, -1, 49, 50, -1, -1,
1290 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1291 42, 43, -1, 7, 8, -1, -1, -1, -1, -1,
1292 -1, -1, -1, -1, 77, 78, -1, -1, -1, -1,
1293 -1, -1, -1, 86, -1, 88, -1, 90, 32, 33,
1294 34, 35, 95, -1, 38, 39, 40, 41, 42, 43,
1295 -1, -1, -1, -1, 86, 3, -1, -1, 90, -1,
1296 92, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1297 18, 19, 20, 21, 22, 23, 24, -1, 26, 27,
1298 28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1299 -1, -1, 86, 3, -1, -1, 90, -1, 92, 9,
1300 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1301 20, 3, -1, -1, -1, -1, -1, 9, 10, 11,
1302 12, 13, 14, 15, 16, 17, 18, 19, 20
1309 0, 1, 5, 6, 25, 40, 41, 44, 45, 47,
1310 49, 50, 51, 52, 53, 54, 56, 59, 62, 63,
1311 64, 65, 67, 69, 70, 77, 78, 83, 85, 86,
1312 88, 90, 93, 94, 95, 99, 100, 101, 105, 106,
1313 108, 109, 110, 111, 112, 113, 115, 118, 119, 120,
1314 125, 127, 128, 129, 130, 131, 132, 133, 134, 138,
1315 139, 144, 149, 150, 151, 152, 161, 162, 163, 196,
1316 197, 198, 95, 108, 125, 125, 125, 125, 125, 195,
1317 195, 195, 195, 195, 195, 195, 195, 108, 135, 137,
1318 135, 96, 199, 200, 132, 4, 25, 93, 114, 117,
1319 121, 122, 123, 132, 116, 117, 71, 86, 153, 155,
1320 0, 84, 96, 197, 198, 107, 111, 5, 6, 7,
1321 8, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1322 41, 42, 43, 86, 90, 92, 124, 4, 21, 22,
1323 23, 24, 26, 27, 28, 29, 30, 31, 3, 9,
1324 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1325 20, 82, 195, 93, 94, 86, 129, 130, 86, 130,
1326 132, 93, 94, 96, 201, 202, 132, 140, 141, 132,
1327 202, 202, 3, 137, 72, 102, 103, 104, 105, 168,
1328 169, 96, 87, 123, 89, 94, 93, 91, 94, 1,
1329 25, 122, 137, 156, 157, 158, 194, 105, 111, 125,
1330 125, 125, 125, 125, 125, 125, 125, 125, 125, 5,
1331 6, 25, 40, 41, 120, 126, 126, 87, 123, 91,
1332 123, 46, 86, 125, 129, 129, 129, 129, 129, 129,
1333 129, 129, 129, 129, 132, 132, 132, 132, 132, 132,
1334 132, 132, 132, 132, 132, 132, 132, 80, 81, 88,
1335 108, 159, 164, 165, 130, 3, 130, 3, 194, 93,
1336 94, 96, 102, 194, 48, 57, 58, 142, 143, 202,
1337 102, 102, 136, 84, 201, 202, 195, 202, 93, 117,
1338 121, 122, 132, 117, 87, 154, 93, 105, 126, 126,
1339 126, 126, 126, 40, 41, 86, 90, 124, 87, 93,
1340 91, 132, 92, 92, 89, 108, 160, 3, 155, 166,
1341 202, 3, 132, 3, 132, 202, 55, 202, 195, 195,
1342 60, 61, 145, 146, 147, 148, 66, 48, 68, 132,
1343 105, 86, 170, 84, 158, 87, 123, 91, 123, 46,
1344 86, 87, 108, 108, 89, 93, 108, 165, 202, 102,
1345 132, 194, 132, 194, 102, 132, 102, 202, 202, 195,
1346 195, 48, 147, 148, 195, 195, 25, 108, 171, 172,
1347 108, 87, 91, 132, 108, 102, 48, 84, 167, 87,
1348 202, 93, 202, 48, 132, 102, 202, 202, 202, 202,
1349 108, 3, 87, 93, 26, 173, 174, 87, 167, 202,
1350 102, 132, 102, 194, 132, 102, 102, 102, 136, 172,
1351 175, 202, 23, 102, 48, 87, 48, 202, 194, 48,
1352 48, 132, 79, 177, 48, 73, 74, 75, 76, 178,
1353 179, 182, 188, 191, 176, 48, 202, 102, 202, 195,
1354 195, 195, 195, 202, 177, 102, 102, 170, 170, 170,
1355 170, 48, 179, 182, 188, 191, 48, 202, 202, 202,
1356 202, 48, 108, 180, 181, 48, 163, 184, 186, 187,
1357 195, 48, 108, 189, 190, 48, 108, 192, 193, 3,
1358 201, 202, 202, 108, 159, 183, 202, 86, 202, 136,
1359 181, 48, 48, 186, 155, 3, 48, 190, 132, 48,
1360 193, 132, 185, 87, 108, 183
1366 0, 98, 99, 99, 99, 100, 100, 101, 101, 102,
1367 102, 103, 104, 104, 105, 105, 105, 106, 107, 107,
1368 108, 109, 110, 111, 111, 112, 112, 112, 113, 114,
1369 114, 115, 116, 116, 117, 117, 117, 117, 117, 117,
1370 118, 119, 120, 120, 120, 120, 120, 120, 120, 120,
1371 121, 122, 123, 123, 123, 123, 123, 123, 124, 125,
1372 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
1373 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
1374 125, 125, 125, 125, 125, 125, 125, 126, 126, 126,
1375 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
1376 126, 127, 128, 128, 129, 129, 129, 129, 129, 129,
1377 129, 129, 129, 129, 129, 130, 131, 131, 131, 131,
1378 131, 131, 131, 131, 131, 131, 131, 131, 131, 132,
1379 132, 132, 133, 133, 133, 133, 133, 133, 133, 134,
1380 134, 135, 135, 136, 137, 137, 138, 138, 139, 140,
1381 140, 141, 141, 142, 143, 144, 145, 145, 145, 145,
1382 146, 146, 147, 148, 149, 149, 149, 149, 149, 149,
1383 150, 150, 150, 151, 151, 151, 152, 153, 154, 155,
1384 155, 156, 156, 157, 157, 158, 158, 159, 159, 159,
1385 160, 160, 161, 161, 162, 163, 163, 164, 164, 164,
1386 165, 166, 166, 167, 167, 168, 169, 169, 170, 170,
1387 171, 171, 172, 172, 172, 173, 173, 175, 174, 176,
1388 174, 177, 178, 178, 178, 178, 178, 178, 178, 178,
1389 179, 179, 180, 180, 181, 181, 182, 182, 183, 183,
1390 184, 185, 184, 186, 186, 187, 187, 188, 188, 189,
1391 189, 190, 191, 191, 192, 192, 193, 194, 195, 196,
1392 196, 197, 197, 197, 197, 198, 198, 199, 199, 200,
1393 200, 201, 201, 201, 201, 201, 201, 202, 202
1399 0, 2, 2, 2, 1, 1, 2, 1, 3, 0,
1400 1, 2, 1, 3, 1, 1, 1, 2, 1, 2,
1401 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
1402 3, 3, 1, 3, 0, 1, 1, 2, 2, 3,
1403 2, 4, 1, 1, 1, 1, 1, 1, 1, 3,
1404 1, 1, 1, 1, 1, 3, 3, 3, 1, 1,
1405 2, 2, 3, 4, 3, 4, 2, 2, 3, 5,
1406 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
1407 3, 3, 3, 3, 3, 3, 3, 1, 2, 2,
1408 3, 4, 3, 4, 3, 5, 2, 2, 2, 2,
1409 2, 1, 1, 3, 1, 3, 3, 3, 3, 3,
1410 3, 3, 3, 3, 3, 1, 3, 3, 3, 3,
1411 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
1412 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1413 2, 1, 2, 0, 1, 4, 1, 1, 4, 1,
1414 2, 4, 2, 7, 4, 6, 0, 1, 1, 2,
1415 1, 2, 7, 4, 7, 6, 9, 10, 9, 12,
1416 1, 1, 1, 9, 9, 5, 0, 1, 1, 3,
1417 2, 0, 1, 1, 3, 1, 1, 2, 1, 3,
1418 1, 3, 4, 5, 2, 3, 5, 1, 3, 3,
1419 2, 4, 3, 1, 1, 1, 9, 7, 0, 3,
1420 1, 3, 1, 4, 2, 0, 1, 0, 3, 0,
1421 4, 1, 1, 1, 1, 1, 3, 3, 3, 3,
1422 7, 5, 1, 3, 1, 4, 7, 5, 1, 2,
1423 2, 0, 5, 1, 1, 1, 3, 7, 5, 1,
1424 3, 1, 7, 5, 1, 3, 4, 0, 0, 1,
1425 1, 1, 1, 2, 2, 0, 1, 0, 1, 1,
1426 2, 1, 1, 1, 2, 2, 2, 0, 1
1430 #define yyerrok (yyerrstatus = 0)
1431 #define yyclearin (yychar = YYEMPTY)
1432 #define YYEMPTY (-2)
1435 #define YYACCEPT goto yyacceptlab
1436 #define YYABORT goto yyabortlab
1437 #define YYERROR goto yyerrorlab
1440 #define YYRECOVERING() (!!yyerrstatus)
1442 #define YYBACKUP(Token, Value) \
1444 if (yychar == YYEMPTY) \
1448 YYPOPSTACK (yylen); \
1454 yyerror (parser, YY_("syntax error: cannot back up")); \
1461 #define YYERRCODE 256
1470 # define YYFPRINTF fprintf
1473 # define YYDPRINTF(Args) \
1480 #ifndef YY_LOCATION_PRINT
1481 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1485 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1489 YYFPRINTF (stderr, "%s ", Title); \
1490 yy_symbol_print (stderr, \
1491 Type, Value, parser); \
1492 YYFPRINTF (stderr, "\n"); \
1504 FILE *yyo = yyoutput;
1511 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1524 YYFPRINTF (yyoutput,
"%s %s (",
1525 yytype <
YYNTOKENS ?
"token" :
"nterm", yytname[yytype]);
1527 yy_symbol_value_print (yyoutput, yytype, yyvaluep, parser);
1528 YYFPRINTF (yyoutput,
")");
1539 YYFPRINTF (stderr,
"Stack now");
1540 for (; yybottom <= yytop; yybottom++)
1542 int yybot = *yybottom;
1543 YYFPRINTF (stderr,
" %d", yybot);
1545 YYFPRINTF (stderr,
"\n");
1548 # define YY_STACK_PRINT(Bottom, Top) \
1551 yy_stack_print ((Bottom), (Top)); \
1562 unsigned long int yylno = yyrline[yyrule];
1563 int yynrhs =
yyr2[yyrule];
1565 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
1568 for (yyi = 0; yyi < yynrhs; yyi++)
1570 YYFPRINTF (stderr,
" $%d = ", yyi + 1);
1571 yy_symbol_print (stderr,
1572 yystos[yyssp[yyi + 1 - yynrhs]],
1573 &(yyvsp[(yyi + 1) - (yynrhs)])
1575 YYFPRINTF (stderr,
"\n");
1579 # define YY_REDUCE_PRINT(Rule) \
1582 yy_reduce_print (yyssp, yyvsp, Rule, parser); \
1589 # define YYDPRINTF(Args)
1590 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1591 # define YY_STACK_PRINT(Bottom, Top)
1592 # define YY_REDUCE_PRINT(Rule)
1598 # define YYINITDEPTH 200
1609 # define YYMAXDEPTH 10000
1616 # if defined __GLIBC__ && defined _STRING_H
1617 # define yystrlen strlen
1621 yystrlen (
const char *yystr)
1624 for (yylen = 0; yystr[yylen]; yylen++)
1632 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1633 # define yystpcpy stpcpy
1638 yystpcpy (
char *yydest,
const char *yysrc)
1641 const char *yys = yysrc;
1643 while ((*yyd++ = *yys++) !=
'\0')
1660 yytnamerr (
char *yyres,
const char *yystr)
1665 char const *yyp = yystr;
1672 goto do_not_strip_quotes;
1676 goto do_not_strip_quotes;
1689 do_not_strip_quotes: ;
1693 return yystrlen (yystr);
1695 return yystpcpy (yyres, yystr) - yyres;
1708 yysyntax_error (
YYSIZE_T *yymsg_alloc,
char **yymsg,
1713 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1717 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1748 yyarg[yycount++] = yytname[yytoken];
1754 int yyxbegin = yyn < 0 ? -yyn : 0;
1756 int yychecklim =
YYLAST - yyn + 1;
1760 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1764 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1770 yyarg[yycount++] = yytname[yyx];
1773 if (! (yysize <= yysize1
1784 # define YYCASE_(N, S) \
1788 YYCASE_(0,
YY_(
"syntax error"));
1789 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
1790 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1791 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1792 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1793 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1798 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1804 if (*yymsg_alloc < yysize)
1806 *yymsg_alloc = 2 * yysize;
1807 if (! (yysize <= *yymsg_alloc
1819 while ((*yyp = *yyformat) !=
'\0')
1820 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
1822 yyp += yytnamerr (yyp, yyarg[yyi++]);
1852 #line 320 "libinterp/parse-tree/oct-parse.yy"
1854 #line 1855 "libinterp/parse-tree/oct-parse.cc"
1858 #line 320 "libinterp/parse-tree/oct-parse.yy"
1860 #line 1861 "libinterp/parse-tree/oct-parse.cc"
1864 #line 320 "libinterp/parse-tree/oct-parse.yy"
1866 #line 1867 "libinterp/parse-tree/oct-parse.cc"
1870 #line 320 "libinterp/parse-tree/oct-parse.yy"
1872 #line 1873 "libinterp/parse-tree/oct-parse.cc"
1876 #line 320 "libinterp/parse-tree/oct-parse.yy"
1878 #line 1879 "libinterp/parse-tree/oct-parse.cc"
1882 #line 320 "libinterp/parse-tree/oct-parse.yy"
1884 #line 1885 "libinterp/parse-tree/oct-parse.cc"
1888 #line 320 "libinterp/parse-tree/oct-parse.yy"
1890 #line 1891 "libinterp/parse-tree/oct-parse.cc"
1894 #line 320 "libinterp/parse-tree/oct-parse.yy"
1896 #line 1897 "libinterp/parse-tree/oct-parse.cc"
1900 #line 320 "libinterp/parse-tree/oct-parse.yy"
1902 #line 1903 "libinterp/parse-tree/oct-parse.cc"
1906 #line 320 "libinterp/parse-tree/oct-parse.yy"
1908 #line 1909 "libinterp/parse-tree/oct-parse.cc"
1912 #line 320 "libinterp/parse-tree/oct-parse.yy"
1914 #line 1915 "libinterp/parse-tree/oct-parse.cc"
1918 #line 320 "libinterp/parse-tree/oct-parse.yy"
1920 #line 1921 "libinterp/parse-tree/oct-parse.cc"
1924 #line 320 "libinterp/parse-tree/oct-parse.yy"
1926 #line 1927 "libinterp/parse-tree/oct-parse.cc"
1930 #line 320 "libinterp/parse-tree/oct-parse.yy"
1932 #line 1933 "libinterp/parse-tree/oct-parse.cc"
1936 #line 320 "libinterp/parse-tree/oct-parse.yy"
1938 #line 1939 "libinterp/parse-tree/oct-parse.cc"
1942 #line 320 "libinterp/parse-tree/oct-parse.yy"
1944 #line 1945 "libinterp/parse-tree/oct-parse.cc"
1948 #line 320 "libinterp/parse-tree/oct-parse.yy"
1950 #line 1951 "libinterp/parse-tree/oct-parse.cc"
1954 #line 320 "libinterp/parse-tree/oct-parse.yy"
1956 #line 1957 "libinterp/parse-tree/oct-parse.cc"
1960 #line 320 "libinterp/parse-tree/oct-parse.yy"
1962 #line 1963 "libinterp/parse-tree/oct-parse.cc"
1966 #line 320 "libinterp/parse-tree/oct-parse.yy"
1968 #line 1969 "libinterp/parse-tree/oct-parse.cc"
1972 #line 320 "libinterp/parse-tree/oct-parse.yy"
1974 #line 1975 "libinterp/parse-tree/oct-parse.cc"
1978 #line 320 "libinterp/parse-tree/oct-parse.yy"
1980 #line 1981 "libinterp/parse-tree/oct-parse.cc"
1984 #line 320 "libinterp/parse-tree/oct-parse.yy"
1986 #line 1987 "libinterp/parse-tree/oct-parse.cc"
1990 #line 320 "libinterp/parse-tree/oct-parse.yy"
1992 #line 1993 "libinterp/parse-tree/oct-parse.cc"
1996 #line 320 "libinterp/parse-tree/oct-parse.yy"
1998 #line 1999 "libinterp/parse-tree/oct-parse.cc"
2002 #line 320 "libinterp/parse-tree/oct-parse.yy"
2004 #line 2005 "libinterp/parse-tree/oct-parse.cc"
2008 #line 320 "libinterp/parse-tree/oct-parse.yy"
2010 #line 2011 "libinterp/parse-tree/oct-parse.cc"
2014 #line 320 "libinterp/parse-tree/oct-parse.yy"
2016 #line 2017 "libinterp/parse-tree/oct-parse.cc"
2020 #line 320 "libinterp/parse-tree/oct-parse.yy"
2022 #line 2023 "libinterp/parse-tree/oct-parse.cc"
2026 #line 320 "libinterp/parse-tree/oct-parse.yy"
2028 #line 2029 "libinterp/parse-tree/oct-parse.cc"
2032 #line 320 "libinterp/parse-tree/oct-parse.yy"
2034 #line 2035 "libinterp/parse-tree/oct-parse.cc"
2038 #line 320 "libinterp/parse-tree/oct-parse.yy"
2040 #line 2041 "libinterp/parse-tree/oct-parse.cc"
2044 #line 320 "libinterp/parse-tree/oct-parse.yy"
2046 #line 2047 "libinterp/parse-tree/oct-parse.cc"
2050 #line 320 "libinterp/parse-tree/oct-parse.yy"
2052 #line 2053 "libinterp/parse-tree/oct-parse.cc"
2056 #line 320 "libinterp/parse-tree/oct-parse.yy"
2058 #line 2059 "libinterp/parse-tree/oct-parse.cc"
2062 #line 320 "libinterp/parse-tree/oct-parse.yy"
2064 #line 2065 "libinterp/parse-tree/oct-parse.cc"
2068 #line 320 "libinterp/parse-tree/oct-parse.yy"
2070 #line 2071 "libinterp/parse-tree/oct-parse.cc"
2074 #line 320 "libinterp/parse-tree/oct-parse.yy"
2076 #line 2077 "libinterp/parse-tree/oct-parse.cc"
2080 #line 320 "libinterp/parse-tree/oct-parse.yy"
2082 #line 2083 "libinterp/parse-tree/oct-parse.cc"
2086 #line 320 "libinterp/parse-tree/oct-parse.yy"
2088 #line 2089 "libinterp/parse-tree/oct-parse.cc"
2092 #line 320 "libinterp/parse-tree/oct-parse.yy"
2094 #line 2095 "libinterp/parse-tree/oct-parse.cc"
2098 #line 320 "libinterp/parse-tree/oct-parse.yy"
2100 #line 2101 "libinterp/parse-tree/oct-parse.cc"
2104 #line 320 "libinterp/parse-tree/oct-parse.yy"
2106 #line 2107 "libinterp/parse-tree/oct-parse.cc"
2110 #line 320 "libinterp/parse-tree/oct-parse.yy"
2112 #line 2113 "libinterp/parse-tree/oct-parse.cc"
2116 #line 320 "libinterp/parse-tree/oct-parse.yy"
2118 #line 2119 "libinterp/parse-tree/oct-parse.cc"
2122 #line 320 "libinterp/parse-tree/oct-parse.yy"
2124 #line 2125 "libinterp/parse-tree/oct-parse.cc"
2128 #line 320 "libinterp/parse-tree/oct-parse.yy"
2130 #line 2131 "libinterp/parse-tree/oct-parse.cc"
2134 #line 320 "libinterp/parse-tree/oct-parse.yy"
2136 #line 2137 "libinterp/parse-tree/oct-parse.cc"
2140 #line 320 "libinterp/parse-tree/oct-parse.yy"
2142 #line 2143 "libinterp/parse-tree/oct-parse.cc"
2146 #line 320 "libinterp/parse-tree/oct-parse.yy"
2148 #line 2149 "libinterp/parse-tree/oct-parse.cc"
2152 #line 320 "libinterp/parse-tree/oct-parse.yy"
2154 #line 2155 "libinterp/parse-tree/oct-parse.cc"
2158 #line 320 "libinterp/parse-tree/oct-parse.yy"
2160 #line 2161 "libinterp/parse-tree/oct-parse.cc"
2164 #line 320 "libinterp/parse-tree/oct-parse.yy"
2166 #line 2167 "libinterp/parse-tree/oct-parse.cc"
2170 #line 320 "libinterp/parse-tree/oct-parse.yy"
2172 #line 2173 "libinterp/parse-tree/oct-parse.cc"
2176 #line 320 "libinterp/parse-tree/oct-parse.yy"
2178 #line 2179 "libinterp/parse-tree/oct-parse.cc"
2182 #line 320 "libinterp/parse-tree/oct-parse.yy"
2184 #line 2185 "libinterp/parse-tree/oct-parse.cc"
2188 #line 320 "libinterp/parse-tree/oct-parse.yy"
2190 #line 2191 "libinterp/parse-tree/oct-parse.cc"
2194 #line 320 "libinterp/parse-tree/oct-parse.yy"
2196 #line 2197 "libinterp/parse-tree/oct-parse.cc"
2200 #line 320 "libinterp/parse-tree/oct-parse.yy"
2202 #line 2203 "libinterp/parse-tree/oct-parse.cc"
2206 #line 320 "libinterp/parse-tree/oct-parse.yy"
2208 #line 2209 "libinterp/parse-tree/oct-parse.cc"
2212 #line 320 "libinterp/parse-tree/oct-parse.yy"
2214 #line 2215 "libinterp/parse-tree/oct-parse.cc"
2218 #line 320 "libinterp/parse-tree/oct-parse.yy"
2220 #line 2221 "libinterp/parse-tree/oct-parse.cc"
2224 #line 320 "libinterp/parse-tree/oct-parse.yy"
2226 #line 2227 "libinterp/parse-tree/oct-parse.cc"
2230 #line 320 "libinterp/parse-tree/oct-parse.yy"
2232 #line 2233 "libinterp/parse-tree/oct-parse.cc"
2236 #line 320 "libinterp/parse-tree/oct-parse.yy"
2238 #line 2239 "libinterp/parse-tree/oct-parse.cc"
2242 #line 320 "libinterp/parse-tree/oct-parse.yy"
2244 #line 2245 "libinterp/parse-tree/oct-parse.cc"
2248 #line 320 "libinterp/parse-tree/oct-parse.yy"
2250 #line 2251 "libinterp/parse-tree/oct-parse.cc"
2254 #line 320 "libinterp/parse-tree/oct-parse.yy"
2256 #line 2257 "libinterp/parse-tree/oct-parse.cc"
2260 #line 320 "libinterp/parse-tree/oct-parse.yy"
2262 #line 2263 "libinterp/parse-tree/oct-parse.cc"
2266 #line 320 "libinterp/parse-tree/oct-parse.yy"
2268 #line 2269 "libinterp/parse-tree/oct-parse.cc"
2272 #line 320 "libinterp/parse-tree/oct-parse.yy"
2274 #line 2275 "libinterp/parse-tree/oct-parse.cc"
2278 #line 320 "libinterp/parse-tree/oct-parse.yy"
2280 #line 2281 "libinterp/parse-tree/oct-parse.cc"
2284 #line 320 "libinterp/parse-tree/oct-parse.yy"
2286 #line 2287 "libinterp/parse-tree/oct-parse.cc"
2290 #line 320 "libinterp/parse-tree/oct-parse.yy"
2292 #line 2293 "libinterp/parse-tree/oct-parse.cc"
2296 #line 320 "libinterp/parse-tree/oct-parse.yy"
2298 #line 2299 "libinterp/parse-tree/oct-parse.cc"
2302 #line 320 "libinterp/parse-tree/oct-parse.yy"
2304 #line 2305 "libinterp/parse-tree/oct-parse.cc"
2308 #line 320 "libinterp/parse-tree/oct-parse.yy"
2310 #line 2311 "libinterp/parse-tree/oct-parse.cc"
2314 #line 320 "libinterp/parse-tree/oct-parse.yy"
2316 #line 2317 "libinterp/parse-tree/oct-parse.cc"
2320 #line 320 "libinterp/parse-tree/oct-parse.yy"
2322 #line 2323 "libinterp/parse-tree/oct-parse.cc"
2326 #line 320 "libinterp/parse-tree/oct-parse.yy"
2328 #line 2329 "libinterp/parse-tree/oct-parse.cc"
2332 #line 320 "libinterp/parse-tree/oct-parse.yy"
2334 #line 2335 "libinterp/parse-tree/oct-parse.cc"
2338 #line 323 "libinterp/parse-tree/oct-parse.yy"
2340 #line 2341 "libinterp/parse-tree/oct-parse.cc"
2344 #line 325 "libinterp/parse-tree/oct-parse.yy"
2345 {
delete ((*yyvaluep).tree_type); }
2346 #line 2347 "libinterp/parse-tree/oct-parse.cc"
2350 #line 350 "libinterp/parse-tree/oct-parse.yy"
2351 {
delete ((*yyvaluep).tree_statement_list_type); }
2352 #line 2353 "libinterp/parse-tree/oct-parse.cc"
2356 #line 350 "libinterp/parse-tree/oct-parse.yy"
2357 {
delete ((*yyvaluep).tree_statement_list_type); }
2358 #line 2359 "libinterp/parse-tree/oct-parse.cc"
2362 #line 350 "libinterp/parse-tree/oct-parse.yy"
2363 {
delete ((*yyvaluep).tree_statement_list_type); }
2364 #line 2365 "libinterp/parse-tree/oct-parse.cc"
2368 #line 350 "libinterp/parse-tree/oct-parse.yy"
2369 {
delete ((*yyvaluep).tree_statement_list_type); }
2370 #line 2371 "libinterp/parse-tree/oct-parse.cc"
2374 #line 350 "libinterp/parse-tree/oct-parse.yy"
2375 {
delete ((*yyvaluep).tree_statement_list_type); }
2376 #line 2377 "libinterp/parse-tree/oct-parse.cc"
2380 #line 349 "libinterp/parse-tree/oct-parse.yy"
2381 {
delete ((*yyvaluep).tree_statement_type); }
2382 #line 2383 "libinterp/parse-tree/oct-parse.cc"
2386 #line 335 "libinterp/parse-tree/oct-parse.yy"
2387 {
delete ((*yyvaluep).tree_index_expression_type); }
2388 #line 2389 "libinterp/parse-tree/oct-parse.cc"
2392 #line 337 "libinterp/parse-tree/oct-parse.yy"
2393 {
delete ((*yyvaluep).tree_argument_list_type); }
2394 #line 2395 "libinterp/parse-tree/oct-parse.cc"
2398 #line 334 "libinterp/parse-tree/oct-parse.yy"
2399 {
delete ((*yyvaluep).tree_identifier_type); }
2400 #line 2401 "libinterp/parse-tree/oct-parse.cc"
2404 #line 331 "libinterp/parse-tree/oct-parse.yy"
2405 {
delete ((*yyvaluep).tree_funcall_type); }
2406 #line 2407 "libinterp/parse-tree/oct-parse.cc"
2410 #line 331 "libinterp/parse-tree/oct-parse.yy"
2411 {
delete ((*yyvaluep).tree_funcall_type); }
2412 #line 2413 "libinterp/parse-tree/oct-parse.cc"
2416 #line 329 "libinterp/parse-tree/oct-parse.yy"
2417 {
delete ((*yyvaluep).tree_constant_type); }
2418 #line 2419 "libinterp/parse-tree/oct-parse.cc"
2422 #line 329 "libinterp/parse-tree/oct-parse.yy"
2423 {
delete ((*yyvaluep).tree_constant_type); }
2424 #line 2425 "libinterp/parse-tree/oct-parse.cc"
2428 #line 328 "libinterp/parse-tree/oct-parse.yy"
2429 {
delete ((*yyvaluep).tree_expression_type); }
2430 #line 2431 "libinterp/parse-tree/oct-parse.cc"
2434 #line 326 "libinterp/parse-tree/oct-parse.yy"
2435 {
delete ((*yyvaluep).tree_matrix_type); }
2436 #line 2437 "libinterp/parse-tree/oct-parse.cc"
2440 #line 328 "libinterp/parse-tree/oct-parse.yy"
2441 {
delete ((*yyvaluep).tree_expression_type); }
2442 #line 2443 "libinterp/parse-tree/oct-parse.cc"
2446 #line 327 "libinterp/parse-tree/oct-parse.yy"
2447 {
delete ((*yyvaluep).tree_cell_type); }
2448 #line 2449 "libinterp/parse-tree/oct-parse.cc"
2452 #line 337 "libinterp/parse-tree/oct-parse.yy"
2453 {
delete ((*yyvaluep).tree_argument_list_type); }
2454 #line 2455 "libinterp/parse-tree/oct-parse.cc"
2458 #line 330 "libinterp/parse-tree/oct-parse.yy"
2459 {
delete ((*yyvaluep).tree_fcn_handle_type); }
2460 #line 2461 "libinterp/parse-tree/oct-parse.cc"
2464 #line 333 "libinterp/parse-tree/oct-parse.yy"
2465 {
delete ((*yyvaluep).tree_anon_fcn_handle_type); }
2466 #line 2467 "libinterp/parse-tree/oct-parse.cc"
2470 #line 328 "libinterp/parse-tree/oct-parse.yy"
2471 {
delete ((*yyvaluep).tree_expression_type); }
2472 #line 2473 "libinterp/parse-tree/oct-parse.cc"
2476 #line 329 "libinterp/parse-tree/oct-parse.yy"
2477 {
delete ((*yyvaluep).tree_constant_type); }
2478 #line 2479 "libinterp/parse-tree/oct-parse.cc"
2482 #line 334 "libinterp/parse-tree/oct-parse.yy"
2483 {
delete ((*yyvaluep).tree_identifier_type); }
2484 #line 2485 "libinterp/parse-tree/oct-parse.cc"
2488 #line 337 "libinterp/parse-tree/oct-parse.yy"
2489 {
delete ((*yyvaluep).tree_argument_list_type); }
2490 #line 2491 "libinterp/parse-tree/oct-parse.cc"
2494 #line 328 "libinterp/parse-tree/oct-parse.yy"
2495 {
delete ((*yyvaluep).tree_expression_type); }
2496 #line 2497 "libinterp/parse-tree/oct-parse.cc"
2500 #line 328 "libinterp/parse-tree/oct-parse.yy"
2501 {
delete ((*yyvaluep).tree_expression_type); }
2502 #line 2503 "libinterp/parse-tree/oct-parse.cc"
2506 #line 328 "libinterp/parse-tree/oct-parse.yy"
2507 {
delete ((*yyvaluep).tree_expression_type); }
2508 #line 2509 "libinterp/parse-tree/oct-parse.cc"
2512 #line 336 "libinterp/parse-tree/oct-parse.yy"
2513 {
delete ((*yyvaluep).tree_colon_expression_type); }
2514 #line 2515 "libinterp/parse-tree/oct-parse.cc"
2518 #line 328 "libinterp/parse-tree/oct-parse.yy"
2519 {
delete ((*yyvaluep).tree_expression_type); }
2520 #line 2521 "libinterp/parse-tree/oct-parse.cc"
2524 #line 337 "libinterp/parse-tree/oct-parse.yy"
2525 {
delete ((*yyvaluep).tree_argument_list_type); }
2526 #line 2527 "libinterp/parse-tree/oct-parse.cc"
2530 #line 328 "libinterp/parse-tree/oct-parse.yy"
2531 {
delete ((*yyvaluep).tree_expression_type); }
2532 #line 2533 "libinterp/parse-tree/oct-parse.cc"
2536 #line 328 "libinterp/parse-tree/oct-parse.yy"
2537 {
delete ((*yyvaluep).tree_expression_type); }
2538 #line 2539 "libinterp/parse-tree/oct-parse.cc"
2542 #line 339 "libinterp/parse-tree/oct-parse.yy"
2543 {
delete ((*yyvaluep).tree_command_type); }
2544 #line 2545 "libinterp/parse-tree/oct-parse.cc"
2548 #line 348 "libinterp/parse-tree/oct-parse.yy"
2549 {
delete ((*yyvaluep).tree_decl_command_type); }
2550 #line 2551 "libinterp/parse-tree/oct-parse.cc"
2554 #line 347 "libinterp/parse-tree/oct-parse.yy"
2555 {
delete ((*yyvaluep).tree_decl_init_list_type); }
2556 #line 2557 "libinterp/parse-tree/oct-parse.cc"
2560 #line 346 "libinterp/parse-tree/oct-parse.yy"
2561 {
delete ((*yyvaluep).tree_decl_elt_type); }
2562 #line 2563 "libinterp/parse-tree/oct-parse.cc"
2566 #line 339 "libinterp/parse-tree/oct-parse.yy"
2567 {
delete ((*yyvaluep).tree_command_type); }
2568 #line 2569 "libinterp/parse-tree/oct-parse.cc"
2572 #line 340 "libinterp/parse-tree/oct-parse.yy"
2573 {
delete ((*yyvaluep).tree_if_command_type); }
2574 #line 2575 "libinterp/parse-tree/oct-parse.cc"
2578 #line 342 "libinterp/parse-tree/oct-parse.yy"
2579 {
delete ((*yyvaluep).tree_if_command_list_type); }
2580 #line 2581 "libinterp/parse-tree/oct-parse.cc"
2584 #line 342 "libinterp/parse-tree/oct-parse.yy"
2585 {
delete ((*yyvaluep).tree_if_command_list_type); }
2586 #line 2587 "libinterp/parse-tree/oct-parse.cc"
2590 #line 341 "libinterp/parse-tree/oct-parse.yy"
2591 {
delete ((*yyvaluep).tree_if_clause_type); }
2592 #line 2593 "libinterp/parse-tree/oct-parse.cc"
2596 #line 341 "libinterp/parse-tree/oct-parse.yy"
2597 {
delete ((*yyvaluep).tree_if_clause_type); }
2598 #line 2599 "libinterp/parse-tree/oct-parse.cc"
2602 #line 343 "libinterp/parse-tree/oct-parse.yy"
2603 {
delete ((*yyvaluep).tree_switch_command_type); }
2604 #line 2605 "libinterp/parse-tree/oct-parse.cc"
2608 #line 345 "libinterp/parse-tree/oct-parse.yy"
2609 {
delete ((*yyvaluep).tree_switch_case_list_type); }
2610 #line 2611 "libinterp/parse-tree/oct-parse.cc"
2614 #line 345 "libinterp/parse-tree/oct-parse.yy"
2615 {
delete ((*yyvaluep).tree_switch_case_list_type); }
2616 #line 2617 "libinterp/parse-tree/oct-parse.cc"
2620 #line 344 "libinterp/parse-tree/oct-parse.yy"
2621 {
delete ((*yyvaluep).tree_switch_case_type); }
2622 #line 2623 "libinterp/parse-tree/oct-parse.cc"
2626 #line 344 "libinterp/parse-tree/oct-parse.yy"
2627 {
delete ((*yyvaluep).tree_switch_case_type); }
2628 #line 2629 "libinterp/parse-tree/oct-parse.cc"
2632 #line 339 "libinterp/parse-tree/oct-parse.yy"
2633 {
delete ((*yyvaluep).tree_command_type); }
2634 #line 2635 "libinterp/parse-tree/oct-parse.cc"
2638 #line 339 "libinterp/parse-tree/oct-parse.yy"
2639 {
delete ((*yyvaluep).tree_command_type); }
2640 #line 2641 "libinterp/parse-tree/oct-parse.cc"
2644 #line 339 "libinterp/parse-tree/oct-parse.yy"
2645 {
delete ((*yyvaluep).tree_command_type); }
2646 #line 2647 "libinterp/parse-tree/oct-parse.cc"
2650 #line 338 "libinterp/parse-tree/oct-parse.yy"
2651 {
delete ((*yyvaluep).tree_parameter_list_type); }
2652 #line 2653 "libinterp/parse-tree/oct-parse.cc"
2656 #line 338 "libinterp/parse-tree/oct-parse.yy"
2657 {
delete ((*yyvaluep).tree_parameter_list_type); }
2658 #line 2659 "libinterp/parse-tree/oct-parse.cc"
2662 #line 338 "libinterp/parse-tree/oct-parse.yy"
2663 {
delete ((*yyvaluep).tree_parameter_list_type); }
2664 #line 2665 "libinterp/parse-tree/oct-parse.cc"
2668 #line 346 "libinterp/parse-tree/oct-parse.yy"
2669 {
delete ((*yyvaluep).tree_decl_elt_type); }
2670 #line 2671 "libinterp/parse-tree/oct-parse.cc"
2674 #line 338 "libinterp/parse-tree/oct-parse.yy"
2675 {
delete ((*yyvaluep).tree_parameter_list_type); }
2676 #line 2677 "libinterp/parse-tree/oct-parse.cc"
2680 #line 338 "libinterp/parse-tree/oct-parse.yy"
2681 {
delete ((*yyvaluep).tree_parameter_list_type); }
2682 #line 2683 "libinterp/parse-tree/oct-parse.cc"
2686 #line 339 "libinterp/parse-tree/oct-parse.yy"
2687 {
delete ((*yyvaluep).tree_command_type); }
2688 #line 2689 "libinterp/parse-tree/oct-parse.cc"
2692 #line 320 "libinterp/parse-tree/oct-parse.yy"
2694 #line 2695 "libinterp/parse-tree/oct-parse.cc"
2698 #line 332 "libinterp/parse-tree/oct-parse.yy"
2699 {
delete ((*yyvaluep).tree_function_def_type); }
2700 #line 2701 "libinterp/parse-tree/oct-parse.cc"
2704 #line 334 "libinterp/parse-tree/oct-parse.yy"
2705 {
delete ((*yyvaluep).tree_identifier_type); }
2706 #line 2707 "libinterp/parse-tree/oct-parse.cc"
2710 #line 351 "libinterp/parse-tree/oct-parse.yy"
2711 {
delete ((*yyvaluep).octave_user_function_type); }
2712 #line 2713 "libinterp/parse-tree/oct-parse.cc"
2716 #line 351 "libinterp/parse-tree/oct-parse.yy"
2717 {
delete ((*yyvaluep).octave_user_function_type); }
2718 #line 2719 "libinterp/parse-tree/oct-parse.cc"
2722 #line 349 "libinterp/parse-tree/oct-parse.yy"
2723 {
delete ((*yyvaluep).tree_statement_type); }
2724 #line 2725 "libinterp/parse-tree/oct-parse.cc"
2728 #line 320 "libinterp/parse-tree/oct-parse.yy"
2730 #line 2731 "libinterp/parse-tree/oct-parse.cc"
2734 #line 353 "libinterp/parse-tree/oct-parse.yy"
2735 {
delete ((*yyvaluep).tree_classdef_type); }
2736 #line 2737 "libinterp/parse-tree/oct-parse.cc"
2740 #line 355 "libinterp/parse-tree/oct-parse.yy"
2741 {
delete ((*yyvaluep).tree_classdef_attribute_list_type); }
2742 #line 2743 "libinterp/parse-tree/oct-parse.cc"
2746 #line 355 "libinterp/parse-tree/oct-parse.yy"
2747 {
delete ((*yyvaluep).tree_classdef_attribute_list_type); }
2748 #line 2749 "libinterp/parse-tree/oct-parse.cc"
2752 #line 354 "libinterp/parse-tree/oct-parse.yy"
2753 {
delete ((*yyvaluep).tree_classdef_attribute_type); }
2754 #line 2755 "libinterp/parse-tree/oct-parse.cc"
2758 #line 357 "libinterp/parse-tree/oct-parse.yy"
2759 {
delete ((*yyvaluep).tree_classdef_superclass_list_type); }
2760 #line 2761 "libinterp/parse-tree/oct-parse.cc"
2764 #line 357 "libinterp/parse-tree/oct-parse.yy"
2765 {
delete ((*yyvaluep).tree_classdef_superclass_list_type); }
2766 #line 2767 "libinterp/parse-tree/oct-parse.cc"
2770 #line 356 "libinterp/parse-tree/oct-parse.yy"
2771 {
delete ((*yyvaluep).tree_classdef_superclass_type); }
2772 #line 2773 "libinterp/parse-tree/oct-parse.cc"
2776 #line 358 "libinterp/parse-tree/oct-parse.yy"
2777 {
delete ((*yyvaluep).tree_classdef_body_type); }
2778 #line 2779 "libinterp/parse-tree/oct-parse.cc"
2782 #line 361 "libinterp/parse-tree/oct-parse.yy"
2783 {
delete ((*yyvaluep).tree_classdef_properties_block_type); }
2784 #line 2785 "libinterp/parse-tree/oct-parse.cc"
2788 #line 360 "libinterp/parse-tree/oct-parse.yy"
2789 {
delete ((*yyvaluep).tree_classdef_property_list_type); }
2790 #line 2791 "libinterp/parse-tree/oct-parse.cc"
2794 #line 359 "libinterp/parse-tree/oct-parse.yy"
2795 {
delete ((*yyvaluep).tree_classdef_property_type); }
2796 #line 2797 "libinterp/parse-tree/oct-parse.cc"
2800 #line 363 "libinterp/parse-tree/oct-parse.yy"
2801 {
delete ((*yyvaluep).tree_classdef_methods_block_type); }
2802 #line 2803 "libinterp/parse-tree/oct-parse.cc"
2806 #line 351 "libinterp/parse-tree/oct-parse.yy"
2807 {
delete ((*yyvaluep).octave_user_function_type); }
2808 #line 2809 "libinterp/parse-tree/oct-parse.cc"
2812 #line 332 "libinterp/parse-tree/oct-parse.yy"
2813 {
delete ((*yyvaluep).tree_function_def_type); }
2814 #line 2815 "libinterp/parse-tree/oct-parse.cc"
2818 #line 332 "libinterp/parse-tree/oct-parse.yy"
2819 {
delete ((*yyvaluep).tree_function_def_type); }
2820 #line 2821 "libinterp/parse-tree/oct-parse.cc"
2824 #line 362 "libinterp/parse-tree/oct-parse.yy"
2825 {
delete ((*yyvaluep).tree_classdef_methods_list_type); }
2826 #line 2827 "libinterp/parse-tree/oct-parse.cc"
2830 #line 366 "libinterp/parse-tree/oct-parse.yy"
2831 {
delete ((*yyvaluep).tree_classdef_events_block_type); }
2832 #line 2833 "libinterp/parse-tree/oct-parse.cc"
2836 #line 365 "libinterp/parse-tree/oct-parse.yy"
2837 {
delete ((*yyvaluep).tree_classdef_events_list_type); }
2838 #line 2839 "libinterp/parse-tree/oct-parse.cc"
2842 #line 364 "libinterp/parse-tree/oct-parse.yy"
2843 {
delete ((*yyvaluep).tree_classdef_event_type); }
2844 #line 2845 "libinterp/parse-tree/oct-parse.cc"
2848 #line 369 "libinterp/parse-tree/oct-parse.yy"
2849 {
delete ((*yyvaluep).tree_classdef_enum_block_type); }
2850 #line 2851 "libinterp/parse-tree/oct-parse.cc"
2854 #line 368 "libinterp/parse-tree/oct-parse.yy"
2855 {
delete ((*yyvaluep).tree_classdef_enum_list_type); }
2856 #line 2857 "libinterp/parse-tree/oct-parse.cc"
2860 #line 367 "libinterp/parse-tree/oct-parse.yy"
2861 {
delete ((*yyvaluep).tree_classdef_enum_type); }
2862 #line 2863 "libinterp/parse-tree/oct-parse.cc"
2866 #line 322 "libinterp/parse-tree/oct-parse.yy"
2868 #line 2869 "libinterp/parse-tree/oct-parse.cc"
2872 #line 321 "libinterp/parse-tree/oct-parse.yy"
2874 #line 2875 "libinterp/parse-tree/oct-parse.cc"
2878 #line 321 "libinterp/parse-tree/oct-parse.yy"
2880 #line 2881 "libinterp/parse-tree/oct-parse.cc"
2884 #line 321 "libinterp/parse-tree/oct-parse.yy"
2886 #line 2887 "libinterp/parse-tree/oct-parse.cc"
2890 #line 321 "libinterp/parse-tree/oct-parse.yy"
2892 #line 2893 "libinterp/parse-tree/oct-parse.cc"
2896 #line 321 "libinterp/parse-tree/oct-parse.yy"
2898 #line 2899 "libinterp/parse-tree/oct-parse.cc"
2902 #line 321 "libinterp/parse-tree/oct-parse.yy"
2904 #line 2905 "libinterp/parse-tree/oct-parse.cc"
3000 if (!yyps->yynew && yyps->yyss != yyps->yyssa)
3006 #define octave_nerrs yyps->octave_nerrs
3007 #define yystate yyps->yystate
3008 #define yyerrstatus yyps->yyerrstatus
3009 #define yyssa yyps->yyssa
3010 #define yyss yyps->yyss
3011 #define yyssp yyps->yyssp
3012 #define yyvsa yyps->yyvsa
3013 #define yyvs yyps->yyvs
3014 #define yyvsp yyps->yyvsp
3015 #define yystacksize yyps->yystacksize
3046 char *yymsg = yymsgbuf;
3047 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
3050 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3059 goto yyread_pushed_token;
3066 YYDPRINTF ((stderr,
"Starting parse\n"));
3102 yyoverflow (
YY_(
"memory exhausted"),
3103 &yyss1, yysize *
sizeof (*yyssp),
3104 &yyvs1, yysize *
sizeof (*yyvsp),
3111 # ifndef YYSTACK_RELOCATE
3112 goto yyexhaustedlab;
3116 goto yyexhaustedlab;
3126 goto yyexhaustedlab;
3129 # undef YYSTACK_RELOCATE
3136 yyssp = yyss + yysize - 1;
3137 yyvsp =
yyvs + yysize - 1;
3139 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
3142 if (yyss + yystacksize - 1 <= yyssp)
3173 YYDPRINTF ((stderr,
"Return for a new token:\n"));
3178 yyread_pushed_token:
3179 YYDPRINTF ((stderr,
"Reading a token: "));
3180 yychar = yypushed_char;
3185 if (yychar <=
YYEOF)
3187 yychar = yytoken =
YYEOF;
3188 YYDPRINTF ((stderr,
"Now at end of input.\n"));
3254 yyval = yyvsp[1-yylen];
3261 #line 390 "libinterp/parse-tree/oct-parse.yy"
3263 (yyval.tree_type) = 0;
3264 parser.
stmt_list = (yyvsp[-1].tree_statement_list_type);
3267 #line 3268 "libinterp/parse-tree/oct-parse.cc"
3271 #line 396 "libinterp/parse-tree/oct-parse.yy"
3273 (yyval.tree_type) = 0;
3274 lexer.end_of_input =
true;
3275 parser.
stmt_list = (yyvsp[-1].tree_statement_list_type);
3278 #line 3279 "libinterp/parse-tree/oct-parse.cc"
3282 #line 403 "libinterp/parse-tree/oct-parse.yy"
3284 (yyval.tree_type) = 0;
3287 #line 3288 "libinterp/parse-tree/oct-parse.cc"
3291 #line 410 "libinterp/parse-tree/oct-parse.yy"
3293 YYUSE ((yyvsp[0].punct_type));
3295 (yyval.tree_statement_list_type) = 0;
3297 #line 3298 "libinterp/parse-tree/oct-parse.cc"
3301 #line 416 "libinterp/parse-tree/oct-parse.yy"
3302 { (yyval.tree_statement_list_type) = parser.
set_stmt_print_flag ((yyvsp[-1].tree_statement_list_type), (yyvsp[0].punct_type),
false); }
3303 #line 3304 "libinterp/parse-tree/oct-parse.cc"
3307 #line 420 "libinterp/parse-tree/oct-parse.yy"
3308 { (yyval.tree_statement_list_type) = parser.
make_statement_list ((yyvsp[0].tree_statement_type)); }
3309 #line 3310 "libinterp/parse-tree/oct-parse.cc"
3313 #line 422 "libinterp/parse-tree/oct-parse.yy"
3314 { (yyval.tree_statement_list_type) = parser.
append_statement_list ((yyvsp[-2].tree_statement_list_type), (yyvsp[-1].punct_type), (yyvsp[0].tree_statement_type),
false); }
3315 #line 3316 "libinterp/parse-tree/oct-parse.cc"
3319 #line 426 "libinterp/parse-tree/oct-parse.yy"
3321 #line 3322 "libinterp/parse-tree/oct-parse.cc"
3325 #line 428 "libinterp/parse-tree/oct-parse.yy"
3326 { (yyval.tree_statement_list_type) = (yyvsp[0].tree_statement_list_type); }
3327 #line 3328 "libinterp/parse-tree/oct-parse.cc"
3331 #line 432 "libinterp/parse-tree/oct-parse.yy"
3332 { (yyval.tree_statement_list_type) = parser.
set_stmt_print_flag ((yyvsp[-1].tree_statement_list_type), (yyvsp[0].punct_type),
true); }
3333 #line 3334 "libinterp/parse-tree/oct-parse.cc"
3337 #line 436 "libinterp/parse-tree/oct-parse.yy"
3338 { (yyval.tree_statement_list_type) = parser.
make_statement_list ((yyvsp[0].tree_statement_type)); }
3339 #line 3340 "libinterp/parse-tree/oct-parse.cc"
3343 #line 438 "libinterp/parse-tree/oct-parse.yy"
3344 { (yyval.tree_statement_list_type) = parser.
append_statement_list ((yyvsp[-2].tree_statement_list_type), (yyvsp[-1].punct_type), (yyvsp[0].tree_statement_type),
true); }
3345 #line 3346 "libinterp/parse-tree/oct-parse.cc"
3349 #line 442 "libinterp/parse-tree/oct-parse.yy"
3350 { (yyval.tree_statement_type) = parser.
make_statement ((yyvsp[0].tree_expression_type)); }
3351 #line 3352 "libinterp/parse-tree/oct-parse.cc"
3355 #line 444 "libinterp/parse-tree/oct-parse.yy"
3356 { (yyval.tree_statement_type) = parser.
make_statement ((yyvsp[0].tree_command_type)); }
3357 #line 3358 "libinterp/parse-tree/oct-parse.cc"
3361 #line 446 "libinterp/parse-tree/oct-parse.yy"
3362 { (yyval.tree_statement_type) = parser.
make_statement ((yyvsp[0].tree_index_expression_type)); }
3363 #line 3364 "libinterp/parse-tree/oct-parse.cc"
3367 #line 458 "libinterp/parse-tree/oct-parse.yy"
3369 (yyval.tree_index_expression_type) = parser.
make_index_expression ((yyvsp[-1].tree_identifier_type), (yyvsp[0].tree_argument_list_type),
'(');
3370 if (! (yyval.tree_index_expression_type))
3376 #line 3377 "libinterp/parse-tree/oct-parse.cc"
3380 #line 469 "libinterp/parse-tree/oct-parse.yy"
3381 { (yyval.tree_argument_list_type) =
new tree_argument_list ((yyvsp[0].tree_constant_type)); }
3382 #line 3383 "libinterp/parse-tree/oct-parse.cc"
3386 #line 471 "libinterp/parse-tree/oct-parse.yy"
3388 (yyvsp[-1].tree_argument_list_type)->
append ((yyvsp[0].tree_constant_type));
3389 (yyval.tree_argument_list_type) = (yyvsp[-1].tree_argument_list_type);
3391 #line 3392 "libinterp/parse-tree/oct-parse.cc"
3395 #line 482 "libinterp/parse-tree/oct-parse.yy"
3398 (yyval.tree_identifier_type) =
new tree_identifier (*sr, (yyvsp[0].tok_val)->line (), (yyvsp[0].tok_val)->
column ());
3400 #line 3401 "libinterp/parse-tree/oct-parse.cc"
3404 #line 490 "libinterp/parse-tree/oct-parse.yy"
3406 std::string method_nm = (yyvsp[0].tok_val)->superclass_method_name ();
3407 std::string class_nm = (yyvsp[0].tok_val)->superclass_class_name ();
3411 #line 3412 "libinterp/parse-tree/oct-parse.cc"
3415 #line 499 "libinterp/parse-tree/oct-parse.yy"
3421 #line 3422 "libinterp/parse-tree/oct-parse.cc"
3425 #line 507 "libinterp/parse-tree/oct-parse.yy"
3427 #line 3428 "libinterp/parse-tree/oct-parse.cc"
3431 #line 509 "libinterp/parse-tree/oct-parse.yy"
3433 #line 3434 "libinterp/parse-tree/oct-parse.cc"
3437 #line 513 "libinterp/parse-tree/oct-parse.yy"
3438 { (yyval.tree_constant_type) = parser.
make_constant (
NUM, (yyvsp[0].tok_val)); }
3439 #line 3440 "libinterp/parse-tree/oct-parse.cc"
3443 #line 515 "libinterp/parse-tree/oct-parse.yy"
3445 #line 3446 "libinterp/parse-tree/oct-parse.cc"
3449 #line 517 "libinterp/parse-tree/oct-parse.yy"
3450 { (yyval.tree_constant_type) = (yyvsp[0].tree_constant_type); }
3451 #line 3452 "libinterp/parse-tree/oct-parse.cc"
3455 #line 521 "libinterp/parse-tree/oct-parse.yy"
3456 { (yyval.tree_expression_type) = parser.
finish_matrix ((yyvsp[-1].tree_matrix_type)); }
3457 #line 3458 "libinterp/parse-tree/oct-parse.cc"
3461 #line 525 "libinterp/parse-tree/oct-parse.yy"
3462 { (yyval.tree_matrix_type) = (yyvsp[0].tree_argument_list_type) ?
new tree_matrix ((yyvsp[0].tree_argument_list_type)) : 0; }
3463 #line 3464 "libinterp/parse-tree/oct-parse.cc"
3467 #line 527 "libinterp/parse-tree/oct-parse.yy"
3469 if ((yyvsp[-2].tree_matrix_type))
3471 if ((yyvsp[0].tree_argument_list_type))
3472 (yyvsp[-2].tree_matrix_type)->
append ((yyvsp[0].tree_argument_list_type));
3474 (yyval.tree_matrix_type) = (yyvsp[-2].tree_matrix_type);
3477 (yyval.tree_matrix_type) = (yyvsp[0].tree_argument_list_type) ?
new tree_matrix ((yyvsp[0].tree_argument_list_type)) : 0;
3479 #line 3480 "libinterp/parse-tree/oct-parse.cc"
3483 #line 541 "libinterp/parse-tree/oct-parse.yy"
3484 { (yyval.tree_expression_type) = parser.
finish_cell ((yyvsp[-1].tree_cell_type)); }
3485 #line 3486 "libinterp/parse-tree/oct-parse.cc"
3489 #line 545 "libinterp/parse-tree/oct-parse.yy"
3490 { (yyval.tree_cell_type) = (yyvsp[0].tree_argument_list_type) ?
new tree_cell ((yyvsp[0].tree_argument_list_type)) : 0; }
3491 #line 3492 "libinterp/parse-tree/oct-parse.cc"
3495 #line 547 "libinterp/parse-tree/oct-parse.yy"
3497 if ((yyvsp[-2].tree_cell_type))
3499 if ((yyvsp[0].tree_argument_list_type))
3500 (yyvsp[-2].tree_cell_type)->
append ((yyvsp[0].tree_argument_list_type));
3502 (yyval.tree_cell_type) = (yyvsp[-2].tree_cell_type);
3505 (yyval.tree_cell_type) = (yyvsp[0].tree_argument_list_type) ?
new tree_cell ((yyvsp[0].tree_argument_list_type)) : 0;
3507 #line 3508 "libinterp/parse-tree/oct-parse.cc"
3511 #line 565 "libinterp/parse-tree/oct-parse.yy"
3512 { (yyval.tree_argument_list_type) = 0; }
3513 #line 3514 "libinterp/parse-tree/oct-parse.cc"
3517 #line 567 "libinterp/parse-tree/oct-parse.yy"
3518 { (yyval.tree_argument_list_type) = 0; }
3519 #line 3520 "libinterp/parse-tree/oct-parse.cc"
3523 #line 569 "libinterp/parse-tree/oct-parse.yy"
3524 { (yyval.tree_argument_list_type) = (yyvsp[0].tree_argument_list_type); }
3525 #line 3526 "libinterp/parse-tree/oct-parse.cc"
3529 #line 571 "libinterp/parse-tree/oct-parse.yy"
3530 { (yyval.tree_argument_list_type) = (yyvsp[-1].tree_argument_list_type); }
3531 #line 3532 "libinterp/parse-tree/oct-parse.cc"
3535 #line 573 "libinterp/parse-tree/oct-parse.yy"
3536 { (yyval.tree_argument_list_type) = (yyvsp[0].tree_argument_list_type); }
3537 #line 3538 "libinterp/parse-tree/oct-parse.cc"
3541 #line 575 "libinterp/parse-tree/oct-parse.yy"
3542 { (yyval.tree_argument_list_type) = (yyvsp[-1].tree_argument_list_type); }
3543 #line 3544 "libinterp/parse-tree/oct-parse.cc"
3547 #line 579 "libinterp/parse-tree/oct-parse.yy"
3549 (yyval.tree_fcn_handle_type) = parser.
make_fcn_handle ((yyvsp[0].tok_val));
3550 lexer.looking_at_function_handle--;
3552 #line 3553 "libinterp/parse-tree/oct-parse.cc"
3556 #line 586 "libinterp/parse-tree/oct-parse.yy"
3558 (yyval.tree_anon_fcn_handle_type) = parser.
make_anon_fcn_handle ((yyvsp[-2].tree_parameter_list_type), (yyvsp[0].tree_statement_type));
3559 lexer.nesting_level.remove ();
3561 #line 3562 "libinterp/parse-tree/oct-parse.cc"
3565 #line 593 "libinterp/parse-tree/oct-parse.yy"
3566 { (yyval.tree_expression_type) = (yyvsp[0].tree_identifier_type); }
3567 #line 3568 "libinterp/parse-tree/oct-parse.cc"
3571 #line 595 "libinterp/parse-tree/oct-parse.yy"
3572 { (yyval.tree_expression_type) = (yyvsp[0].tree_constant_type); }
3573 #line 3574 "libinterp/parse-tree/oct-parse.cc"
3577 #line 597 "libinterp/parse-tree/oct-parse.yy"
3578 { (yyval.tree_expression_type) = (yyvsp[0].tree_fcn_handle_type); }
3579 #line 3580 "libinterp/parse-tree/oct-parse.cc"
3583 #line 599 "libinterp/parse-tree/oct-parse.yy"
3585 lexer.looking_at_matrix_or_assign_lhs =
false;
3586 (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
3588 #line 3589 "libinterp/parse-tree/oct-parse.cc"
3592 #line 604 "libinterp/parse-tree/oct-parse.yy"
3593 { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
3594 #line 3595 "libinterp/parse-tree/oct-parse.cc"
3598 #line 606 "libinterp/parse-tree/oct-parse.yy"
3599 { (yyval.tree_expression_type) = (yyvsp[0].tree_funcall_type); }
3600 #line 3601 "libinterp/parse-tree/oct-parse.cc"
3604 #line 608 "libinterp/parse-tree/oct-parse.yy"
3605 { (yyval.tree_expression_type) = (yyvsp[0].tree_funcall_type); }
3606 #line 3607 "libinterp/parse-tree/oct-parse.cc"
3610 #line 610 "libinterp/parse-tree/oct-parse.yy"
3611 { (yyval.tree_expression_type) = (yyvsp[-1].tree_expression_type)->mark_in_parens (); }
3612 #line 3613 "libinterp/parse-tree/oct-parse.cc"
3616 #line 614 "libinterp/parse-tree/oct-parse.yy"
3618 YYUSE ((yyvsp[0].tok_val));
3623 #line 3624 "libinterp/parse-tree/oct-parse.cc"
3627 #line 623 "libinterp/parse-tree/oct-parse.yy"
3629 YYUSE ((yyvsp[0].tok_val));
3633 #line 3634 "libinterp/parse-tree/oct-parse.cc"
3637 #line 631 "libinterp/parse-tree/oct-parse.yy"
3638 { (yyval.tree_argument_list_type) =
new tree_argument_list ((yyvsp[0].tree_expression_type)); }
3639 #line 3640 "libinterp/parse-tree/oct-parse.cc"
3643 #line 633 "libinterp/parse-tree/oct-parse.yy"
3644 { (yyval.tree_argument_list_type) =
new tree_argument_list ((yyvsp[0].tree_constant_type)); }
3645 #line 3646 "libinterp/parse-tree/oct-parse.cc"
3649 #line 635 "libinterp/parse-tree/oct-parse.yy"
3650 { (yyval.tree_argument_list_type) =
new tree_argument_list ((yyvsp[0].tree_identifier_type)); }
3651 #line 3652 "libinterp/parse-tree/oct-parse.cc"
3655 #line 637 "libinterp/parse-tree/oct-parse.yy"
3657 (yyvsp[-2].tree_argument_list_type)->
append ((yyvsp[0].tree_constant_type));
3658 (yyval.tree_argument_list_type) = (yyvsp[-2].tree_argument_list_type);
3660 #line 3661 "libinterp/parse-tree/oct-parse.cc"
3664 #line 642 "libinterp/parse-tree/oct-parse.yy"
3666 (yyvsp[-2].tree_argument_list_type)->
append ((yyvsp[0].tree_identifier_type));
3667 (yyval.tree_argument_list_type) = (yyvsp[-2].tree_argument_list_type);
3669 #line 3670 "libinterp/parse-tree/oct-parse.cc"
3673 #line 647 "libinterp/parse-tree/oct-parse.yy"
3675 (yyvsp[-2].tree_argument_list_type)->
append ((yyvsp[0].tree_expression_type));
3676 (yyval.tree_argument_list_type) = (yyvsp[-2].tree_argument_list_type);
3678 #line 3679 "libinterp/parse-tree/oct-parse.cc"
3682 #line 654 "libinterp/parse-tree/oct-parse.yy"
3684 (yyval.dummy_type) = 0;
3685 lexer.looking_at_indirect_ref =
true;
3687 #line 3688 "libinterp/parse-tree/oct-parse.cc"
3691 #line 661 "libinterp/parse-tree/oct-parse.yy"
3692 { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
3693 #line 3694 "libinterp/parse-tree/oct-parse.cc"
3697 #line 663 "libinterp/parse-tree/oct-parse.yy"
3698 { (yyval.tree_expression_type) = parser.
make_postfix_op (
PLUS_PLUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3699 #line 3700 "libinterp/parse-tree/oct-parse.cc"
3703 #line 665 "libinterp/parse-tree/oct-parse.yy"
3704 { (yyval.tree_expression_type) = parser.
make_postfix_op (
MINUS_MINUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3705 #line 3706 "libinterp/parse-tree/oct-parse.cc"
3709 #line 667 "libinterp/parse-tree/oct-parse.yy"
3711 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-2].tree_expression_type), 0,
'(');
3712 if (! (yyval.tree_expression_type))
3718 #line 3719 "libinterp/parse-tree/oct-parse.cc"
3722 #line 676 "libinterp/parse-tree/oct-parse.yy"
3724 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type),
'(');
3725 if (! (yyval.tree_expression_type))
3731 #line 3732 "libinterp/parse-tree/oct-parse.cc"
3735 #line 685 "libinterp/parse-tree/oct-parse.yy"
3737 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-2].tree_expression_type), 0,
'{');
3738 if (! (yyval.tree_expression_type))
3744 #line 3745 "libinterp/parse-tree/oct-parse.cc"
3748 #line 694 "libinterp/parse-tree/oct-parse.yy"
3750 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type),
'{');
3751 if (! (yyval.tree_expression_type))
3757 #line 3758 "libinterp/parse-tree/oct-parse.cc"
3761 #line 703 "libinterp/parse-tree/oct-parse.yy"
3762 { (yyval.tree_expression_type) = parser.
make_postfix_op (
HERMITIAN, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3763 #line 3764 "libinterp/parse-tree/oct-parse.cc"
3767 #line 705 "libinterp/parse-tree/oct-parse.yy"
3768 { (yyval.tree_expression_type) = parser.
make_postfix_op (
TRANSPOSE, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3769 #line 3770 "libinterp/parse-tree/oct-parse.cc"
3773 #line 707 "libinterp/parse-tree/oct-parse.yy"
3774 { (yyval.tree_expression_type) = parser.
make_indirect_ref ((yyvsp[-2].tree_expression_type), (yyvsp[0].tok_val)->text ()); }
3775 #line 3776 "libinterp/parse-tree/oct-parse.cc"
3779 #line 709 "libinterp/parse-tree/oct-parse.yy"
3780 { (yyval.tree_expression_type) = parser.
make_indirect_ref ((yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_expression_type)); }
3781 #line 3782 "libinterp/parse-tree/oct-parse.cc"
3785 #line 711 "libinterp/parse-tree/oct-parse.yy"
3786 { (yyval.tree_expression_type) = parser.
make_prefix_op (
PLUS_PLUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3787 #line 3788 "libinterp/parse-tree/oct-parse.cc"
3791 #line 713 "libinterp/parse-tree/oct-parse.yy"
3792 { (yyval.tree_expression_type) = parser.
make_prefix_op (
MINUS_MINUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3793 #line 3794 "libinterp/parse-tree/oct-parse.cc"
3797 #line 715 "libinterp/parse-tree/oct-parse.yy"
3798 { (yyval.tree_expression_type) = parser.
make_prefix_op (
EXPR_NOT, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3799 #line 3800 "libinterp/parse-tree/oct-parse.cc"
3803 #line 717 "libinterp/parse-tree/oct-parse.yy"
3804 { (yyval.tree_expression_type) = parser.
make_prefix_op (
'+', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3805 #line 3806 "libinterp/parse-tree/oct-parse.cc"
3809 #line 719 "libinterp/parse-tree/oct-parse.yy"
3810 { (yyval.tree_expression_type) = parser.
make_prefix_op (
'-', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3811 #line 3812 "libinterp/parse-tree/oct-parse.cc"
3815 #line 721 "libinterp/parse-tree/oct-parse.yy"
3816 { (yyval.tree_expression_type) = parser.
make_binary_op (
POW, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3817 #line 3818 "libinterp/parse-tree/oct-parse.cc"
3821 #line 723 "libinterp/parse-tree/oct-parse.yy"
3822 { (yyval.tree_expression_type) = parser.
make_binary_op (
EPOW, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3823 #line 3824 "libinterp/parse-tree/oct-parse.cc"
3827 #line 725 "libinterp/parse-tree/oct-parse.yy"
3828 { (yyval.tree_expression_type) = parser.
make_binary_op (
'+', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3829 #line 3830 "libinterp/parse-tree/oct-parse.cc"
3833 #line 727 "libinterp/parse-tree/oct-parse.yy"
3834 { (yyval.tree_expression_type) = parser.
make_binary_op (
'-', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3835 #line 3836 "libinterp/parse-tree/oct-parse.cc"
3839 #line 729 "libinterp/parse-tree/oct-parse.yy"
3840 { (yyval.tree_expression_type) = parser.
make_binary_op (
'*', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3841 #line 3842 "libinterp/parse-tree/oct-parse.cc"
3845 #line 731 "libinterp/parse-tree/oct-parse.yy"
3846 { (yyval.tree_expression_type) = parser.
make_binary_op (
'/', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3847 #line 3848 "libinterp/parse-tree/oct-parse.cc"
3851 #line 733 "libinterp/parse-tree/oct-parse.yy"
3852 { (yyval.tree_expression_type) = parser.
make_binary_op (
'+', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3853 #line 3854 "libinterp/parse-tree/oct-parse.cc"
3857 #line 735 "libinterp/parse-tree/oct-parse.yy"
3858 { (yyval.tree_expression_type) = parser.
make_binary_op (
'-', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3859 #line 3860 "libinterp/parse-tree/oct-parse.cc"
3863 #line 737 "libinterp/parse-tree/oct-parse.yy"
3864 { (yyval.tree_expression_type) = parser.
make_binary_op (
EMUL, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3865 #line 3866 "libinterp/parse-tree/oct-parse.cc"
3869 #line 739 "libinterp/parse-tree/oct-parse.yy"
3870 { (yyval.tree_expression_type) = parser.
make_binary_op (
EDIV, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3871 #line 3872 "libinterp/parse-tree/oct-parse.cc"
3875 #line 741 "libinterp/parse-tree/oct-parse.yy"
3876 { (yyval.tree_expression_type) = parser.
make_binary_op (
LEFTDIV, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3877 #line 3878 "libinterp/parse-tree/oct-parse.cc"
3881 #line 743 "libinterp/parse-tree/oct-parse.yy"
3882 { (yyval.tree_expression_type) = parser.
make_binary_op (
ELEFTDIV, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3883 #line 3884 "libinterp/parse-tree/oct-parse.cc"
3887 #line 747 "libinterp/parse-tree/oct-parse.yy"
3888 { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
3889 #line 3890 "libinterp/parse-tree/oct-parse.cc"
3893 #line 749 "libinterp/parse-tree/oct-parse.yy"
3894 { (yyval.tree_expression_type) = parser.
make_postfix_op (
PLUS_PLUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3895 #line 3896 "libinterp/parse-tree/oct-parse.cc"
3899 #line 751 "libinterp/parse-tree/oct-parse.yy"
3900 { (yyval.tree_expression_type) = parser.
make_postfix_op (
MINUS_MINUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3901 #line 3902 "libinterp/parse-tree/oct-parse.cc"
3905 #line 753 "libinterp/parse-tree/oct-parse.yy"
3907 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-2].tree_expression_type), 0,
'(');
3908 if (! (yyval.tree_expression_type))
3914 #line 3915 "libinterp/parse-tree/oct-parse.cc"
3918 #line 762 "libinterp/parse-tree/oct-parse.yy"
3920 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type),
'(');
3921 if (! (yyval.tree_expression_type))
3927 #line 3928 "libinterp/parse-tree/oct-parse.cc"
3931 #line 771 "libinterp/parse-tree/oct-parse.yy"
3933 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-2].tree_expression_type), 0,
'{');
3934 if (! (yyval.tree_expression_type))
3940 #line 3941 "libinterp/parse-tree/oct-parse.cc"
3944 #line 780 "libinterp/parse-tree/oct-parse.yy"
3946 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type),
'{');
3947 if (! (yyval.tree_expression_type))
3953 #line 3954 "libinterp/parse-tree/oct-parse.cc"
3957 #line 789 "libinterp/parse-tree/oct-parse.yy"
3958 { (yyval.tree_expression_type) = parser.
make_indirect_ref ((yyvsp[-2].tree_expression_type), (yyvsp[0].tok_val)->text ()); }
3959 #line 3960 "libinterp/parse-tree/oct-parse.cc"
3963 #line 791 "libinterp/parse-tree/oct-parse.yy"
3964 { (yyval.tree_expression_type) = parser.
make_indirect_ref ((yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_expression_type)); }
3965 #line 3966 "libinterp/parse-tree/oct-parse.cc"
3969 #line 793 "libinterp/parse-tree/oct-parse.yy"
3970 { (yyval.tree_expression_type) = parser.
make_prefix_op (
PLUS_PLUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3971 #line 3972 "libinterp/parse-tree/oct-parse.cc"
3975 #line 795 "libinterp/parse-tree/oct-parse.yy"
3976 { (yyval.tree_expression_type) = parser.
make_prefix_op (
MINUS_MINUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3977 #line 3978 "libinterp/parse-tree/oct-parse.cc"
3981 #line 797 "libinterp/parse-tree/oct-parse.yy"
3982 { (yyval.tree_expression_type) = parser.
make_prefix_op (
EXPR_NOT, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3983 #line 3984 "libinterp/parse-tree/oct-parse.cc"
3987 #line 799 "libinterp/parse-tree/oct-parse.yy"
3988 { (yyval.tree_expression_type) = parser.
make_prefix_op (
'+', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3989 #line 3990 "libinterp/parse-tree/oct-parse.cc"
3993 #line 801 "libinterp/parse-tree/oct-parse.yy"
3994 { (yyval.tree_expression_type) = parser.
make_prefix_op (
'-', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3995 #line 3996 "libinterp/parse-tree/oct-parse.cc"
3999 #line 805 "libinterp/parse-tree/oct-parse.yy"
4001 #line 4002 "libinterp/parse-tree/oct-parse.cc"
4005 #line 809 "libinterp/parse-tree/oct-parse.yy"
4006 { (yyval.tree_colon_expression_type) =
new tree_colon_expression ((yyvsp[0].tree_expression_type)); }
4007 #line 4008 "libinterp/parse-tree/oct-parse.cc"
4011 #line 811 "libinterp/parse-tree/oct-parse.yy"
4013 YYUSE ((yyvsp[-1].tok_val));
4015 if (! ((yyval.tree_colon_expression_type) = (yyvsp[-2].tree_colon_expression_type)->append ((yyvsp[0].tree_expression_type))))
4017 delete (yyvsp[-2].tree_colon_expression_type);
4018 delete (yyvsp[0].tree_expression_type);
4022 #line 4023 "libinterp/parse-tree/oct-parse.cc"
4026 #line 824 "libinterp/parse-tree/oct-parse.yy"
4027 { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
4028 #line 4029 "libinterp/parse-tree/oct-parse.cc"
4032 #line 826 "libinterp/parse-tree/oct-parse.yy"
4033 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_LT, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4034 #line 4035 "libinterp/parse-tree/oct-parse.cc"
4038 #line 828 "libinterp/parse-tree/oct-parse.yy"
4039 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_LE, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4040 #line 4041 "libinterp/parse-tree/oct-parse.cc"
4044 #line 830 "libinterp/parse-tree/oct-parse.yy"
4045 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_EQ, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4046 #line 4047 "libinterp/parse-tree/oct-parse.cc"
4050 #line 832 "libinterp/parse-tree/oct-parse.yy"
4051 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_GE, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4052 #line 4053 "libinterp/parse-tree/oct-parse.cc"
4056 #line 834 "libinterp/parse-tree/oct-parse.yy"
4057 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_GT, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4058 #line 4059 "libinterp/parse-tree/oct-parse.cc"
4062 #line 836 "libinterp/parse-tree/oct-parse.yy"
4063 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_NE, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4064 #line 4065 "libinterp/parse-tree/oct-parse.cc"
4068 #line 838 "libinterp/parse-tree/oct-parse.yy"
4069 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_AND, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4070 #line 4071 "libinterp/parse-tree/oct-parse.cc"
4074 #line 840 "libinterp/parse-tree/oct-parse.yy"
4075 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_OR, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4076 #line 4077 "libinterp/parse-tree/oct-parse.cc"
4080 #line 842 "libinterp/parse-tree/oct-parse.yy"
4081 { (yyval.tree_expression_type) = parser.
make_boolean_op (
EXPR_AND_AND, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4082 #line 4083 "libinterp/parse-tree/oct-parse.cc"
4086 #line 844 "libinterp/parse-tree/oct-parse.yy"
4087 { (yyval.tree_expression_type) = parser.
make_boolean_op (
EXPR_OR_OR, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4088 #line 4089 "libinterp/parse-tree/oct-parse.cc"
4092 #line 848 "libinterp/parse-tree/oct-parse.yy"
4096 if ((yyval.tree_argument_list_type))
4097 {
lexer.looking_at_matrix_or_assign_lhs =
false; }
4104 #line 4105 "libinterp/parse-tree/oct-parse.cc"
4108 #line 862 "libinterp/parse-tree/oct-parse.yy"
4109 { (yyval.tree_expression_type) = parser.
make_assign_op (
'=', (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4110 #line 4111 "libinterp/parse-tree/oct-parse.cc"
4114 #line 864 "libinterp/parse-tree/oct-parse.yy"
4115 { (yyval.tree_expression_type) = parser.
make_assign_op (
ADD_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4116 #line 4117 "libinterp/parse-tree/oct-parse.cc"
4120 #line 866 "libinterp/parse-tree/oct-parse.yy"
4121 { (yyval.tree_expression_type) = parser.
make_assign_op (
SUB_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4122 #line 4123 "libinterp/parse-tree/oct-parse.cc"
4126 #line 868 "libinterp/parse-tree/oct-parse.yy"
4127 { (yyval.tree_expression_type) = parser.
make_assign_op (
MUL_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4128 #line 4129 "libinterp/parse-tree/oct-parse.cc"
4132 #line 870 "libinterp/parse-tree/oct-parse.yy"
4133 { (yyval.tree_expression_type) = parser.
make_assign_op (
DIV_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4134 #line 4135 "libinterp/parse-tree/oct-parse.cc"
4138 #line 872 "libinterp/parse-tree/oct-parse.yy"
4139 { (yyval.tree_expression_type) = parser.
make_assign_op (
LEFTDIV_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4140 #line 4141 "libinterp/parse-tree/oct-parse.cc"
4144 #line 874 "libinterp/parse-tree/oct-parse.yy"
4145 { (yyval.tree_expression_type) = parser.
make_assign_op (
POW_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4146 #line 4147 "libinterp/parse-tree/oct-parse.cc"
4150 #line 876 "libinterp/parse-tree/oct-parse.yy"
4151 { (yyval.tree_expression_type) = parser.
make_assign_op (
EMUL_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4152 #line 4153 "libinterp/parse-tree/oct-parse.cc"
4156 #line 878 "libinterp/parse-tree/oct-parse.yy"
4157 { (yyval.tree_expression_type) = parser.
make_assign_op (
EDIV_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4158 #line 4159 "libinterp/parse-tree/oct-parse.cc"
4162 #line 880 "libinterp/parse-tree/oct-parse.yy"
4163 { (yyval.tree_expression_type) = parser.
make_assign_op (
ELEFTDIV_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4164 #line 4165 "libinterp/parse-tree/oct-parse.cc"
4168 #line 882 "libinterp/parse-tree/oct-parse.yy"
4169 { (yyval.tree_expression_type) = parser.
make_assign_op (
EPOW_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4170 #line 4171 "libinterp/parse-tree/oct-parse.cc"
4174 #line 884 "libinterp/parse-tree/oct-parse.yy"
4175 { (yyval.tree_expression_type) = parser.
make_assign_op (
AND_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4176 #line 4177 "libinterp/parse-tree/oct-parse.cc"
4180 #line 886 "libinterp/parse-tree/oct-parse.yy"
4181 { (yyval.tree_expression_type) = parser.
make_assign_op (
OR_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4182 #line 4183 "libinterp/parse-tree/oct-parse.cc"
4186 #line 890 "libinterp/parse-tree/oct-parse.yy"
4188 if ((yyvsp[0].tree_expression_type) && ((yyvsp[0].tree_expression_type)->is_matrix () || (yyvsp[0].tree_expression_type)->is_cell ()))
4191 (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
4194 delete (yyvsp[0].tree_expression_type);
4199 (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
4201 #line 4202 "libinterp/parse-tree/oct-parse.cc"
4205 #line 905 "libinterp/parse-tree/oct-parse.yy"
4207 if (! (yyvsp[0].tree_expression_type))
4210 (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
4212 #line 4213 "libinterp/parse-tree/oct-parse.cc"
4216 #line 912 "libinterp/parse-tree/oct-parse.yy"
4217 { (yyval.tree_expression_type) = (yyvsp[0].tree_anon_fcn_handle_type); }
4218 #line 4219 "libinterp/parse-tree/oct-parse.cc"
4222 #line 920 "libinterp/parse-tree/oct-parse.yy"
4223 { (yyval.tree_command_type) = (yyvsp[0].tree_decl_command_type); }
4224 #line 4225 "libinterp/parse-tree/oct-parse.cc"
4228 #line 922 "libinterp/parse-tree/oct-parse.yy"
4229 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4230 #line 4231 "libinterp/parse-tree/oct-parse.cc"
4234 #line 924 "libinterp/parse-tree/oct-parse.yy"
4235 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4236 #line 4237 "libinterp/parse-tree/oct-parse.cc"
4240 #line 926 "libinterp/parse-tree/oct-parse.yy"
4241 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4242 #line 4243 "libinterp/parse-tree/oct-parse.cc"
4246 #line 928 "libinterp/parse-tree/oct-parse.yy"
4247 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4248 #line 4249 "libinterp/parse-tree/oct-parse.cc"
4252 #line 930 "libinterp/parse-tree/oct-parse.yy"
4253 { (yyval.tree_command_type) = (yyvsp[0].tree_function_def_type); }
4254 #line 4255 "libinterp/parse-tree/oct-parse.cc"
4258 #line 932 "libinterp/parse-tree/oct-parse.yy"
4259 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4260 #line 4261 "libinterp/parse-tree/oct-parse.cc"
4264 #line 940 "libinterp/parse-tree/oct-parse.yy"
4266 (yyval.tree_decl_command_type) = parser.
make_decl_command (
GLOBAL, (yyvsp[-1].tok_val), (yyvsp[0].tree_decl_init_list_type));
4267 lexer.looking_at_decl_list =
false;
4269 #line 4270 "libinterp/parse-tree/oct-parse.cc"
4273 #line 945 "libinterp/parse-tree/oct-parse.yy"
4276 lexer.looking_at_decl_list =
false;
4278 #line 4279 "libinterp/parse-tree/oct-parse.cc"
4282 #line 952 "libinterp/parse-tree/oct-parse.yy"
4283 { (yyval.tree_decl_init_list_type) =
new tree_decl_init_list ((yyvsp[0].tree_decl_elt_type)); }
4284 #line 4285 "libinterp/parse-tree/oct-parse.cc"
4288 #line 954 "libinterp/parse-tree/oct-parse.yy"
4290 (yyvsp[-1].tree_decl_init_list_type)->
append ((yyvsp[0].tree_decl_elt_type));
4291 (yyval.tree_decl_init_list_type) = (yyvsp[-1].tree_decl_init_list_type);
4293 #line 4294 "libinterp/parse-tree/oct-parse.cc"
4297 #line 961 "libinterp/parse-tree/oct-parse.yy"
4299 (yyval.dummy_type) = 0;
4300 lexer.looking_at_initializer_expression =
true;
4302 #line 4303 "libinterp/parse-tree/oct-parse.cc"
4306 #line 967 "libinterp/parse-tree/oct-parse.yy"
4307 { (yyval.tree_decl_elt_type) =
new tree_decl_elt ((yyvsp[0].tree_identifier_type)); }
4308 #line 4309 "libinterp/parse-tree/oct-parse.cc"
4312 #line 969 "libinterp/parse-tree/oct-parse.yy"
4314 YYUSE ((yyvsp[-2].tok_val));
4316 lexer.looking_at_initializer_expression =
false;
4317 (yyval.tree_decl_elt_type) =
new tree_decl_elt ((yyvsp[-3].tree_identifier_type), (yyvsp[0].tree_expression_type));
4319 #line 4320 "libinterp/parse-tree/oct-parse.cc"
4323 #line 982 "libinterp/parse-tree/oct-parse.yy"
4324 { (yyval.tree_command_type) = (yyvsp[0].tree_if_command_type); }
4325 #line 4326 "libinterp/parse-tree/oct-parse.cc"
4329 #line 984 "libinterp/parse-tree/oct-parse.yy"
4330 { (yyval.tree_command_type) = (yyvsp[0].tree_switch_command_type); }
4331 #line 4332 "libinterp/parse-tree/oct-parse.cc"
4335 #line 992 "libinterp/parse-tree/oct-parse.yy"
4337 if (! ((yyval.tree_if_command_type) = parser.
finish_if_command ((yyvsp[-3].tok_val), (yyvsp[-1].tree_if_command_list_type), (yyvsp[0].tok_val), (yyvsp[-2].comment_type))))
4343 #line 4344 "libinterp/parse-tree/oct-parse.cc"
4347 #line 1002 "libinterp/parse-tree/oct-parse.yy"
4348 { (yyval.tree_if_command_list_type) = (yyvsp[0].tree_if_command_list_type); }
4349 #line 4350 "libinterp/parse-tree/oct-parse.cc"
4353 #line 1004 "libinterp/parse-tree/oct-parse.yy"
4355 (yyvsp[-1].tree_if_command_list_type)->
append ((yyvsp[0].tree_if_clause_type));
4356 (yyval.tree_if_command_list_type) = (yyvsp[-1].tree_if_command_list_type);
4358 #line 4359 "libinterp/parse-tree/oct-parse.cc"
4362 #line 1011 "libinterp/parse-tree/oct-parse.yy"
4364 YYUSE ((yyvsp[-1].punct_type));
4366 (yyvsp[-3].tree_expression_type)->mark_braindead_shortcircuit ();
4368 (yyval.tree_if_command_list_type) = parser.
start_if_command ((yyvsp[-3].tree_expression_type), (yyvsp[0].tree_statement_list_type));
4370 #line 4371 "libinterp/parse-tree/oct-parse.cc"
4374 #line 1019 "libinterp/parse-tree/oct-parse.yy"
4376 (yyvsp[-1].tree_if_command_list_type)->
append ((yyvsp[0].tree_if_clause_type));
4377 (yyval.tree_if_command_list_type) = (yyvsp[-1].tree_if_command_list_type);
4379 #line 4380 "libinterp/parse-tree/oct-parse.cc"
4383 #line 1026 "libinterp/parse-tree/oct-parse.yy"
4385 YYUSE ((yyvsp[-4].punct_type));
4386 YYUSE ((yyvsp[-1].punct_type));
4388 (yyvsp[-3].tree_expression_type)->mark_braindead_shortcircuit ();
4390 (yyval.tree_if_clause_type) = parser.
make_elseif_clause ((yyvsp[-6].tok_val), (yyvsp[-3].tree_expression_type), (yyvsp[0].tree_statement_list_type), (yyvsp[-5].comment_type));
4392 #line 4393 "libinterp/parse-tree/oct-parse.cc"
4396 #line 1037 "libinterp/parse-tree/oct-parse.yy"
4398 YYUSE ((yyvsp[-3].tok_val));
4399 YYUSE ((yyvsp[-1].punct_type));
4401 (yyval.tree_if_clause_type) =
new tree_if_clause ((yyvsp[0].tree_statement_list_type), (yyvsp[-2].comment_type));
4403 #line 4404 "libinterp/parse-tree/oct-parse.cc"
4407 #line 1050 "libinterp/parse-tree/oct-parse.yy"
4409 YYUSE ((yyvsp[-2].punct_type));
4411 if (! ((yyval.tree_switch_command_type) = parser.
finish_switch_command ((yyvsp[-5].tok_val), (yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_switch_case_list_type), (yyvsp[0].tok_val), (yyvsp[-4].comment_type))))
4417 #line 4418 "libinterp/parse-tree/oct-parse.cc"
4421 #line 1062 "libinterp/parse-tree/oct-parse.yy"
4423 #line 4424 "libinterp/parse-tree/oct-parse.cc"
4427 #line 1064 "libinterp/parse-tree/oct-parse.yy"
4428 { (yyval.tree_switch_case_list_type) =
new tree_switch_case_list ((yyvsp[0].tree_switch_case_type)); }
4429 #line 4430 "libinterp/parse-tree/oct-parse.cc"
4433 #line 1066 "libinterp/parse-tree/oct-parse.yy"
4434 { (yyval.tree_switch_case_list_type) = (yyvsp[0].tree_switch_case_list_type); }
4435 #line 4436 "libinterp/parse-tree/oct-parse.cc"
4439 #line 1068 "libinterp/parse-tree/oct-parse.yy"
4441 (yyvsp[-1].tree_switch_case_list_type)->
append ((yyvsp[0].tree_switch_case_type));
4442 (yyval.tree_switch_case_list_type) = (yyvsp[-1].tree_switch_case_list_type);
4444 #line 4445 "libinterp/parse-tree/oct-parse.cc"
4448 #line 1075 "libinterp/parse-tree/oct-parse.yy"
4449 { (yyval.tree_switch_case_list_type) =
new tree_switch_case_list ((yyvsp[0].tree_switch_case_type)); }
4450 #line 4451 "libinterp/parse-tree/oct-parse.cc"
4454 #line 1077 "libinterp/parse-tree/oct-parse.yy"
4456 (yyvsp[-1].tree_switch_case_list_type)->
append ((yyvsp[0].tree_switch_case_type));
4457 (yyval.tree_switch_case_list_type) = (yyvsp[-1].tree_switch_case_list_type);
4459 #line 4460 "libinterp/parse-tree/oct-parse.cc"
4463 #line 1084 "libinterp/parse-tree/oct-parse.yy"
4465 YYUSE ((yyvsp[-4].punct_type));
4466 YYUSE ((yyvsp[-1].punct_type));
4468 (yyval.tree_switch_case_type) = parser.
make_switch_case ((yyvsp[-6].tok_val), (yyvsp[-3].tree_expression_type), (yyvsp[0].tree_statement_list_type), (yyvsp[-5].comment_type));
4470 #line 4471 "libinterp/parse-tree/oct-parse.cc"
4474 #line 1093 "libinterp/parse-tree/oct-parse.yy"
4476 YYUSE ((yyvsp[-3].tok_val));
4477 YYUSE ((yyvsp[-1].punct_type));
4479 (yyval.tree_switch_case_type) =
new tree_switch_case ((yyvsp[0].tree_statement_list_type), (yyvsp[-2].comment_type));
4481 #line 4482 "libinterp/parse-tree/oct-parse.cc"
4485 #line 1106 "libinterp/parse-tree/oct-parse.yy"
4487 YYUSE ((yyvsp[-2].punct_type));
4489 (yyvsp[-4].tree_expression_type)->mark_braindead_shortcircuit ();
4491 if (! ((yyval.tree_command_type) = parser.
make_while_command ((yyvsp[-6].tok_val), (yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
4497 #line 4498 "libinterp/parse-tree/oct-parse.cc"
4501 #line 1118 "libinterp/parse-tree/oct-parse.yy"
4503 YYUSE ((yyvsp[-5].tok_val));
4504 YYUSE ((yyvsp[-3].punct_type));
4506 (yyval.tree_command_type) = parser.
make_do_until_command ((yyvsp[-1].tok_val), (yyvsp[-2].tree_statement_list_type), (yyvsp[0].tree_expression_type), (yyvsp[-4].comment_type));
4508 #line 4509 "libinterp/parse-tree/oct-parse.cc"
4512 #line 1125 "libinterp/parse-tree/oct-parse.yy"
4514 YYUSE ((yyvsp[-5].tok_val));
4515 YYUSE ((yyvsp[-2].punct_type));
4517 if (! ((yyval.tree_command_type) = parser.
make_for_command (
FOR, (yyvsp[-8].tok_val), (yyvsp[-6].tree_argument_list_type), (yyvsp[-4].tree_expression_type), 0,
4518 (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type))))
4524 #line 4525 "libinterp/parse-tree/oct-parse.cc"
4528 #line 1137 "libinterp/parse-tree/oct-parse.yy"
4530 YYUSE ((yyvsp[-5].tok_val));
4531 YYUSE ((yyvsp[-2].punct_type));
4533 if (! ((yyval.tree_command_type) = parser.
make_for_command (
FOR, (yyvsp[-9].tok_val), (yyvsp[-6].tree_argument_list_type), (yyvsp[-4].tree_expression_type), 0,
4534 (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-8].comment_type))))
4540 #line 4541 "libinterp/parse-tree/oct-parse.cc"
4544 #line 1149 "libinterp/parse-tree/oct-parse.yy"
4546 YYUSE ((yyvsp[-5].tok_val));
4547 YYUSE ((yyvsp[-2].punct_type));
4549 if (! ((yyval.tree_command_type) = parser.
make_for_command (
PARFOR, (yyvsp[-8].tok_val), (yyvsp[-6].tree_argument_list_type), (yyvsp[-4].tree_expression_type),
4550 0, (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type))))
4556 #line 4557 "libinterp/parse-tree/oct-parse.cc"
4560 #line 1161 "libinterp/parse-tree/oct-parse.yy"
4562 YYUSE ((yyvsp[-7].tok_val));
4563 YYUSE ((yyvsp[-2].punct_type));
4565 if (! ((yyval.tree_command_type) = parser.
make_for_command (
PARFOR, (yyvsp[-11].tok_val), (yyvsp[-8].tree_argument_list_type), (yyvsp[-6].tree_expression_type),
4566 (yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-10].comment_type))))
4572 #line 4573 "libinterp/parse-tree/oct-parse.cc"
4576 #line 1179 "libinterp/parse-tree/oct-parse.yy"
4578 #line 4579 "libinterp/parse-tree/oct-parse.cc"
4582 #line 1181 "libinterp/parse-tree/oct-parse.yy"
4584 #line 4585 "libinterp/parse-tree/oct-parse.cc"
4588 #line 1183 "libinterp/parse-tree/oct-parse.yy"
4590 #line 4591 "libinterp/parse-tree/oct-parse.cc"
4594 #line 1192 "libinterp/parse-tree/oct-parse.yy"
4596 YYUSE ((yyvsp[-6].punct_type));
4597 YYUSE ((yyvsp[-4].tok_val));
4598 YYUSE ((yyvsp[-2].punct_type));
4600 if (! ((yyval.tree_command_type) = parser.
make_unwind_command ((yyvsp[-8].tok_val), (yyvsp[-5].tree_statement_list_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type), (yyvsp[-3].comment_type))))
4606 #line 4607 "libinterp/parse-tree/oct-parse.cc"
4610 #line 1205 "libinterp/parse-tree/oct-parse.yy"
4612 YYUSE ((yyvsp[-6].punct_type));
4613 YYUSE ((yyvsp[-4].tok_val));
4614 YYUSE ((yyvsp[-2].punct_type));
4616 if (! ((yyval.tree_command_type) = parser.
make_try_command ((yyvsp[-8].tok_val), (yyvsp[-5].tree_statement_list_type), (yyvsp[-2].punct_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type), (yyvsp[-3].comment_type))))
4622 #line 4623 "libinterp/parse-tree/oct-parse.cc"
4626 #line 1217 "libinterp/parse-tree/oct-parse.yy"
4628 YYUSE ((yyvsp[-2].punct_type));
4630 if (! ((yyval.tree_command_type) = parser.
make_try_command ((yyvsp[-4].tok_val), (yyvsp[-1].tree_statement_list_type), 0, 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type), 0)))
4636 #line 4637 "libinterp/parse-tree/oct-parse.cc"
4640 #line 1233 "libinterp/parse-tree/oct-parse.yy"
4642 (yyval.dummy_type) = 0;
4652 (
lexer.symtab_context.curr_scope ());
4654 if (!
lexer.reading_script_file
4658 =
lexer.symtab_context.curr_scope ();
4660 if (
lexer.reading_script_file
4663 parser.
bison_error (
"nested functions not implemented in this context");
4667 #line 4668 "libinterp/parse-tree/oct-parse.cc"
4671 #line 1266 "libinterp/parse-tree/oct-parse.yy"
4673 (yyval.dummy_type) = 0;
4674 lexer.looking_at_parameter_list =
true;
4676 if (
lexer.looking_at_function_handle)
4679 lexer.looking_at_function_handle--;
4680 lexer.looking_at_anon_fcn_args =
true;
4683 #line 4684 "libinterp/parse-tree/oct-parse.cc"
4687 #line 1280 "libinterp/parse-tree/oct-parse.yy"
4689 (yyval.dummy_type) = 0;
4690 lexer.looking_at_parameter_list =
false;
4691 lexer.looking_for_object_index =
false;
4693 #line 4694 "libinterp/parse-tree/oct-parse.cc"
4697 #line 1288 "libinterp/parse-tree/oct-parse.yy"
4699 if ((yyvsp[-1].tree_parameter_list_type))
4700 lexer.mark_as_variables ((yyvsp[-1].tree_parameter_list_type)->variable_names ());
4702 (yyval.tree_parameter_list_type) = (yyvsp[-1].tree_parameter_list_type);
4704 #line 4705 "libinterp/parse-tree/oct-parse.cc"
4708 #line 1295 "libinterp/parse-tree/oct-parse.yy"
4710 (yyval.tree_parameter_list_type) = 0;
4714 #line 4715 "libinterp/parse-tree/oct-parse.cc"
4718 #line 1303 "libinterp/parse-tree/oct-parse.yy"
4719 { (yyval.tree_parameter_list_type) = 0; }
4720 #line 4721 "libinterp/parse-tree/oct-parse.cc"
4724 #line 1305 "libinterp/parse-tree/oct-parse.yy"
4726 (yyvsp[0].tree_parameter_list_type)->mark_as_formal_parameters ();
4729 lexer.mark_as_variables ((yyvsp[0].tree_parameter_list_type)->variable_names ());
4730 (yyval.tree_parameter_list_type) = (yyvsp[0].tree_parameter_list_type);
4734 delete (yyvsp[0].tree_parameter_list_type);
4738 #line 4739 "libinterp/parse-tree/oct-parse.cc"
4742 #line 1321 "libinterp/parse-tree/oct-parse.yy"
4743 { (yyval.tree_parameter_list_type) =
new tree_parameter_list ((yyvsp[0].tree_decl_elt_type)); }
4744 #line 4745 "libinterp/parse-tree/oct-parse.cc"
4748 #line 1323 "libinterp/parse-tree/oct-parse.yy"
4750 (yyvsp[-2].tree_parameter_list_type)->
append ((yyvsp[0].tree_decl_elt_type));
4751 (yyval.tree_parameter_list_type) = (yyvsp[-2].tree_parameter_list_type);
4753 #line 4754 "libinterp/parse-tree/oct-parse.cc"
4757 #line 1330 "libinterp/parse-tree/oct-parse.yy"
4758 { (yyval.tree_decl_elt_type) = (yyvsp[0].tree_decl_elt_type); }
4759 #line 4760 "libinterp/parse-tree/oct-parse.cc"
4763 #line 1332 "libinterp/parse-tree/oct-parse.yy"
4764 { (yyval.tree_decl_elt_type) =
new tree_decl_elt ((yyvsp[0].tree_identifier_type)); }
4765 #line 4766 "libinterp/parse-tree/oct-parse.cc"
4769 #line 1340 "libinterp/parse-tree/oct-parse.yy"
4771 lexer.looking_at_return_list =
false;
4775 #line 4776 "libinterp/parse-tree/oct-parse.cc"
4779 #line 1346 "libinterp/parse-tree/oct-parse.yy"
4781 lexer.looking_at_return_list =
false;
4790 (yyval.tree_parameter_list_type) =
tmp;
4797 #line 4798 "libinterp/parse-tree/oct-parse.cc"
4801 #line 1364 "libinterp/parse-tree/oct-parse.yy"
4803 lexer.looking_at_return_list =
false;
4809 (yyval.tree_parameter_list_type) = (yyvsp[-1].tree_parameter_list_type);
4812 delete (yyvsp[-1].tree_parameter_list_type);
4816 #line 4817 "libinterp/parse-tree/oct-parse.cc"
4820 #line 1381 "libinterp/parse-tree/oct-parse.yy"
4822 #line 4823 "libinterp/parse-tree/oct-parse.cc"
4826 #line 1383 "libinterp/parse-tree/oct-parse.yy"
4828 (yyvsp[-2].tree_parameter_list_type)->
append (
new tree_decl_elt ((yyvsp[0].tree_identifier_type)));
4829 (yyval.tree_parameter_list_type) = (yyvsp[-2].tree_parameter_list_type);
4831 #line 4832 "libinterp/parse-tree/oct-parse.cc"
4835 #line 1394 "libinterp/parse-tree/oct-parse.yy"
4837 YYUSE ((yyvsp[-2].punct_type));
4839 if (
lexer.reading_fcn_file)
4847 delete (yyvsp[-1].tree_statement_list_type);
4852 = parser.
make_end (
"endscript",
true,
4853 lexer.input_line_number,
4854 lexer.current_input_column);
4856 parser.
make_script ((yyvsp[-1].tree_statement_list_type), end_of_script);
4859 (yyval.tree_command_type) = 0;
4861 #line 4862 "libinterp/parse-tree/oct-parse.cc"
4865 #line 1420 "libinterp/parse-tree/oct-parse.yy"
4867 YYUSE ((yyvsp[-3].punct_type));
4868 YYUSE ((yyvsp[-1].punct_type));
4870 if (
lexer.reading_classdef_file)
4873 (yyval.tree_command_type) = 0;
4875 #line 4876 "libinterp/parse-tree/oct-parse.cc"
4879 #line 1436 "libinterp/parse-tree/oct-parse.yy"
4881 (yyval.tok_val) = (yyvsp[0].tok_val);
4882 if (
lexer.reading_classdef_file
4883 ||
lexer.parsing_classdef)
4884 lexer.maybe_classdef_get_set_method =
true;
4886 #line 4887 "libinterp/parse-tree/oct-parse.cc"
4890 #line 1445 "libinterp/parse-tree/oct-parse.yy"
4892 (yyval.tree_function_def_type) = parser.
finish_function (0, (yyvsp[0].octave_user_function_type), (yyvsp[-1].comment_type), (yyvsp[-2].tok_val)->line (),
4893 (yyvsp[-2].tok_val)->
column ());
4896 #line 4897 "libinterp/parse-tree/oct-parse.cc"
4900 #line 1451 "libinterp/parse-tree/oct-parse.yy"
4902 YYUSE ((yyvsp[-1].tok_val));
4904 (yyval.tree_function_def_type) = parser.
finish_function ((yyvsp[-2].tree_parameter_list_type), (yyvsp[0].octave_user_function_type), (yyvsp[-3].comment_type), (yyvsp[-4].tok_val)->line (),
4905 (yyvsp[-4].tok_val)->
column ());
4908 #line 4909 "libinterp/parse-tree/oct-parse.cc"
4912 #line 1461 "libinterp/parse-tree/oct-parse.yy"
4916 lexer.parsed_function_name.top () =
true;
4917 lexer.maybe_classdef_get_set_method =
false;
4919 (yyval.tree_identifier_type) = (yyvsp[0].tree_identifier_type);
4921 #line 4922 "libinterp/parse-tree/oct-parse.cc"
4925 #line 1470 "libinterp/parse-tree/oct-parse.yy"
4927 YYUSE ((yyvsp[-2].tok_val));
4929 lexer.parsed_function_name.top () =
true;
4930 lexer.maybe_classdef_get_set_method =
false;
4931 lexer.parsing_classdef_get_method =
true;
4932 (yyval.tree_identifier_type) = (yyvsp[0].tree_identifier_type);
4934 #line 4935 "libinterp/parse-tree/oct-parse.cc"
4938 #line 1479 "libinterp/parse-tree/oct-parse.yy"
4940 YYUSE ((yyvsp[-2].tok_val));
4942 lexer.parsed_function_name.top () =
true;
4943 lexer.maybe_classdef_get_set_method =
false;
4944 lexer.parsing_classdef_set_method =
true;
4945 (yyval.tree_identifier_type) = (yyvsp[0].tree_identifier_type);
4947 #line 4948 "libinterp/parse-tree/oct-parse.cc"
4951 #line 1490 "libinterp/parse-tree/oct-parse.yy"
4955 delete (yyvsp[-1].tree_identifier_type);
4957 if (
lexer.parsing_classdef_get_method)
4958 fname.insert (0,
"get.");
4959 else if (
lexer.parsing_classdef_set_method)
4960 fname.insert (0,
"set.");
4962 lexer.parsing_classdef_get_method =
false;
4963 lexer.parsing_classdef_set_method =
false;
4965 (yyval.octave_user_function_type) = parser.
frob_function (fname, (yyvsp[0].octave_user_function_type));
4967 #line 4968 "libinterp/parse-tree/oct-parse.cc"
4971 #line 1508 "libinterp/parse-tree/oct-parse.yy"
4973 YYUSE ((yyvsp[-2].punct_type));
4975 (yyval.octave_user_function_type) = parser.
start_function ((yyvsp[-3].tree_parameter_list_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tree_statement_type));
4977 #line 4978 "libinterp/parse-tree/oct-parse.cc"
4981 #line 1514 "libinterp/parse-tree/oct-parse.yy"
4983 YYUSE ((yyvsp[-2].punct_type));
4985 (yyval.octave_user_function_type) = parser.
start_function (0, (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tree_statement_type));
4987 #line 4988 "libinterp/parse-tree/oct-parse.cc"
4991 #line 1522 "libinterp/parse-tree/oct-parse.yy"
4996 (yyval.tree_statement_type) = parser.
make_end (
"endfunction",
false,
4997 (yyvsp[0].tok_val)->
line (), (yyvsp[0].tok_val)->
column ());
5004 #line 5005 "libinterp/parse-tree/oct-parse.cc"
5008 #line 1535 "libinterp/parse-tree/oct-parse.yy"
5019 parser.
bison_error (
"inconsistent function endings -- "
5020 "if one function is explicitly ended, "
5021 "so must all the others");
5025 if (! (
lexer.reading_fcn_file ||
lexer.reading_script_file
5026 ||
lexer.input_from_eval_string ()))
5028 parser.
bison_error (
"function body open at end of input");
5032 if (
lexer.reading_classdef_file)
5034 parser.
bison_error (
"classdef body open at end of input");
5038 (yyval.tree_statement_type) = parser.
make_end (
"endfunction",
true,
5039 lexer.input_line_number,
5040 lexer.current_input_column);
5042 #line 5043 "libinterp/parse-tree/oct-parse.cc"
5046 #line 1575 "libinterp/parse-tree/oct-parse.yy"
5048 if (!
lexer.reading_classdef_file)
5050 parser.
bison_error (
"classdef must appear inside a file containing only a class definition");
5054 lexer.parsing_classdef =
true;
5055 (yyval.tok_val) = (yyvsp[0].tok_val);
5057 #line 5058 "libinterp/parse-tree/oct-parse.cc"
5061 #line 1588 "libinterp/parse-tree/oct-parse.yy"
5063 YYUSE ((yyvsp[-3].punct_type));
5064 YYUSE ((yyvsp[-1].punct_type));
5066 lexer.parsing_classdef =
false;
5068 if (! ((yyval.tree_classdef_type) = parser.
make_classdef ((yyvsp[-8].tok_val), (yyvsp[-6].tree_classdef_attribute_list_type), (yyvsp[-5].tree_identifier_type), (yyvsp[-4].tree_classdef_superclass_list_type), (yyvsp[-2].tree_classdef_body_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type))))
5074 #line 5075 "libinterp/parse-tree/oct-parse.cc"
5078 #line 1601 "libinterp/parse-tree/oct-parse.yy"
5080 YYUSE ((yyvsp[-1].punct_type));
5082 lexer.parsing_classdef =
false;
5084 if (! ((yyval.tree_classdef_type) = parser.
make_classdef ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-3].tree_identifier_type), (yyvsp[-2].tree_classdef_superclass_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5090 #line 5091 "libinterp/parse-tree/oct-parse.cc"
5094 #line 1615 "libinterp/parse-tree/oct-parse.yy"
5095 { (yyval.tree_classdef_attribute_list_type) = 0; }
5096 #line 5097 "libinterp/parse-tree/oct-parse.cc"
5100 #line 1617 "libinterp/parse-tree/oct-parse.yy"
5101 { (yyval.tree_classdef_attribute_list_type) = (yyvsp[-1].tree_classdef_attribute_list_type); }
5102 #line 5103 "libinterp/parse-tree/oct-parse.cc"
5106 #line 1621 "libinterp/parse-tree/oct-parse.yy"
5108 #line 5109 "libinterp/parse-tree/oct-parse.cc"
5112 #line 1623 "libinterp/parse-tree/oct-parse.yy"
5114 (yyvsp[-2].tree_classdef_attribute_list_type)->
append ((yyvsp[0].tree_classdef_attribute_type));
5115 (yyval.tree_classdef_attribute_list_type) = (yyvsp[-2].tree_classdef_attribute_list_type);
5117 #line 5118 "libinterp/parse-tree/oct-parse.cc"
5121 #line 1630 "libinterp/parse-tree/oct-parse.yy"
5123 #line 5124 "libinterp/parse-tree/oct-parse.cc"
5127 #line 1632 "libinterp/parse-tree/oct-parse.yy"
5129 YYUSE ((yyvsp[-2].tok_val));
5131 lexer.looking_at_initializer_expression =
false;
5132 (yyval.tree_classdef_attribute_type) =
new tree_classdef_attribute ((yyvsp[-3].tree_identifier_type), (yyvsp[0].tree_expression_type));
5134 #line 5135 "libinterp/parse-tree/oct-parse.cc"
5138 #line 1639 "libinterp/parse-tree/oct-parse.yy"
5140 YYUSE ((yyvsp[-1].tok_val));
5144 #line 5145 "libinterp/parse-tree/oct-parse.cc"
5148 #line 1648 "libinterp/parse-tree/oct-parse.yy"
5149 { (yyval.tree_classdef_superclass_list_type) = 0; }
5150 #line 5151 "libinterp/parse-tree/oct-parse.cc"
5154 #line 1650 "libinterp/parse-tree/oct-parse.yy"
5155 { (yyval.tree_classdef_superclass_list_type) = (yyvsp[0].tree_classdef_superclass_list_type); }
5156 #line 5157 "libinterp/parse-tree/oct-parse.cc"
5160 #line 1654 "libinterp/parse-tree/oct-parse.yy"
5162 YYUSE ((yyvsp[0].tok_val));
5164 lexer.enable_fq_identifier ();
5166 #line 5167 "libinterp/parse-tree/oct-parse.cc"
5170 #line 1660 "libinterp/parse-tree/oct-parse.yy"
5172 #line 5173 "libinterp/parse-tree/oct-parse.cc"
5176 #line 1662 "libinterp/parse-tree/oct-parse.yy"
5178 YYUSE ((yyvsp[0].tok_val));
5180 lexer.enable_fq_identifier ();
5182 #line 5183 "libinterp/parse-tree/oct-parse.cc"
5186 #line 1668 "libinterp/parse-tree/oct-parse.yy"
5188 (yyvsp[-3].tree_classdef_superclass_list_type)->
append ((yyvsp[0].tree_classdef_superclass_type));
5189 (yyval.tree_classdef_superclass_list_type) = (yyvsp[-3].tree_classdef_superclass_list_type);
5191 #line 5192 "libinterp/parse-tree/oct-parse.cc"
5195 #line 1675 "libinterp/parse-tree/oct-parse.yy"
5197 #line 5198 "libinterp/parse-tree/oct-parse.cc"
5201 #line 1679 "libinterp/parse-tree/oct-parse.yy"
5202 { (yyval.tree_classdef_body_type) =
new tree_classdef_body ((yyvsp[0].tree_classdef_properties_block_type)); }
5203 #line 5204 "libinterp/parse-tree/oct-parse.cc"
5207 #line 1681 "libinterp/parse-tree/oct-parse.yy"
5208 { (yyval.tree_classdef_body_type) =
new tree_classdef_body ((yyvsp[0].tree_classdef_methods_block_type)); }
5209 #line 5210 "libinterp/parse-tree/oct-parse.cc"
5213 #line 1683 "libinterp/parse-tree/oct-parse.yy"
5214 { (yyval.tree_classdef_body_type) =
new tree_classdef_body ((yyvsp[0].tree_classdef_events_block_type)); }
5215 #line 5216 "libinterp/parse-tree/oct-parse.cc"
5219 #line 1685 "libinterp/parse-tree/oct-parse.yy"
5220 { (yyval.tree_classdef_body_type) =
new tree_classdef_body ((yyvsp[0].tree_classdef_enum_block_type)); }
5221 #line 5222 "libinterp/parse-tree/oct-parse.cc"
5225 #line 1687 "libinterp/parse-tree/oct-parse.yy"
5227 YYUSE ((yyvsp[-1].punct_type));
5229 (yyvsp[-2].tree_classdef_body_type)->
append ((yyvsp[0].tree_classdef_properties_block_type));
5230 (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5232 #line 5233 "libinterp/parse-tree/oct-parse.cc"
5236 #line 1694 "libinterp/parse-tree/oct-parse.yy"
5238 YYUSE ((yyvsp[-1].punct_type));
5240 (yyvsp[-2].tree_classdef_body_type)->
append ((yyvsp[0].tree_classdef_methods_block_type));
5241 (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5243 #line 5244 "libinterp/parse-tree/oct-parse.cc"
5247 #line 1701 "libinterp/parse-tree/oct-parse.yy"
5249 YYUSE ((yyvsp[-1].punct_type));
5251 (yyvsp[-2].tree_classdef_body_type)->
append ((yyvsp[0].tree_classdef_events_block_type));
5252 (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5254 #line 5255 "libinterp/parse-tree/oct-parse.cc"
5258 #line 1708 "libinterp/parse-tree/oct-parse.yy"
5260 YYUSE ((yyvsp[-1].punct_type));
5262 (yyvsp[-2].tree_classdef_body_type)->
append ((yyvsp[0].tree_classdef_enum_block_type));
5263 (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5265 #line 5266 "libinterp/parse-tree/oct-parse.cc"
5269 #line 1718 "libinterp/parse-tree/oct-parse.yy"
5271 YYUSE ((yyvsp[-3].punct_type));
5272 YYUSE ((yyvsp[-1].punct_type));
5275 ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-2].tree_classdef_property_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5281 #line 5282 "libinterp/parse-tree/oct-parse.cc"
5285 #line 1730 "libinterp/parse-tree/oct-parse.yy"
5287 YYUSE ((yyvsp[-1].punct_type));
5290 ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5296 #line 5297 "libinterp/parse-tree/oct-parse.cc"
5300 #line 1744 "libinterp/parse-tree/oct-parse.yy"
5302 #line 5303 "libinterp/parse-tree/oct-parse.cc"
5306 #line 1746 "libinterp/parse-tree/oct-parse.yy"
5308 YYUSE ((yyvsp[-1].punct_type));
5310 (yyvsp[-2].tree_classdef_property_list_type)->
append ((yyvsp[0].tree_classdef_property_type));
5311 (yyval.tree_classdef_property_list_type) = (yyvsp[-2].tree_classdef_property_list_type);
5313 #line 5314 "libinterp/parse-tree/oct-parse.cc"
5317 #line 1755 "libinterp/parse-tree/oct-parse.yy"
5319 #line 5320 "libinterp/parse-tree/oct-parse.cc"
5323 #line 1757 "libinterp/parse-tree/oct-parse.yy"
5325 YYUSE ((yyvsp[-2].tok_val));
5327 lexer.looking_at_initializer_expression =
false;
5328 (yyval.tree_classdef_property_type) =
new tree_classdef_property ((yyvsp[-3].tree_identifier_type), (yyvsp[0].tree_expression_type));
5330 #line 5331 "libinterp/parse-tree/oct-parse.cc"
5334 #line 1766 "libinterp/parse-tree/oct-parse.yy"
5336 YYUSE ((yyvsp[-3].punct_type));
5337 YYUSE ((yyvsp[-1].punct_type));
5340 ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-2].tree_classdef_methods_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5346 #line 5347 "libinterp/parse-tree/oct-parse.cc"
5350 #line 1778 "libinterp/parse-tree/oct-parse.yy"
5352 YYUSE ((yyvsp[-1].punct_type));
5355 ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5361 #line 5362 "libinterp/parse-tree/oct-parse.cc"
5365 #line 1792 "libinterp/parse-tree/oct-parse.yy"
5370 #line 5371 "libinterp/parse-tree/oct-parse.cc"
5374 #line 1797 "libinterp/parse-tree/oct-parse.yy"
5376 if (! ((yyval.octave_user_function_type) = parser.
start_classdef_external_method ((yyvsp[-1].tree_identifier_type), (yyvsp[0].tree_parameter_list_type))))
5379 #line 5380 "libinterp/parse-tree/oct-parse.cc"
5383 #line 1804 "libinterp/parse-tree/oct-parse.yy"
5385 #line 5386 "libinterp/parse-tree/oct-parse.cc"
5389 #line 1806 "libinterp/parse-tree/oct-parse.yy"
5391 YYUSE ((yyvsp[0].tok_val));
5393 lexer.defining_func++;
5394 lexer.parsed_function_name.push (
false);
5396 #line 5397 "libinterp/parse-tree/oct-parse.cc"
5400 #line 1813 "libinterp/parse-tree/oct-parse.yy"
5402 lexer.defining_func--;
5403 lexer.parsed_function_name.pop ();
5404 (yyval.tree_function_def_type) = parser.
finish_classdef_external_method ((yyvsp[0].octave_user_function_type), (yyvsp[-3].tree_parameter_list_type), (yyvsp[-4].comment_type));
5406 #line 5407 "libinterp/parse-tree/oct-parse.cc"
5410 #line 1821 "libinterp/parse-tree/oct-parse.yy"
5411 { (yyval.tree_function_def_type) = (yyvsp[0].tree_function_def_type); }
5412 #line 5413 "libinterp/parse-tree/oct-parse.cc"
5416 #line 1823 "libinterp/parse-tree/oct-parse.yy"
5417 { (yyval.tree_function_def_type) = (yyvsp[0].tree_function_def_type); }
5418 #line 5419 "libinterp/parse-tree/oct-parse.cc"
5422 #line 1827 "libinterp/parse-tree/oct-parse.yy"
5425 if ((yyvsp[0].tree_function_def_type))
5426 fcn = (yyvsp[0].tree_function_def_type)->function ();
5427 delete (yyvsp[0].tree_function_def_type);
5430 #line 5431 "libinterp/parse-tree/oct-parse.cc"
5434 #line 1835 "libinterp/parse-tree/oct-parse.yy"
5436 YYUSE ((yyvsp[-1].punct_type));
5439 if ((yyvsp[0].tree_function_def_type))
5440 fcn = (yyvsp[0].tree_function_def_type)->
function ();
5441 delete (yyvsp[0].tree_function_def_type);
5443 (yyvsp[-2].tree_classdef_methods_list_type)->
append (fcn);
5444 (yyval.tree_classdef_methods_list_type) = (yyvsp[-2].tree_classdef_methods_list_type);
5446 #line 5447 "libinterp/parse-tree/oct-parse.cc"
5450 #line 1849 "libinterp/parse-tree/oct-parse.yy"
5452 YYUSE ((yyvsp[-3].punct_type));
5453 YYUSE ((yyvsp[-1].punct_type));
5456 ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-2].tree_classdef_events_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5462 #line 5463 "libinterp/parse-tree/oct-parse.cc"
5466 #line 1861 "libinterp/parse-tree/oct-parse.yy"
5468 YYUSE ((yyvsp[-1].punct_type));
5471 ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5477 #line 5478 "libinterp/parse-tree/oct-parse.cc"
5481 #line 1874 "libinterp/parse-tree/oct-parse.yy"
5483 #line 5484 "libinterp/parse-tree/oct-parse.cc"
5487 #line 1876 "libinterp/parse-tree/oct-parse.yy"
5489 YYUSE ((yyvsp[-1].punct_type));
5491 (yyvsp[-2].tree_classdef_events_list_type)->
append ((yyvsp[0].tree_classdef_event_type));
5492 (yyval.tree_classdef_events_list_type) = (yyvsp[-2].tree_classdef_events_list_type);
5494 #line 5495 "libinterp/parse-tree/oct-parse.cc"
5498 #line 1885 "libinterp/parse-tree/oct-parse.yy"
5499 { (yyval.tree_classdef_event_type) =
new tree_classdef_event ((yyvsp[0].tree_identifier_type)); }
5500 #line 5501 "libinterp/parse-tree/oct-parse.cc"
5504 #line 1889 "libinterp/parse-tree/oct-parse.yy"
5506 YYUSE ((yyvsp[-3].punct_type));
5507 YYUSE ((yyvsp[-1].punct_type));
5510 ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-2].tree_classdef_enum_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5516 #line 5517 "libinterp/parse-tree/oct-parse.cc"
5520 #line 1901 "libinterp/parse-tree/oct-parse.yy"
5522 YYUSE ((yyvsp[-1].punct_type));
5525 ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5531 #line 5532 "libinterp/parse-tree/oct-parse.cc"
5535 #line 1914 "libinterp/parse-tree/oct-parse.yy"
5537 #line 5538 "libinterp/parse-tree/oct-parse.cc"
5541 #line 1916 "libinterp/parse-tree/oct-parse.yy"
5543 YYUSE ((yyvsp[-1].punct_type));
5545 (yyvsp[-2].tree_classdef_enum_list_type)->
append ((yyvsp[0].tree_classdef_enum_type));
5546 (yyval.tree_classdef_enum_list_type) = (yyvsp[-2].tree_classdef_enum_list_type);
5548 #line 5549 "libinterp/parse-tree/oct-parse.cc"
5552 #line 1925 "libinterp/parse-tree/oct-parse.yy"
5553 { (yyval.tree_classdef_enum_type) =
new tree_classdef_enum ((yyvsp[-3].tree_identifier_type), (yyvsp[-1].tree_expression_type)); }
5554 #line 5555 "libinterp/parse-tree/oct-parse.cc"
5558 #line 1933 "libinterp/parse-tree/oct-parse.yy"
5560 (yyval.dummy_type) = 0;
5561 lexer.at_beginning_of_statement =
true;
5563 #line 5564 "libinterp/parse-tree/oct-parse.cc"
5567 #line 1940 "libinterp/parse-tree/oct-parse.yy"
5568 { (yyval.comment_type) =
lexer.get_comment (); }
5569 #line 5570 "libinterp/parse-tree/oct-parse.cc"
5573 #line 1944 "libinterp/parse-tree/oct-parse.yy"
5575 (yyval.dummy_type) = 0;
5579 #line 5580 "libinterp/parse-tree/oct-parse.cc"
5583 #line 1950 "libinterp/parse-tree/oct-parse.yy"
5584 { (yyval.dummy_type) = 0; }
5585 #line 5586 "libinterp/parse-tree/oct-parse.cc"
5589 #line 1954 "libinterp/parse-tree/oct-parse.yy"
5590 { (yyval.punct_type) =
','; }
5591 #line 5592 "libinterp/parse-tree/oct-parse.cc"
5595 #line 1956 "libinterp/parse-tree/oct-parse.yy"
5596 { (yyval.punct_type) =
';'; }
5597 #line 5598 "libinterp/parse-tree/oct-parse.cc"
5601 #line 1958 "libinterp/parse-tree/oct-parse.yy"
5602 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5603 #line 5604 "libinterp/parse-tree/oct-parse.cc"
5607 #line 1960 "libinterp/parse-tree/oct-parse.yy"
5608 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5609 #line 5610 "libinterp/parse-tree/oct-parse.cc"
5613 #line 1964 "libinterp/parse-tree/oct-parse.yy"
5614 { (yyval.punct_type) = 0; }
5615 #line 5616 "libinterp/parse-tree/oct-parse.cc"
5619 #line 1966 "libinterp/parse-tree/oct-parse.yy"
5620 { (yyval.punct_type) = (yyvsp[0].punct_type); }
5621 #line 5622 "libinterp/parse-tree/oct-parse.cc"
5625 #line 1970 "libinterp/parse-tree/oct-parse.yy"
5626 { (yyval.punct_type) = 0; }
5627 #line 5628 "libinterp/parse-tree/oct-parse.cc"
5631 #line 1972 "libinterp/parse-tree/oct-parse.yy"
5632 { (yyval.punct_type) = (yyvsp[0].punct_type); }
5633 #line 5634 "libinterp/parse-tree/oct-parse.cc"
5637 #line 1976 "libinterp/parse-tree/oct-parse.yy"
5638 { (yyval.punct_type) =
'\n'; }
5639 #line 5640 "libinterp/parse-tree/oct-parse.cc"
5643 #line 1978 "libinterp/parse-tree/oct-parse.yy"
5644 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5645 #line 5646 "libinterp/parse-tree/oct-parse.cc"
5649 #line 1982 "libinterp/parse-tree/oct-parse.yy"
5650 { (yyval.punct_type) =
','; }
5651 #line 5652 "libinterp/parse-tree/oct-parse.cc"
5655 #line 1984 "libinterp/parse-tree/oct-parse.yy"
5656 { (yyval.punct_type) =
';'; }
5657 #line 5658 "libinterp/parse-tree/oct-parse.cc"
5661 #line 1986 "libinterp/parse-tree/oct-parse.yy"
5662 { (yyval.punct_type) =
'\n'; }
5663 #line 5664 "libinterp/parse-tree/oct-parse.cc"
5667 #line 1988 "libinterp/parse-tree/oct-parse.yy"
5668 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5669 #line 5670 "libinterp/parse-tree/oct-parse.cc"
5673 #line 1990 "libinterp/parse-tree/oct-parse.yy"
5674 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5675 #line 5676 "libinterp/parse-tree/oct-parse.cc"
5679 #line 1992 "libinterp/parse-tree/oct-parse.yy"
5680 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5681 #line 5682 "libinterp/parse-tree/oct-parse.cc"
5685 #line 1996 "libinterp/parse-tree/oct-parse.yy"
5686 { (yyval.punct_type) = 0; }
5687 #line 5688 "libinterp/parse-tree/oct-parse.cc"
5691 #line 1998 "libinterp/parse-tree/oct-parse.yy"
5692 { (yyval.punct_type) = (yyvsp[0].punct_type); }
5693 #line 5694 "libinterp/parse-tree/oct-parse.cc"
5697 #line 5698 "libinterp/parse-tree/oct-parse.cc"
5746 #if ! YYERROR_VERBOSE
5749 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
5752 char const *yymsgp =
YY_(
"syntax error");
5753 int yysyntax_error_status;
5754 yysyntax_error_status = YYSYNTAX_ERROR;
5755 if (yysyntax_error_status == 0)
5757 else if (yysyntax_error_status == 1)
5759 if (yymsg != yymsgbuf)
5765 yymsg_alloc =
sizeof yymsgbuf;
5766 yysyntax_error_status = 2;
5770 yysyntax_error_status = YYSYNTAX_ERROR;
5775 if (yysyntax_error_status == 2)
5776 goto yyexhaustedlab;
5778 # undef YYSYNTAX_ERROR
5789 if (yychar <=
YYEOF)
5792 if (yychar ==
YYEOF)
5798 yytoken, &
yylval, parser);
5886 #if !defined yyoverflow || YYERROR_VERBOSE
5903 yytoken, &
yylval, parser);
5909 while (yyssp !=
yyss)
5912 yystos[*yyssp], yyvsp, parser);
5923 if (yymsg != yymsgbuf)
5928 #line 2001 "libinterp/parse-tree/oct-parse.yy"
5931 #if defined (HAVE_PRAGMA_GCC_DIAGNOSTIC)
5933 #pragma GCC diagnostic pop
5949 : endfunction_found (
false), autoloading (
false),
5950 fcn_file_from_relative_lookup (
false), parsing_subfunctions (
false),
5951 max_fcn_depth (0), curr_fcn_depth (0), primary_fcn_scope (-1),
5952 curr_class_name (), curr_package_name (), function_scopes (),
5953 primary_fcn_ptr (0), subfunction_names (), classdef_object (0),
6014 retval =
"endclassdef";
6018 retval =
"endenumeration";
6022 retval =
"endevents";
6030 retval =
"endfunction";
6038 retval =
"endmethods";
6042 retval =
"endparfor";
6046 retval =
"endproperties";
6050 retval =
"endswitch";
6054 retval =
"end_try_catch";
6058 retval =
"end_unwind_protect";
6062 retval =
"endwhile";
6079 +
"' command matched by '"
6106 (
"Octave:assign-as-truth-value",
6107 "suggest parenthesis around assignment used as truth value");
6110 (
"Octave:assign-as-truth-value",
6111 "suggest parenthesis around assignment used as truth value near line %d, column %d in file '%s'",
6125 "variable switch label");
6128 (
"Octave:variable-switch-label",
6129 "variable switch label near line %d, column %d in file '%s'",
6167 std::ostringstream buf;
6179 catch (
const octave::execution_exception&)
6202 int l = tok_val->
line ();
6213 retval->stash_original_text (tok_val->
text_rep ());
6230 char delim = op ==
DQ_STRING ?
'"' :
'\'';
6265 int l = tok_val->
line ();
6391 int l = tok_val->
line ();
6420 int l = tok_val->
line ();
6460 int l = tok_val->
line ();
6496 int l = tok_val->
line ();
6518 int l = unwind_tok->
line ();
6519 int c = unwind_tok->
column ();
6527 delete cleanup_stmts;
6552 int l = try_tok->
line ();
6557 if (! catch_sep && cleanup_stmts && ! cleanup_stmts->
empty ())
6583 delete cleanup_stmts;
6610 int l = while_tok->
line ();
6640 int l = until_tok->
line ();
6659 bool parfor = tok_id ==
PARFOR;
6669 int l = for_tok->
line ();
6677 body, lc, tc, l, c);
6690 bison_error (
"invalid syntax for parfor statement");
6715 int l = break_tok->
line ();
6726 int l = continue_tok->
line ();
6727 int c = continue_tok->
column ();
6737 int l = return_tok->
line ();
6738 int c = return_tok->
column ();
6770 int l = if_tok->
line ();
6773 if (list && ! list->
empty ())
6806 int l = elseif_tok->
line ();
6807 int c = elseif_tok->
column ();
6827 int l = switch_tok->
line ();
6828 int c = switch_tok->
column ();
6830 if (list && ! list->
empty ())
6864 int l = case_tok->
line ();
6937 int l = eq_tok->
line ();
6948 bison_error (
"computed multiple assignment not allowed", l, c);
6968 bison_error (
"invalid assignment to keyword \"" + kw +
"\"", l, c);
6981 for (std::list<std::string>::const_iterator it = names.begin ();
6982 it != names.end (); it++)
6991 bison_error (
"invalid assignment to keyword \"" + kw +
"\"",
7011 cmds->
append (end_script);
7039 body->
append (end_fcn_stmt);
7043 param_list, 0, body);
7051 end_fcn_stmt->
column ());
7086 if (pos != std::string::npos)
7092 (
"Octave:function-name-clash",
7093 "function name '%s' does not agree with function filename '%s'",
7137 "time stamp for '%s' is in the future", nm.c_str ());
7144 warning (
"function '%s' defined within script file '%s'",
7182 if (! file.empty ())
7259 args(0) = method_nm;
7302 if (pos != std::string::npos)
7312 bison_error (
"invalid classdef definition, the class name must match the filename");
7321 int l = tok_val->
line ();
7357 int l = tok_val->
line ();
7389 int l = tok_val->
line ();
7421 int l = tok_val->
line ();
7453 int l = tok_val->
line ();
7491 if (mname.find_first_of (
".") == std::string::npos
7492 && mname !=
"delete"
7502 int l =
id->line ();
7503 int c =
id->column ();
7508 bison_error (
"invalid external method declaration, an external "
7509 "method cannot be the class constructor, `delete' "
7510 "or have a dot (.) character in its name");
7513 bison_error (
"external methods are only allowed in @-folders");
7552 bison_error (
"invalid use of empty argument (~) in index expression");
7556 int l = expr->
line ();
7567 tmp->
append (args, type);
7586 int l = expr->
line ();
7616 int l = expr->
line ();
7646 int l = tok_val->
line ();
7661 warning (
"ignoring persistent declaration near line %d of file '%s'",
7664 warning (
"ignoring persistent declaration near line %d", l);
7692 bison_error (
"invalid use of tilde (~) in matrix expression");
7694 bison_error (
"invalid use of tilde (~) in cell expression");
7715 bison_error (
"invalid empty left hand side of assignment");
7717 bison_error (
"invalid constant left hand side of assignment");
7721 bool is_simple_assign =
true;
7729 if (mat && mat->
size () == 1)
7731 tmp = mat->
front ();
7734 is_simple_assign =
false;
7749 bison_error (
"invalid left hand side of assignment");
7752 if (retval && is_simple_assign)
7784 std::ostringstream buf;
7788 array_list->
accept (tpc);
7796 catch (
const octave::execution_exception&)
7834 (
"Octave:missing-semicolon",
7835 "missing semicolon near line %d, column %d in file '%s'",
7842 char sep,
bool warn_missing_semi)
7856 if (warn_missing_semi)
7861 warning (
"unrecognized separator type!");
7878 template <
typename T>
7896 bool warn_missing_semi)
7911 std::ostringstream output_buf;
7915 output_buf <<
"parse error near line " << err_line
7918 output_buf <<
"parse error:";
7920 if (str !=
"parse error")
7921 output_buf <<
"\n\n " <<
str;
7923 output_buf <<
"\n\n";
7927 if (! curr_line.empty ())
7929 size_t len = curr_line.length ();
7931 if (curr_line[len-1] ==
'\n')
7932 curr_line.resize (len-1);
7936 output_buf <<
">>> " << curr_line <<
"\n";
7941 for (
int i = 0;
i < err_col + 3;
i++)
7963 catch (octave::execution_exception&
e)
7968 error (e,
"parse error");
7970 error (e,
"parse error in %s", file.c_str ());
7972 catch (
const octave::exit_exception&)
7976 catch (octave::interrupt_exception &)
7985 error (
"unexpected exception while parsing input");
7987 error (
"unexpected exception while parsing %s", file.c_str ());
8027 catch (octave::execution_exception&
e)
8032 error (e,
"parse error");
8034 error (e,
"parse error in %s", file.c_str ());
8036 catch (
const octave::exit_exception&)
8040 catch (octave::interrupt_exception &)
8049 error (
"unexpected exception while parsing input");
8051 error (
"unexpected exception while parsing %s", file.c_str ());
8067 fclose (static_cast<FILE *> (f));
8074 bool require_file,
bool force_script,
bool autoload,
8075 bool relative_lookup,
const std::string& warn_for)
8094 if (! full_file.empty ())
8095 ffile = std::fopen (full_file.c_str (),
"rb");
8118 int status = parser.
run ();
8134 bool is_at_folder = ! dispatch_type.empty ();
8157 error (
"parse error while reading file %s", full_file.c_str ());
8159 else if (require_file)
8160 error (
"no such file, '%s'", full_file.c_str ());
8161 else if (! warn_for.empty ())
8162 error (
"%s: unable to open file '%s'", warn_for.c_str (),
8163 full_file.c_str ());
8178 size_t file_len = file.length ();
8180 if ((file_len > 4 && file.substr (file_len-4) ==
".oct")
8181 || (file_len > 4 && file.substr (file_len-4) ==
".mex")
8182 || (file_len > 2 && file.substr (file_len-2) ==
".m"))
8185 file = file.substr (0, file.find_last_of (
'.'));
8188 if (pos != std::string::npos)
8189 file = file.substr (pos+1);
8192 if (! file.empty ())
8194 symbol_found =
true;
8197 =
parse_fcn_file (full_file, file,
"",
"",
true,
false,
false,
false,
8223 typedef std::map<std::string, std::string>::const_iterator am_iter;
8225 am_iter
p = autoload_map.find (nm);
8227 if (p != autoload_map.end ())
8239 typedef std::map<std::string, std::string>::const_iterator am_iter;
8240 for (am_iter
p = autoload_map.begin ();
p != autoload_map.end ();
p++)
8241 names[i++] =
p->first;
8251 typedef std::map<std::string, std::string>::const_iterator am_iter;
8252 for (am_iter
p = autoload_map.begin ();
p != autoload_map.end ();
p++)
8253 if (nm ==
p->second)
8271 size_t nm_len = nm.
length ();
8275 bool relative_lookup =
false;
8279 if ((nm_len > 4 && nm.substr (nm_len-4) ==
".oct")
8280 || (nm_len > 4 && nm.substr (nm_len-4) ==
".mex")
8281 || (nm_len > 2 && nm.substr (nm_len-2) ==
".m"))
8284 nm = nm.substr (0, nm.find_last_of (
'.'));
8287 if (pos != std::string::npos)
8288 nm = nm.substr (pos+1);
8295 int len = file.length ();
8297 if (len > 4 && file.substr (len-4, len-1) ==
".oct")
8299 if (autoload && ! fcn_name.empty ())
8304 else if (len > 4 && file.substr (len-4, len-1) ==
".mex")
8311 package_name,
false,
8313 relative_lookup,
"");
8323 retval =
parse_fcn_file (file, nm, dispatch_type, package_name,
true,
8324 autoload, autoload, relative_lookup,
"");
8387 if (nargin == 1 || nargin > 3)
8396 typedef std::map<std::string, std::string>::const_iterator am_iter;
8397 for (am_iter
p = autoload_map.begin ();
p != autoload_map.end ();
p++)
8399 func_names(i) =
p->first;
8400 file_names(i) =
p->second;
8407 m.
assign (
"function", func_names);
8408 m.
assign (
"file", file_names);
8428 if (! fname.empty ())
8444 "autoload: '%s' is not an absolute filename",
8448 autoload_map[argv[1]] =
nm;
8449 else if (nargin == 3)
8451 if (argv[3] !=
"remove")
8453 "autoload: third argument can only be 'remove'");
8457 autoload_map.erase (argv[1]);
8501 static std::map<std::string, int> source_call_depth;
8509 if (source_call_depth.find (file_full_name) == source_call_depth.end ())
8510 source_call_depth[file_full_name] = -1;
8512 frame.
protect_var (source_call_depth[file_full_name]);
8514 source_call_depth[file_full_name]++;
8517 error (
"max_recursion_depth exceeded");
8519 if (! context.empty ())
8521 if (context ==
"caller")
8523 else if (context ==
"base")
8526 error (
"source: context must be \"caller\" or \"base\"");
8533 bool delete_fcn =
false;
8537 dir_end = (dir_end == std::string::npos) ? 0 : dir_end + 1;
8539 size_t extension = file_name.find_last_of (
'.');
8540 if (extension == std::string::npos)
8541 extension = file_name.length ();
8543 std::string symbol = file_name.substr (dir_end, extension - dir_end);
8568 require_file,
true,
false,
false, warn_for);
8570 catch (octave::execution_exception&
e)
8572 error (e,
"source: error sourcing file '%s'",
8573 file_full_name.c_str ());
8585 error (
"source: %s is not a script", full_name.c_str ());
8593 std::cout <<
"executing commands from " << full_name <<
" ... ";
8594 reading_startup_message_printed =
true;
8601 std::cout <<
"done." << std::endl;
8608 DEFUN (mfilename, args, ,
8634 arg =
args(0).xstring_value (
"mfilename: argument must be a string");
8645 fname = fcn->
name ();
8648 if (arg ==
"fullpathext")
8653 size_t epos = fname.rfind (
'.');
8656 epos = std::string::npos;
8658 fname = (epos != std::string::npos) ? fname.substr (0, epos) :
fname;
8660 if (arg ==
"fullpath")
8663 retval = (dpos != std::string::npos) ? fname.substr (dpos+1) :
fname;
8669 DEFUN (source, args, ,
8687 int nargin = args.
length ();
8689 if (nargin < 1 || nargin > 2)
8692 std::string file_name =
args(0).xstring_value (
"source: FILE must be a string");
8697 context =
args(1).xstring_value (
"source: CONTEXT must be a string");
8725 error (
"feval: function '%s' not found", name.c_str ());
8774 retval =
feval (name, tmp_args, nargout);
8785 error (
"feval: first argument must be a string, inline function, or a function handle");
8834 return feval (args, nargout);
8837 DEFUN (builtin, args, nargout,
8868 const std::string name (
args(0).xstring_value (
"builtin: function name (F) must be a string"));
8875 error (
"builtin: lookup for symbol '%s' failed", name.c_str ());
8882 int& parse_status,
int nargout)
8892 parse_status = parser.run ();
8894 if (parse_status == 0)
8909 bool do_bind_ans =
false;
8916 do_bind_ans = (!
id->is_variable ());
8921 retval = expr->
rvalue (nargout);
8923 if (do_bind_ans && ! retval.
empty ())
8929 else if (nargout == 0)
8932 error (
"eval: invalid use of statement list");
8943 while (parse_status == 0);
8967 return eval_string (s, silent, parse_status, nargout);
8980 DEFUN (eval, args, nargout,
9022 int nargin = args.
length ();
9035 int parse_status = 0;
9037 bool execution_error =
false;
9045 catch (
const octave::execution_exception&)
9049 execution_error =
true;
9052 if (nargin > 1 && (parse_status != 0 || execution_error))
9071 if (execution_error)
9118 DEFUN (assignin, args, ,
9131 std::string context =
args(0).xstring_value (
"assignin: CONTEXT must be a string");
9135 if (context ==
"caller")
9137 else if (context ==
"base")
9140 error (
"assignin: CONTEXT must be \"caller\" or \"base\"");
9153 error (
"assignin: invalid assignment to keyword '%s'", nm.c_str ());
9158 error (
"assignin: invalid variable name in argument VARNAME");
9169 DEFUN (evalin, args, nargout,
9180 int nargin = args.
length ();
9185 std::string context =
args(0).xstring_value (
"evalin: CONTEXT must be a string");
9189 if (context ==
"caller")
9191 else if (context ==
"base")
9194 error (
"evalin: CONTEXT must be \"caller\" or \"base\"");
9204 int parse_status = 0;
9206 bool execution_error =
false;
9213 parse_status, nargout);
9215 catch (
const octave::execution_exception&)
9219 execution_error =
true;
9222 if (nargin > 2 && (parse_status != 0 || execution_error))
9230 parse_status, nargout);
9242 if (execution_error)
9250 maybe_print_last_error_message (
bool *doit)
9260 restore_octave_stdout (std::streambuf *buf)
9267 restore_octave_stderr (std::streambuf *buf)
9270 std::cerr.rdbuf (buf);
9273 DEFUN (evalc, args, nargout,
9302 int nargin = args.
length ();
9304 if (nargin == 0 || nargin > 2)
9308 std::ostringstream buffer;
9311 std::ostream& err_stream = std::cerr;
9313 out_stream.flush ();
9314 err_stream.flush ();
9316 std::streambuf* old_out_buf = out_stream.rdbuf (buffer.rdbuf ());
9317 std::streambuf* old_err_buf = err_stream.rdbuf (buffer.rdbuf ());
9319 bool eval_error_occurred =
true;
9323 frame.
add_fcn (maybe_print_last_error_message, &eval_error_occurred);
9324 frame.
add_fcn (restore_octave_stdout, old_out_buf);
9325 frame.
add_fcn (restore_octave_stderr, old_err_buf);
9329 int eval_nargout =
std::max (0, nargout - 1);
9331 retval =
Feval (args, eval_nargout);
9332 eval_error_occurred =
false;
9334 retval.
prepend (buffer.str ());
9395 DEFUN (__parser_debug_flag__, args, nargout,
9409 "__parser_debug_flag__");
9411 octave_debug = debug_flag;
9416 DEFUN (__parse_file__, args, ,
9424 int nargin = args.
length ();
9426 if (nargin < 1 || nargin > 2)
9429 std::string file =
args(0).xstring_value (
"__parse_file__: expecting filename as argument");
9433 size_t file_len = file.length ();
9435 if ((file_len > 4 && file.substr (file_len-4) ==
".oct")
9436 || (file_len > 4 && file.substr (file_len-4) ==
".mex")
9437 || (file_len > 2 && file.substr (file_len-2) ==
".m"))
9440 file = file.substr (0, file.find_last_of (
'.'));
9443 if (pos != std::string::npos)
9444 file = file.substr (pos+1);
9452 false,
"__parse_file__");
void stash_trailing_comment(octave_comment_list *tc)
void accept(tree_walker &tw)
static std::string dir_sep_str(void)
void warning_with_id(const char *id, const char *fmt,...)
static const yytype_int16 yytable[]
int beginning_line(void) const
function name in a string
string_vector reverse_lookup_autoload(const std::string &nm)
tree_decl_init_list * tree_decl_init_list_type
tree_expression * remove_front(void)
bool has_magic_tilde(void) const
tree_classdef_enum_block * tree_classdef_enum_block_type
static const octave_value instance
static void install_subfunction(const std::string &name, const octave_value &fcn, scope_id scope)
For example cd octave end example noindent changes the current working directory to an error message is printed and the working directory is not changed sc
Octave interface to the compression and uncompression libraries.
OCTAVE_EXPORT octave_value_list column
For example cd octave end example noindent changes the current working directory to file
tree_expression * tree_expression_type
void stash_fcn_file_time(const octave::sys::time &t)
std::string text_rep(void)
std::string canonicalize_file_name(const std::string &name)
tree_switch_case_list * tree_switch_case_list_type
octave_function * load_fcn_from_file(const std::string &file_name, const std::string &dir_name, const std::string &dispatch_type, const std::string &package_name, const std::string &fcn_name, bool autoload)
tree_classdef * make_classdef(token *tok_val, tree_classdef_attribute_list *a, tree_identifier *id, tree_classdef_superclass_list *sc, tree_classdef_body *body, token *end_tok, octave_comment_list *lc)
int paren_count(void) const
tree_classdef_properties_block * make_classdef_properties_block(token *tok_val, tree_classdef_attribute_list *a, tree_classdef_property_list *plist, token *end_tok, octave_comment_list *lc)
void document(const std::string &ds)
virtual octave_value_list do_multi_index_op(int nargout, const octave_value_list &idx)
tree_expression * finish_colon_expression(tree_colon_expression *e)
tree_classdef_superclass * tree_classdef_superclass_type
tree_if_command_list * tree_if_command_list_type
The value of lines which begin with a space character are not saved in the history list A value of all commands are saved on the history list
octave_value_list slice(octave_idx_type offset, octave_idx_type len, bool tags=false) const
tree_command * tree_command_type
void mark_as_simple_assign_lhs(void)
virtual void stash_subfunction_names(const std::list< std::string > &)
void assign(const std::string &k, const Cell &val)
tree_classdef_methods_list * tree_classdef_methods_list_type
virtual bool is_constant(void) const
tree_command * make_try_command(token *try_tok, tree_statement_list *body, char catch_sep, tree_statement_list *cleanup, token *end_tok, octave_comment_list *lc, octave_comment_list *mc)
static const yytype_int16 yypact[]
bool validate(in_or_out type)
tree_funcall * make_superclass_ref(const std::string &method_nm, const std::string &class_nm)
octave_value rvalue1(int nargout=1)
unsigned short int yytype_uint16
std::string curr_package_name
void octave_pstate_delete(octave_pstate *ps)
#define YY_INITIAL_VALUE(Value)
tree_expression * finish_cell(tree_cell *c)
tree_classdef_property * tree_classdef_property_type
OCTINTERP_API void print_usage(void)
bool is_function(void) const
tree_decl_command * tree_decl_command_type
static std::string dir_sep_chars(void)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE const F77_DBLE * f
#define YYSTACK_ALLOC_MAXIMUM
static void set_input_stream(FILE *f)
tree_colon_expression * tree_colon_expression_type
octave_idx_type length(void) const
void accept(tree_walker &tw)
OCTINTERP_API std::string undo_string_escapes(const std::string &s)
OCTINTERP_API std::string fcn_file_in_path(const std::string &)
tree_fcn_handle * make_fcn_handle(token *tok_val)
bool is_defined(void) const
int octave_pull_parse(octave_pstate *ps, octave::base_parser &parser)
static const yytype_uint8 yyr2[]
tree_argument_list * tree_argument_list_type
tree_command * make_do_until_command(token *until_tok, tree_statement_list *body, tree_expression *expr, octave_comment_list *lc)
int octave_parse(octave::base_parser &parser)
std::string doc_string(void) const
tree_index_expression * make_indirect_ref(tree_expression *expr, const std::string &)
static std::string find_file(const std::string &file)
std::string fcn_file_full_name
static const yytype_uint16 yydefact[]
std::string text(void) const
virtual bool is_user_code(void) const
tree_expression * set_print_flag(bool print)
symbol_table::scope_id curr_scope(void) const
#define DEFUN(name, args_name, nargout_name, doc)
void error(const char *fmt,...)
symbol_table::scope_id scope(void)
string_vector autoloaded_functions(void)
std::string name(void) const
void stash_fcn_end_location(int line, int col)
comment_buffer comment_buf
static octave_value find_built_in_function(const std::string &name)
tree_classdef_enum_block * make_classdef_enum_block(token *tok_val, tree_classdef_attribute_list *a, tree_classdef_enum_list *elist, token *end_tok, octave_comment_list *lc)
static void ignore_entries(bool=true)
static scope_id alloc_scope(void)
octave::base_lexer * LEXER
double number(void) const
tree_index_expression * tree_index_expression_type
tree_classdef_superclass_list * tree_classdef_superclass_list_type
tree_command * make_unwind_command(token *unwind_tok, tree_statement_list *body, tree_statement_list *cleanup, token *end_tok, octave_comment_list *lc, octave_comment_list *mc)
tree_expression * finish_matrix(tree_matrix *m)
void message_with_id(const char *name, const char *id, const char *fmt,...)
static void clear_dld_function(const std::string &name)
tree_classdef_methods_block * tree_classdef_methods_block_type
std::string get_help_from_file(const std::string &nm, bool &symbol_found, std::string &full_file)
#define YY_REDUCE_PRINT(Rule)
OCTAVE_EXPORT octave_value_list return the number of command line arguments passed to Octave If called with the optional argument the function t
tree_matrix * tree_matrix_type
void maybe_warn_missing_semi(tree_statement_list *)
static void stash_dir_name_for_subfunctions(scope_id scope, const std::string &dir_name)
bool is_newer(const octave::sys::time &time) const
void stash_leading_comment(octave_comment_list *lc)
std::string xstring_value(const char *fmt,...) const
OCTAVE_EXPORT octave_value_list return the value of the option it must match the dimension of the state and the relative tolerance must also be a vector of the same length tem it must match the dimension of the state and the absolute tolerance must also be a vector of the same length The local error test applied at each integration step is xample roup calculate Y_a and Y _d item Given calculate Y nd enumerate In either initial values for the given components are input
bool fcn_file_from_relative_lookup
tree_expression * make_prefix_op(int op, tree_expression *op1, token *tok_val)
int octave_push_parse(octave_pstate *ps, int pushed_char, OCTAVE_STYPE const *pushed_val, octave::base_parser &parser)
bool looking_at_parameter_list
void stash_dir_name(const std::string &dir)
static void goto_caller_frame(void)
static std::string tilde_expand(const std::string &)
static octave_value find_function(const std::string &name, const octave_value_list &args=octave_value_list(), bool local_funcs=true)
void end_token_error(token *tok, token::end_tok_type expected)
bool is_function_handle(void) const
void stash_fcn_location(int line, int col)
static void cache_name(scope_id scope, const std::string &name)
bool looking_at_return_list
virtual symbol_table::scope_id scope(void)
static const yytype_int16 yydefgoto[]
tree_statement_list * tree_statement_list_type
tree_expression * increment(void)
This class gets nodes and searchs inside of 'info files'.
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
OCTAVE_EXPORT octave_value_list search each directory of the loadpath for element of the cell array and return the first that matches If the second optional argument return a cell array containing the list of all files that have the same name in the path If no files are found
static const yytype_uint8 yyr1[]
void accept(tree_walker &tw)
void maybe_warn_assign_as_truth_value(tree_expression *expr)
bool is_postfix_indexed(void) const
tree_expression * make_boolean_op(int op, tree_expression *op1, token *tok_val, tree_expression *op2)
int run(const std::string &input, bool eof)
tree_evaluator * current_evaluator
octave_value_list do_multi_index_op(int nargout, const octave_value_list &idx)
static std::string make_absolute(const std::string &s, const std::string &dot_path=get_current_directory())
int octave_lex(OCTAVE_STYPE *, void *)
The main scanner function which does all the work.
octave_user_function * start_classdef_external_method(tree_identifier *id, tree_parameter_list *pl)
tree_if_command * tree_if_command_type
tree_switch_case * make_switch_case(token *case_tok, tree_expression *expr, tree_statement_list *list, octave_comment_list *lc)
static const yytype_int16 yycheck[]
static const octave_value instance
unsigned short int yytype_uint16
tree_cell * tree_cell_type
int buffer_error_messages
bool print_result(void) const
static octave_user_code * caller_user_code(size_t nskip=0)
OCTAVE_EXPORT octave_value_list isdir nd deftypefn *std::string nm
#define yytable_value_is_error(Yytable_value)
tree_classdef_properties_block * tree_classdef_properties_block_type
OCTAVE_EXPORT octave_value_list return the number of command line arguments passed to Octave If called with the optional argument the function xample nargout(@histc)
void octave_throw_execution_exception(void)
void add_fcn(void(*fcn)(void))
tree_command * make_while_command(token *while_tok, tree_expression *expr, tree_statement_list *body, token *end_tok, octave_comment_list *lc)
tree_function_def * finish_classdef_external_method(octave_user_function *fcn, tree_parameter_list *ret_list, octave_comment_list *cl)
static const octave_value instance
bool valid_identifier(const char *s)
bool all_elements_are_constant(void) const
std::list< std::string > subfunction_names
static llvm::LLVMContext & context
std::string string_value(bool force=false) const
void stash_function_name(const std::string &s)
void mark_as_system_fcn_file(void)
void error_with_id(const char *id, const char *fmt,...)
nd deftypefn *octave_map m
bool parsing_class_method
bool validate_array_list(tree_expression *e)
tree_funcall * make_meta_class_query(const std::string &class_nm)
tree_funcall * tree_funcall_type
bool is_string(void) const
unsigned char yytype_uint8
static octave_function * load_oct(const std::string &fcn_name, const std::string &file_name="", bool relative=false)
virtual bool is_index_expression(void) const
tree_classdef_property_list * tree_classdef_property_list_type
OCTINTERP_API std::string last_error_id(void)
static char dir_sep_char(void)
bool is_inline_function(void) const
string_vector & append(const std::string &s)
OCTINTERP_API octave_value set_internal_variable(bool &var, const octave_value_list &args, int nargout, const char *nm)
static bool absolute_pathname(const std::string &s)
void stash_parent_fcn_scope(symbol_table::scope_id ps)
tree_anon_fcn_handle * tree_anon_fcn_handle_type
void mark_as_class_method(void)
void stash_original_text(const std::string &s)
tree_expression * limit(void)
tree_classdef_attribute_list * tree_classdef_attribute_list_type
void mark_as_formal_parameters(void)
tree_anon_fcn_handle * make_anon_fcn_handle(tree_parameter_list *param_list, tree_statement *stmt)
octave_value_list splice(octave_idx_type offset, octave_idx_type len, const octave_value_list &lst=octave_value_list()) const
#define panic_impossible()
bool looking_at_indirect_ref
tree_switch_command * tree_switch_command_type
tree_constant * tree_constant_type
tree_index_expression * make_index_expression(tree_expression *expr, tree_argument_list *args, char type)
tree_classdef_body * tree_classdef_body_type
static void yydestruct(const char *yymsg, int yytype, OCTAVE_STYPE *yyvaluep, octave::base_parser &parser)
static void assign(const std::string &name, const octave_value &value=octave_value(), scope_id scope=xcurrent_scope, context_id context=xdefault_context, bool force_add=false)
tree_if_command * finish_if_command(token *if_tok, tree_if_command_list *list, token *end_tok, octave_comment_list *lc)
void maybe_warn_variable_switch_label(tree_expression *expr)
OCTINTERP_API void bind_ans(const octave_value &val, bool print)
virtual bool is_user_function(void) const
void make_script(tree_statement_list *cmds, tree_statement *end_script)
void stash_fcn_file_time(const octave::sys::time &t)
tree_classdef_enum * tree_classdef_enum_type
static std::string base_pathname(const std::string &s)
static FILE * get_input_stream(void)
static void goto_base_frame(void)
bool is_keyword(const std::string &s)
the sparsity preserving column transformation such that that defines the pivoting threshold can be given in which case it defines the c
bool is_valid_lvalue_list(void) const
tree_parameter_list * tree_parameter_list_type
unsigned char yytype_uint8
std::string fcn_file_name(void) const
tree_function_def * tree_function_def_type
virtual void maybe_relocate_end(void)
octave_pstate * octave_pstate_new(void)
virtual int line(void) const
void parse_error(const char *fmt,...)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
tree_command * make_continue_command(token *continue_tok)
octave::base_list< tree_argument_list * >::iterator iterator
void mark_as_variables(const std::list< std::string > &lst)
void bison_error(const std::string &s, int l=-1, int c=-1)
tree_classdef * classdef_object
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
static const yytype_uint8 yytranslate[]
end_tok_type ettype(void) const
tree_classdef_events_list * tree_classdef_events_list_type
octave_function * function_value(bool silent=false) const
tree_classdef_events_block * tree_classdef_events_block_type
tree_expression * make_assign_op(int op, tree_argument_list *lhs, token *eq_tok, tree_expression *rhs)
octave_comment_list * get_comment(void)
std::string parse_error_msg
static std::string end_token_as_string(token::end_tok_type ettype)
tree_classdef_attribute * tree_classdef_attribute_type
void warning(const char *fmt,...)
octave_user_function * frob_function(const std::string &fname, octave_user_function *fcn)
octave::unwind_protect frame
void recover_from_exception(void)
tree_switch_command * finish_switch_command(token *switch_tok, tree_expression *expr, tree_switch_case_list *list, token *end_tok, octave_comment_list *lc)
virtual std::string name(void) const
OCTINTERP_API std::string last_error_message(void)
tree_binary_expression * maybe_compound_binary_expression(tree_expression *a, tree_expression *b, int l, int c, octave_value::binary_op t)
tree_argument_list * validate_matrix_for_assignment(tree_expression *e)
virtual octave_value rvalue1(int nargout=1)
charNDArray max(char d, const charNDArray &m)
virtual std::string fcn_file_name(void) const
bool at_end_of_buffer(void) const
void mark_as_anon_function_body(void)
bool is_empty(void) const
octave_user_function * start_function(tree_parameter_list *param_list, tree_statement_list *body, tree_statement *end_function)
tree_command * make_for_command(int tok_id, token *for_tok, tree_argument_list *lhs, tree_expression *expr, tree_expression *maxproc, tree_statement_list *body, token *end_tok, octave_comment_list *lc)
void recover_from_parsing_function(void)
symbol_table_context symtab_context
void set_expression(tree_expression *e)
bool input_from_tmp_history_file
tree_function_def * finish_function(tree_parameter_list *ret_list, octave_user_function *fcn, octave_comment_list *lc, int l, int c)
std::string curr_class_name
virtual bool is_matrix(void) const
symbol_table::scope_id primary_fcn_scope
tree_statement_list * make_statement_list(tree_statement *stmt)
std::stack< bool > parsed_function_name
bool parsing_subfunctions
tree_statement * make_end(const std::string &type, bool eof, int l, int c)
octave_comment_list * comment_type
octave_function * make_meta_class(bool is_at_folder=false)
tree_switch_case * tree_switch_case_type
tree_statement * tree_statement_type
=val(i)}if ode{val(i)}occurs in table i
tree_if_command_list * start_if_command(tree_expression *expr, tree_statement_list *list)
tree_command * make_break_command(token *break_tok)
void mark_as_for_cmd_expr(void)
std::list< std::string > variable_names(void) const
std::string fcn_file_name
tree_expression * expression(void)
tree_statement_list * append_statement_list(tree_statement_list *list, char sep, tree_statement *stmt, bool warn_missing_semi)
tree_classdef_events_block * make_classdef_events_block(token *tok_val, tree_classdef_attribute_list *a, tree_classdef_events_list *elist, token *end_tok, octave_comment_list *lc)
size_t length(void) const
bool reading_classdef_file
tree_classdef_event * tree_classdef_event_type
std::string current_input_line
bool is_anonymous_function(void) const
void stash_dispatch_class(const std::string &nm)
tree_fcn_handle * tree_fcn_handle_type
std::vector< symbol_table::scope_id > function_scopes
virtual octave_value_list rvalue(int nargout)
tree_identifier * tree_identifier_type
static std::map< std::string, std::string > autoload_map
OCTINTERP_API octave_value_list Feval(const octave_value_list &=octave_value_list(), int=0)
static bool ignoring_entries(void)
octave_user_function * define_ret_list(tree_parameter_list *t)
tree_expression * set_postfix_index(char type)
tree_decl_command * make_decl_command(int tok, token *tok_val, tree_decl_init_list *lst)
tree_if_clause * tree_if_clause_type
#define yypact_value_is_default(Yystate)
octave::sys::file_stat fs(filename)
virtual bool is_assignment_expression(void) const
static octave_value builtin_find(const std::string &name)
base_parser(base_lexer &lxr)
void set_print_flag(bool print_flag)
tree_statement * make_statement(T *arg)
void append(tree_argument_list *lst=0, char t= '(')
tree_statement_list * stmt_list
bool is_expression(void) const
tree_command * make_return_command(token *return_tok)
void stash_fcn_file_name(const std::string &nm)
tree_expression * base(void)
void mark_as_subfunction(void)
OCTINTERP_API octave_value_list eval_string(const std::string &, bool silent, int &parse_status, int nargout)
void append(const elt_type &s)
end example noindent will load the function or usages such as example autoload("foo", file_in_loadpath("bar.oct"))@end example @noindent are strongly discouraged
int beginning_column(void) const
std::complex< double > Complex
std::string lookup_autoload(const std::string &nm)
octave_function * primary_fcn_ptr
static void install_nestfunction(const std::string &name, const octave_value &fcn, scope_id parent_scope)
static const yytype_uint8 yystos[]
tree_constant * make_constant(int op, token *tok_val)
static void update_nest(scope_id scope)
OCTINTERP_API void cleanup_statement_list(tree_statement_list **lst)
bool discard_warning_messages
void stash_parent_fcn_name(const std::string &p)
tree_expression * finish_array_list(tree_array_list *a)
bool end_token_ok(token *tok, token::end_tok_type expected)
Vector representing the dimensions (size) of an Array.
OCTINTERP_API void source_file(const std::string &file_name, const std::string &context="", bool verbose=false, bool require_file=true, const std::string &warn_for="")
bool is_null_statement(void) const
bool discard_error_messages
#define YY_STACK_PRINT(Bottom, Top)
octave_user_function * octave_user_function_type
virtual int column(void) const
static octave_function * load_mex(const std::string &fcn_name, const std::string &file_name="", bool relative=false)
bool reading_startup_message_printed
tree_decl_elt * tree_decl_elt_type
tree_classdef_enum_list * tree_classdef_enum_list_type
tree_classdef_methods_block * make_classdef_methods_block(token *tok_val, tree_classdef_attribute_list *a, tree_classdef_methods_list *mlist, token *end_tok, octave_comment_list *lc)
octave_value_list & prepend(const octave_value &val)
virtual bool is_identifier(void) const
tree_statement_list * set_stmt_print_flag(tree_statement_list *, char, bool)
tree_if_clause * make_elseif_clause(token *elseif_tok, tree_expression *expr, tree_statement_list *list, octave_comment_list *lc)
tree_classdef * tree_classdef_type
bool is_simple_assign_lhs(void)
static const yytype_int16 yypgoto[]
void mark_as_class_constructor(void)
where the brackets indicate optional arguments and and character or cell array For character arrays the conversion is repeated for every row
void stash_package_name(const std::string &pack)
static void safe_fclose(FILE *f)
tree_expression * make_binary_op(int op, tree_expression *op1, token *tok_val, tree_expression *op2)
tree_expression * make_postfix_op(int op, tree_expression *op1, token *tok_val)
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
static octave_value find(const std::string &name, const octave_value_list &args=octave_value_list(), bool skip_variables=false, bool local_funcs=true)
static octave_function * parse_fcn_file(const std::string &full_file, const std::string &file, const std::string &dispatch_type, const std::string &package_name, bool require_file, bool force_script, bool autoload, bool relative_lookup, const std::string &warn_for)