47 #define YYBISON_VERSION "3.0.2"
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 29 "parse-tree/oct-parse.yy"
139 #if defined (GNULIB_NAMESPACE)
143 #define fclose GNULIB_NAMESPACE::fclose
144 #define fprintf GNULIB_NAMESPACE::fprintf
145 #define malloc GNULIB_NAMESPACE::malloc
159 #define ABORT_PARSE \
163 if (interactive && ! lexer.input_from_eval_string ()) \
170 #define lexer parser.lexer
171 #define scanner lexer.scanner
174 #line 175 "parse-tree/oct-parse.cc"
177 # if defined __cplusplus && 201103L <= __cplusplus
178 # define YY_NULLPTR nullptr
180 # define YY_NULLPTR 0
185 #ifdef YYERROR_VERBOSE
186 # undef YYERROR_VERBOSE
187 # define YYERROR_VERBOSE 1
189 # define YYERROR_VERBOSE 0
194 #ifndef YY_OCTAVE_PARSE_TREE_OCT_PARSE_H_INCLUDED
195 # define YY_OCTAVE_PARSE_TREE_OCT_PARSE_H_INCLUDED
200 # define OCTAVE_DEBUG 1
202 # define OCTAVE_DEBUG 0
205 # define OCTAVE_DEBUG 0
213 #ifndef OCTAVE_TOKENTYPE
214 # define OCTAVE_TOKENTYPE
306 #define LEFTDIV_EQ 262
310 #define ELEFTDIV_EQ 266
314 #define LSHIFT_EQ 270
315 #define RSHIFT_EQ 271
318 #define EXPR_AND_AND 274
319 #define EXPR_OR_OR 275
335 #define HERMITIAN 291
336 #define TRANSPOSE 292
337 #define PLUS_PLUS 293
338 #define MINUS_MINUS 294
343 #define STRUCT_ELT 299
346 #define DQ_STRING 302
347 #define SQ_STRING 303
358 #define OTHERWISE 314
367 #define PERSISTENT 323
368 #define FCN_HANDLE 324
370 #define PROPERTIES 326
373 #define ENUMERATION 329
374 #define METAQUERY 330
375 #define SUPERCLASSREF 331
380 #define END_OF_INPUT 336
381 #define LEXICAL_ERROR 337
382 #define INPUT_FILE 338
386 #if ! defined OCTAVE_STYPE && ! defined OCTAVE_STYPE_IS_DECLARED
390 #line 150 "parse-tree/oct-parse.yy"
448 #line 449 "parse-tree/oct-parse.cc"
450 # define OCTAVE_STYPE_IS_TRIVIAL 1
451 # define OCTAVE_STYPE_IS_DECLARED 1
456 #ifndef YYPUSH_MORE_DEFINED
457 # define YYPUSH_MORE_DEFINED
473 #line 474 "parse-tree/oct-parse.cc"
504 # ifdef __SIZE_TYPE__
505 # define YYSIZE_T __SIZE_TYPE__
506 # elif defined size_t
507 # define YYSIZE_T size_t
508 # elif ! defined YYSIZE_T
510 # define YYSIZE_T size_t
512 # define YYSIZE_T unsigned int
516 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
519 # if defined YYENABLE_NLS && YYENABLE_NLS
521 # include <libintl.h>
522 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
526 # define YY_(Msgid) Msgid
531 # if (defined __GNUC__ \
532 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
533 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
534 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
536 # define YY_ATTRIBUTE(Spec)
540 #ifndef YY_ATTRIBUTE_PURE
541 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
544 #ifndef YY_ATTRIBUTE_UNUSED
545 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
548 #if !defined _Noreturn \
549 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
550 # if defined _MSC_VER && 1200 <= _MSC_VER
551 # define _Noreturn __declspec (noreturn)
553 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
558 #if ! defined lint || defined __GNUC__
559 # define YYUSE(E) ((void) (E))
564 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
566 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
567 _Pragma ("GCC diagnostic push") \
568 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
569 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
570 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
571 _Pragma ("GCC diagnostic pop")
573 # define YY_INITIAL_VALUE(Value) Value
575 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
576 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
577 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
579 #ifndef YY_INITIAL_VALUE
580 # define YY_INITIAL_VALUE(Value)
584 #if ! defined yyoverflow || YYERROR_VERBOSE
588 # ifdef YYSTACK_ALLOC
590 # define YYSTACK_FREE(Ptr) do { ; } while (0)
591 # ifndef YYSTACK_ALLOC_MAXIMUM
596 # define YYSTACK_ALLOC_MAXIMUM 4032
599 # define YYSTACK_ALLOC YYMALLOC
600 # define YYSTACK_FREE YYFREE
601 # ifndef YYSTACK_ALLOC_MAXIMUM
602 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
604 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
605 && ! ((defined YYMALLOC || defined malloc) \
606 && (defined YYFREE || defined free)))
608 # ifndef EXIT_SUCCESS
609 # define EXIT_SUCCESS 0
613 # define YYMALLOC malloc
614 # if ! defined malloc && ! defined EXIT_SUCCESS
620 # if ! defined free && ! defined EXIT_SUCCESS
628 #if (! defined yyoverflow \
629 && (! defined __cplusplus \
630 || (defined OCTAVE_STYPE_IS_TRIVIAL && OCTAVE_STYPE_IS_TRIVIAL)))
640 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
644 # define YYSTACK_BYTES(N) \
645 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
646 + YYSTACK_GAP_MAXIMUM)
648 # define YYCOPY_NEEDED 1
655 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
658 YYSIZE_T yynewbytes; \
659 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
660 Stack = &yyptr->Stack_alloc; \
661 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
662 yyptr += yynewbytes / sizeof (*yyptr); \
668 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
672 # if defined __GNUC__ && 1 < __GNUC__
673 # define YYCOPY(Dst, Src, Count) \
674 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
676 # define YYCOPY(Dst, Src, Count) \
680 for (yyi = 0; yyi < (Count); yyi++) \
681 (Dst)[yyi] = (Src)[yyi]; \
694 #define YYNTOKENS 102
700 #define YYNSTATES 524
705 #define YYMAXUTOK 339
707 #define YYTRANSLATE(YYX) \
708 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
714 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
715 100, 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 90, 91, 7, 6, 97, 5, 96, 8, 2, 2,
719 2, 2, 2, 2, 2, 2, 2, 2, 4, 98,
720 2, 3, 2, 2, 99, 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, 92, 2, 93, 2, 2, 2, 2, 2, 2,
724 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
725 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
726 2, 2, 2, 94, 2, 95, 2, 2, 2, 2,
727 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
728 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
729 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
730 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
731 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
732 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
733 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
734 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
735 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
736 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
737 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
738 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
739 2, 2, 2, 2, 2, 2, 1, 2, 9, 10,
740 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
741 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
742 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
743 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
744 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
745 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
746 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
747 81, 82, 83, 84, 85, 86, 87, 88, 89, 101
754 0, 399, 399, 405, 412, 419, 425, 429, 431, 436,
755 437, 441, 445, 447, 451, 453, 455, 467, 478, 480,
756 491, 499, 508, 516, 518, 522, 524, 526, 530, 534,
757 536, 550, 554, 556, 575, 576, 578, 580, 582, 584,
758 588, 595, 602, 604, 606, 608, 613, 615, 617, 619,
759 623, 632, 640, 642, 644, 646, 651, 656, 663, 670,
760 672, 674, 676, 685, 694, 703, 712, 714, 716, 718,
761 720, 722, 724, 726, 728, 730, 732, 734, 736, 738,
762 740, 742, 744, 746, 748, 750, 752, 756, 758, 760,
763 762, 771, 780, 789, 798, 800, 802, 804, 806, 808,
764 810, 814, 818, 820, 833, 835, 837, 839, 841, 843,
765 845, 847, 849, 851, 853, 855, 857, 861, 875, 877,
766 879, 881, 883, 885, 887, 889, 891, 893, 895, 897,
767 899, 901, 903, 907, 922, 924, 932, 934, 936, 938,
768 940, 942, 944, 952, 957, 964, 966, 974, 979, 981,
769 994, 996, 1004, 1014, 1016, 1023, 1031, 1038, 1049, 1062,
770 1075, 1076, 1078, 1080, 1087, 1089, 1096, 1105, 1118, 1130,
771 1137, 1149, 1161, 1173, 1191, 1193, 1195, 1203, 1216, 1229,
772 1246, 1275, 1289, 1297, 1304, 1313, 1314, 1330, 1332, 1339,
773 1341, 1349, 1355, 1373, 1390, 1392, 1403, 1429, 1445, 1454,
774 1460, 1470, 1479, 1488, 1499, 1517, 1523, 1531, 1540, 1580,
775 1593, 1606, 1621, 1622, 1626, 1628, 1635, 1637, 1644, 1654,
776 1655, 1660, 1659, 1668, 1667, 1680, 1684, 1686, 1688, 1690,
777 1692, 1699, 1706, 1713, 1723, 1735, 1749, 1751, 1760, 1762,
778 1771, 1783, 1797, 1802, 1809, 1812, 1811, 1826, 1828, 1832,
779 1840, 1854, 1866, 1879, 1881, 1890, 1894, 1906, 1919, 1921,
780 1930, 1939, 1946, 1949, 1954, 1958, 1960, 1962, 1964, 1969,
781 1970, 1975, 1976, 1980, 1982, 1986, 1988, 1990, 1992, 1994,
786 #if OCTAVE_DEBUG || YYERROR_VERBOSE || 0
789 static const char *
const yytname[] =
791 "$end",
"error",
"$undefined",
"'='",
"':'",
"'-'",
"'+'",
"'*'",
"'/'",
792 "ADD_EQ",
"SUB_EQ",
"MUL_EQ",
"DIV_EQ",
"LEFTDIV_EQ",
"POW_EQ",
793 "EMUL_EQ",
"EDIV_EQ",
"ELEFTDIV_EQ",
"EPOW_EQ",
"AND_EQ",
"OR_EQ",
794 "LSHIFT_EQ",
"RSHIFT_EQ",
"LSHIFT",
"RSHIFT",
"EXPR_AND_AND",
795 "EXPR_OR_OR",
"EXPR_AND",
"EXPR_OR",
"EXPR_NOT",
"EXPR_LT",
"EXPR_LE",
796 "EXPR_EQ",
"EXPR_NE",
"EXPR_GE",
"EXPR_GT",
"LEFTDIV",
"EMUL",
"EDIV",
797 "ELEFTDIV",
"EPLUS",
"EMINUS",
"HERMITIAN",
"TRANSPOSE",
"PLUS_PLUS",
798 "MINUS_MINUS",
"POW",
"EPOW",
"NUM",
"IMAG_NUM",
"STRUCT_ELT",
"NAME",
799 "END",
"DQ_STRING",
"SQ_STRING",
"FOR",
"PARFOR",
"WHILE",
"DO",
"UNTIL",
800 "IF",
"ELSEIF",
"ELSE",
"SWITCH",
"CASE",
"OTHERWISE",
"BREAK",
801 "CONTINUE",
"FUNC_RET",
"UNWIND",
"CLEANUP",
"TRY",
"CATCH",
"GLOBAL",
802 "PERSISTENT",
"FCN_HANDLE",
"CLASSDEF",
"PROPERTIES",
"METHODS",
803 "EVENTS",
"ENUMERATION",
"METAQUERY",
"SUPERCLASSREF",
"FQ_IDENT",
"GET",
804 "SET",
"FCN",
"END_OF_INPUT",
"LEXICAL_ERROR",
"INPUT_FILE",
"'('",
805 "')'",
"'['",
"']'",
"'{'",
"'}'",
"'.'",
"','",
"';'",
"'@'",
"'\\n'",
806 "UNARY",
"$accept",
"input",
"simple_list",
"simple_list1",
"opt_list",
807 "list",
"list1",
"statement",
"word_list_cmd",
"word_list",
"identifier",
808 "superclass_identifier",
"meta_identifier",
"string",
"constant",
809 "matrix",
"matrix_rows",
"cell",
"cell_rows",
"cell_or_matrix_row",
810 "fcn_handle",
"anon_fcn_handle",
"primary_expr",
"magic_colon",
811 "magic_tilde",
"arg_list",
"indirect_ref_op",
"oper_expr",
"power_expr",
812 "colon_expr",
"colon_expr1",
"simple_expr",
"assign_lhs",
"assign_expr",
813 "expression",
"command",
"declaration",
"decl1",
"decl_param_init",
814 "decl2",
"select_command",
"if_command",
"if_cmd_list",
"if_cmd_list1",
815 "elseif_clause",
"else_clause",
"switch_command",
"case_list",
816 "case_list1",
"switch_case",
"default_case",
"loop_command",
817 "jump_command",
"except_command",
"push_fcn_symtab",
"param_list_beg",
818 "param_list_end",
"param_list",
"param_list1",
"param_list2",
819 "param_list_elt",
"return_list",
"return_list1",
"file",
"function_beg",
820 "function",
"fcn_name",
"function1",
"function2",
"function_end",
821 "classdef_beg",
"classdef",
"opt_attr_list",
"attr_list",
"attr",
822 "opt_superclass_list",
"superclass_list",
"$@1",
"$@2",
"superclass",
823 "class_body",
"properties_block",
"property_list",
"class_property",
824 "methods_block",
"method_decl1",
"method_decl",
"$@3",
"method",
825 "methods_list",
"events_block",
"events_list",
"class_event",
826 "enum_block",
"enum_list",
"class_enum",
"stmt_begin",
"stash_comment",
827 "parse_error",
"sep_no_nl",
"opt_sep_no_nl",
"opt_nl",
"nl",
"sep",
837 0, 256, 257, 61, 58, 45, 43, 42, 47, 258,
838 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
839 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
840 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
841 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
842 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
843 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
844 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
845 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
846 40, 41, 91, 93, 123, 125, 46, 44, 59, 64,
851 #define YYPACT_NINF -421
853 #define yypact_value_is_default(Yystate) \
854 (!!((Yystate) == (-421)))
856 #define YYTABLE_NINF -270
858 #define yytable_value_is_error(Yytable_value) \
865 557, -421, 380, 380, 380, 380, 380, -421, -421, -421,
866 -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
867 -421, -421, -421, 29, 29, -421, -421, -421, -64, 1171,
868 701, 701, -421, -421, -5, 54, 6, -36, -421, -421,
869 49, -421, -421, -421, -421, -421, -421, -421, -421, -421,
870 1343, -421, 142, 1443, 650, -421, -421, -421, -421, -421,
871 -421, -421, -421, -421, -421, 70, -421, -421, -421, -421,
872 90, -421, 98, -421, 5, 5, 5, 5, 5, 1197,
873 1253, 1171, 111, 1171, 1171, 111, 111, 162, 29, -421,
874 29, -421, 1003, 77, 105, -421, 380, 891, 7, -421,
875 -421, -421, 102, -421, 20, -421, -421, -421, 16, -421,
876 -421, -421, -421, 947, -421, 49, -421, 380, 380, 380,
877 380, 380, 380, 380, 380, 380, 380, -421, -421, -421,
878 -421, 1279, 1279, 727, 783, -421, -7, 380, 380, 380,
879 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
880 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
881 1171, 1171, 1171, 1171, 1171, -421, 2, -421, -421, 1171,
882 898, 203, 1171, 210, -421, -421, -421, -421, 128, 1059,
883 -421, 175, 159, 111, 1059, 1059, -421, -421, -421, 152,
884 -421, 111, -421, -421, 111, -421, -421, 146, -421, 701,
885 891, -421, 701, -421, -421, -421, -421, 154, 151, -421,
886 1115, -421, -421, 1355, 1355, 5, 5, 5, 5, 5,
887 5, 1355, 1355, 1279, 1279, 1279, 1279, 1279, -421, -12,
888 -12, -421, 50, -421, 56, -421, 1171, 1343, -421, -421,
889 1204, 337, 253, 223, 193, 193, 193, 193, 193, 193,
890 -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
891 -421, -421, -421, -421, -421, 156, 169, -16, 272, 276,
892 14, -421, 748, 1171, 830, 1171, 111, -421, -421, -421,
893 232, 111, -421, -421, -421, -421, -421, 196, 224, 19,
894 1171, -421, 629, -421, 212, 214, 891, -421, -421, -421,
895 -421, -421, -421, -421, 13, -421, -12, -12, -12, -12,
896 -12, -421, -421, 809, 865, 8, -421, 891, -421, 218,
897 29, 29, -421, -421, 61, -10, 111, -421, 1059, 1171,
898 -421, 1171, -421, 1059, 1171, 1059, 111, 111, -421, -421,
899 256, 196, -421, -421, -421, -421, -421, -421, -421, 15,
900 29, -421, -421, -421, 52, -421, 143, -421, 1171, -421,
901 -421, -421, -421, 29, -421, -421, 1059, -15, 220, 111,
902 215, 111, 261, -421, -421, 1171, 1059, 111, 111, -421,
903 -421, -421, 111, 111, 29, 311, 53, -421, 285, -421,
904 -421, 225, -421, -15, -421, -421, -421, 111, 1059, 1171,
905 1059, -421, -421, -421, 1171, 1059, 1059, 1059, -421, -421,
906 -421, 15, -421, 111, 290, -421, -421, 1059, 266, 228,
907 270, 111, -421, -421, 271, 274, 1171, -421, 241, 103,
908 -421, 275, -421, 111, -421, 1059, 111, -421, -421, -421,
909 -421, -421, -421, -421, -421, -421, -421, 111, -421, -421,
910 -421, -421, 241, -421, 1059, -421, 1059, 212, 212, 212,
911 212, 155, -421, 277, -421, 111, 111, 111, 111, -421,
912 -421, -421, -421, -421, -421, 211, 3, 217, 219, -421,
913 327, 111, -421, -421, -421, -421, -421, 111, -11, -421,
914 -421, 111, -421, -421, 242, 111, -421, -421, 222, 11,
915 26, 328, -421, 246, 1171, 248, 1171, -421, -421, -421,
916 -421, -421, -421, -421, -421, 247, -421, -421, 243, 29,
917 -421, -421, 249, -421
925 0, 264, 0, 0, 0, 0, 0, 25, 26, 20,
926 23, 24, 262, 262, 262, 262, 262, 262, 174, 175,
927 176, 262, 262, 0, 0, 22, 21, 263, 271, 0,
928 34, 34, 265, 266, 0, 0, 0, 269, 7, 16,
929 42, 48, 47, 27, 43, 45, 46, 44, 135, 59,
930 102, 104, 101, 133, 0, 134, 14, 15, 136, 137,
931 150, 151, 138, 139, 140, 0, 142, 262, 141, 4,
932 270, 5, 0, 42, 74, 73, 72, 70, 71, 0,
933 0, 0, 281, 0, 0, 281, 281, 148, 143, 145,
934 144, 273, 9, 272, 0, 50, 51, 35, 0, 29,
935 53, 54, 36, 52, 0, 32, 40, 181, 0, 261,
936 1, 3, 2, 270, 6, 17, 18, 0, 0, 0,
937 0, 0, 0, 0, 0, 0, 0, 66, 67, 60,
938 61, 0, 0, 0, 0, 58, 0, 0, 0, 0,
939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
941 0, 0, 0, 0, 0, 198, 0, 267, 268, 0,
942 117, 0, 0, 0, 261, 275, 276, 277, 282, 9,
943 261, 0, 153, 281, 9, 9, 147, 146, 209, 0,
944 10, 281, 12, 262, 281, 274, 49, 38, 28, 34,
945 37, 31, 34, 184, 51, 190, 189, 0, 186, 187,
946 180, 8, 19, 78, 77, 79, 80, 85, 83, 84,
947 86, 81, 82, 0, 0, 0, 0, 0, 87, 75,
948 76, 62, 0, 64, 0, 68, 0, 103, 105, 106,
949 115, 116, 113, 114, 107, 108, 109, 112, 110, 111,
950 118, 119, 120, 121, 122, 123, 124, 127, 128, 129,
951 130, 131, 132, 125, 126, 0, 0, 0, 201, 0,
952 281, 199, 0, 0, 0, 0, 281, 278, 279, 280,
953 0, 281, 152, 262, 262, 156, 154, 160, 0, 0,
954 0, 196, 282, 11, 212, 0, 39, 30, 55, 56,
955 57, 33, 182, 183, 0, 41, 100, 99, 98, 96,
956 97, 88, 89, 0, 0, 0, 63, 0, 65, 0,
957 0, 0, 191, 194, 0, 0, 281, 204, 9, 0,
958 261, 0, 261, 9, 0, 9, 281, 281, 262, 262,
959 0, 162, 164, 161, 262, 179, 262, 149, 13, 0,
960 0, 197, 188, 90, 0, 92, 0, 94, 0, 69,
961 202, 203, 193, 0, 201, 200, 9, 0, 0, 281,
962 118, 281, 0, 169, 155, 0, 9, 281, 281, 159,
963 165, 163, 281, 281, 0, 216, 0, 214, 219, 91,
964 93, 0, 195, 0, 207, 208, 206, 281, 9, 0,
965 9, 168, 261, 158, 0, 9, 9, 9, 218, 147,
966 213, 0, 221, 281, 220, 95, 205, 9, 0, 0,
967 0, 281, 261, 167, 0, 0, 0, 215, 0, 0,
968 223, 0, 170, 281, 172, 9, 281, 177, 178, 217,
969 225, 222, 211, 262, 262, 262, 262, 281, 226, 227,
970 228, 229, 0, 171, 9, 157, 9, 212, 212, 212,
971 212, 0, 224, 0, 166, 281, 281, 281, 281, 210,
972 230, 231, 232, 233, 173, 0, 262, 0, 0, 235,
973 238, 281, 236, 241, 248, 247, 249, 281, 0, 252,
974 255, 281, 253, 257, 0, 281, 258, 147, 0, 262,
975 242, 0, 244, 0, 0, 0, 0, 234, 237, 240,
976 250, 243, 245, 251, 254, 0, 256, 259, 0, 0,
983 -421, -421, -421, -421, -176, -421, -421, 4, -421, -421,
984 0, -421, -421, -19, -421, -421, -421, -421, -421, -13,
985 -421, -421, -63, -175, -81, -95, -105, 417, -56, -421,
986 -421, 427, -49, -421, -24, -421, -421, 316, -375, -62,
987 -421, -421, -421, -421, -421, -421, -421, -421, -421, 12,
988 17, -421, -421, -421, -421, -421, -421, -33, -421, -421,
989 39, -143, -421, -421, -421, -420, -421, 21, -421, -46,
990 -421, -421, -265, -421, -59, -421, -421, -421, -421, -104,
991 -421, -107, -421, -142, -106, -162, -421, -421, -140, -421,
992 -88, -421, -129, -84, -421, -127, -158, -2, -421, 342,
993 344, -421, -421, 192, 112
999 -1, 35, 36, 37, 189, 190, 191, 192, 39, 115,
1000 73, 41, 42, 43, 44, 45, 98, 46, 104, 99,
1001 47, 48, 49, 100, 101, 102, 136, 50, 229, 51,
1002 52, 53, 54, 55, 56, 57, 58, 88, 290, 89,
1003 59, 60, 181, 182, 285, 286, 61, 340, 341, 342,
1004 343, 62, 63, 64, 65, 108, 303, 511, 207, 208,
1005 209, 269, 324, 66, 67, 68, 270, 271, 327, 396,
1006 193, 194, 350, 386, 387, 413, 414, 428, 452, 441,
1007 447, 448, 481, 482, 449, 502, 485, 519, 486, 487,
1008 450, 491, 492, 451, 495, 496, 210, 488, 69, 70,
1009 71, 92, 93, 178, 179
1017 40, 109, 197, 280, 38, 94, 103, 103, 288, 289,
1018 79, 80, 81, 82, 83, 84, 276, 203, 105, 85,
1019 86, 116, 281, 87, 87, 298, 187, 205, 187, -192,
1020 171, 173, 311, 312, 426, 9, 91, 394, 232, 234,
1021 9, 9, 204, 235, 384, 204, 206, 127, 128, 129,
1022 130, 131, 132, 9, 110, 483, 484, 174, 357, 180,
1023 183, 32, 33, 509, 9, 166, 9, 9, 228, 228,
1024 106, 345, 395, 103, 265, 266, 230, 322, 313, 484,
1025 9, 267, 314, 236, 135, 107, 265, 266, 87, -180,
1026 87, 346, 40, 111, 267, 133, 212, -180, 358, 134,
1027 198, 135, 10, 11, 107, 199, 112, -185, 87, 103,
1028 103, 175, 176, 40, 177, 201, 107, 211, 202, 299,
1029 272, 298, 506, 274, 315, 315, 250, 251, 252, 253,
1030 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1031 264, 316, 298, 389, 410, 94, 137, 317, 94, 317,
1032 411, 318, 367, 317, 362, 442, 165, 372, 363, 374,
1033 228, 228, 228, 228, 228, 186, 268, 306, 307, 308,
1034 309, 310, 369, 106, 371, 103, 300, 195, 103, 40,
1035 443, 444, 445, 446, 40, 40, 297, 167, 168, 301,
1036 393, 294, 465, 466, 467, 468, 196, 184, 185, 200,
1037 403, 315, 315, 315, 315, 315, 273, 469, 175, 176,
1038 40, 177, 319, 275, 305, 299, 138, 139, 354, 356,
1039 283, 284, 418, 205, 420, 277, 278, 282, 279, 423,
1040 424, 425, 443, 444, 445, 446, 299, 326, 390, 291,
1041 317, 431, 206, 296, 421, 302, 138, 139, 304, 330,
1042 142, 332, 320, 144, 145, 146, 147, 148, 149, 455,
1043 338, 339, 9, 479, 436, 321, 347, 323, 9, 489,
1044 9, 493, 300, 9, 507, -192, 138, 139, 463, 325,
1045 464, 336, 337, 144, 145, 146, 147, 148, 149, 103,
1046 103, 334, 40, 300, 344, 287, 348, 9, 513, 9,
1047 516, 351, 349, 293, 87, 368, 295, 370, 379, 359,
1048 373, 397, 399, 401, 409, 412, 415, 430, 432, 433,
1049 360, 361, 434, 437, 440, 364, 438, 453, 40, 474,
1050 497, 512, 504, 40, 391, 40, 377, 378, 520, 107,
1051 90, 521, 382, 352, 383, 501, 365, 416, 462, 385,
1052 388, 402, 427, 380, 470, 471, 508, 523, 381, 510,
1053 138, 139, 140, 392, 142, 143, 40, 144, 145, 146,
1054 147, 148, 149, 472, 514, 419, 40, 473, 517, 113,
1055 422, 114, 328, 292, 408, 2, 3, 0, 333, 0,
1056 0, 0, 0, 335, 0, 0, 0, 0, 40, 0,
1057 40, 0, 439, 0, 0, 40, 40, 40, 0, 4,
1058 0, 385, 0, 0, 0, 0, 0, 40, 0, 74,
1059 75, 76, 77, 78, 5, 6, 0, 0, 7, 8,
1060 0, 9, 0, 10, 11, 40, 0, 0, 366, 0,
1061 0, 457, 458, 459, 460, 0, 0, 0, 375, 376,
1062 0, 0, 0, 0, 40, 0, 40, 0, 0, 0,
1063 0, 25, 26, 0, 0, 0, 0, 0, 0, 0,
1064 29, 0, 30, 0, 31, 480, 0, 490, 494, 72,
1065 515, 398, 518, 400, 0, 0, 0, 0, 500, 404,
1066 405, 0, 0, 0, 406, 407, 0, 0, 480, 0,
1067 0, 0, 0, 490, 0, 494, 170, 170, 0, 417,
1068 0, 0, 0, 76, 0, 0, 0, 0, 0, 522,
1069 0, 0, 0, 0, 0, 429, 0, 0, 0, 0,
1070 0, 0, 0, 435, 213, 214, 215, 216, 217, 218,
1071 219, 220, 221, 222, 0, 454, 0, 0, 456, 0,
1072 0, 0, 0, 0, 237, 0, 0, 0, 1, 461,
1073 0, 0, 2, 3, 0, 238, 239, 240, 241, 242,
1074 243, 244, 245, 246, 247, 248, 249, 475, 476, 477,
1075 478, 0, 0, 0, 0, 0, 4, 0, 0, 0,
1076 0, 0, 0, 498, 0, 0, 0, 0, 0, 499,
1077 0, 5, 6, 503, 0, 7, 8, 505, 9, 0,
1078 10, 11, 12, 13, 14, 15, 0, 16, 0, 0,
1079 17, 0, 0, 18, 19, 20, 21, 0, 22, 0,
1080 23, 24, 0, 0, 2, 3, 0, 0, 25, 26,
1081 0, 0, 0, -180, -269, 27, 28, 29, 0, 30,
1082 0, 31, 0, 150, 32, 33, 34, -269, 4, 151,
1083 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1084 162, 163, 164, 5, 6, 0, 0, 7, 8, 0,
1085 9, 0, 10, 11, 12, 13, 14, 15, 0, 16,
1086 0, 0, 17, 0, 0, 18, 19, 20, 21, 0,
1087 22, 0, 23, 24, 0, 95, 2, 3, 0, 0,
1088 25, 26, 0, 0, 0, -180, 0, 0, 28, 29,
1089 0, 30, 0, 31, 0, 0, 277, 278, 34, 279,
1090 96, 95, 2, 3, 0, 0, 0, 0, 0, 0,
1091 0, 0, 0, 0, 0, 5, 6, 0, 0, 7,
1092 8, 329, 9, 0, 10, 11, 96, 151, 152, 153,
1093 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1094 164, 5, 6, 0, 0, 7, 8, 0, 9, 0,
1095 10, 11, 25, 26, 0, 0, 0, 95, 2, 3,
1096 0, 29, 0, 30, 0, 31, 0, 0, 97, 0,
1097 34, 0, 0, 0, 0, 0, 0, 0, 25, 26,
1098 0, 0, 96, 95, 2, 3, 0, 29, 231, 30,
1099 0, 31, 0, 0, 0, 0, 34, 5, 6, 0,
1100 0, 7, 8, 331, 9, 0, 10, 11, 96, 151,
1101 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1102 162, 163, 164, 5, 6, 0, 0, 7, 8, 0,
1103 9, 0, 10, 11, 25, 26, 0, 0, 0, 95,
1104 2, 3, 0, 29, 0, 30, 0, 31, 233, 0,
1105 0, 0, 34, 0, 0, 0, 0, 0, 0, 0,
1106 25, 26, 0, 0, 96, 95, 2, 3, 0, 29,
1107 353, 30, 0, 31, 0, 0, 0, 0, 34, 5,
1108 6, 0, 0, 7, 8, 0, 9, 0, 10, 11,
1109 96, 138, 139, 140, 141, 142, 143, 0, 144, 145,
1110 146, 147, 148, 149, 0, 5, 6, 0, 0, 7,
1111 8, 0, 9, 0, 10, 11, 25, 26, 0, 0,
1112 0, 0, 2, 3, 0, 29, 0, 30, 0, 31,
1113 355, 0, 0, 0, 34, 0, 0, 0, 0, 0,
1114 0, 0, 25, 26, 0, 0, 4, 0, 0, 0,
1115 0, 29, 0, 30, 0, 31, 0, 0, 0, 0,
1116 34, 5, 6, 0, 0, 7, 8, 0, 9, 0,
1117 10, 11, 12, 13, 14, 15, 0, 16, 2, 3,
1118 17, 0, 0, 18, 19, 20, 21, 0, 22, 0,
1119 23, 24, 0, 0, 0, 0, 0, 0, 25, 26,
1120 0, 0, 4, -180, 0, 0, 28, 29, 0, 30,
1121 0, 31, 0, 0, 167, 168, 34, 5, 6, 0,
1122 0, 7, 8, 0, 9, 0, 10, 11, 12, 13,
1123 14, 15, 0, 16, 2, 3, 17, 0, 0, 18,
1124 19, 20, 21, 0, 22, 0, 23, 24, 0, 188,
1125 0, 0, 0, 0, 25, 26, 0, 0, 4, -180,
1126 0, 0, 28, 29, 0, 30, 0, 31, 0, 0,
1127 0, 0, 34, 5, 6, 0, 0, 7, 8, 0,
1128 9, 0, 10, 11, 12, 13, 14, 15, 0, 16,
1129 2, 3, 17, 0, 0, 18, 19, 20, 21, 0,
1130 22, 0, 23, 24, 0, 0, 0, 0, 0, 0,
1131 25, 26, 0, 0, 4, -180, 0, 0, 28, 29,
1132 0, 30, 0, 31, 0, 0, 0, 0, 34, 5,
1133 6, 0, 0, 7, 8, 0, 9, 0, 10, 11,
1134 12, 13, 14, 15, 0, 16, 2, 3, 17, 0,
1135 0, 18, 19, 20, 21, 0, 22, 0, 23, 24,
1136 0, 0, 0, 0, 0, 0, 25, 26, 0, 0,
1137 4, 0, 2, 3, 28, 29, 0, 30, 0, 31,
1138 0, 0, 0, 0, 34, 5, 6, 0, 0, 7,
1139 8, 0, 9, 0, 10, 11, 4, 138, 139, 0,
1140 0, 142, 143, 0, 144, 145, 146, 147, 148, 149,
1141 0, 5, 6, 0, 0, 7, 8, 0, 9, 0,
1142 10, 11, 25, 26, 0, 0, 0, 0, 2, 3,
1143 0, 29, 0, 30, 0, 31, 0, 0, 0, 0,
1144 34, 0, 0, 0, 0, 0, 0, 0, 25, 26,
1145 0, 0, 4, 0, 223, 224, 0, 169, 0, 30,
1146 0, 31, 0, 0, 0, 0, 72, 5, 6, 0,
1147 0, 7, 8, 0, 9, 0, 10, 11, 225, 0,
1148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 0, 226, 227, 0, 0, 7, 8, 0,
1150 9, 0, 10, 11, 25, 26, 0, 0, 0, 0,
1151 0, 0, 0, 172, 0, 30, 0, 31, 117, 118,
1152 119, 120, 72, 0, 0, 0, 0, 0, 0, 0,
1153 25, 26, 119, 120, 0, 0, 0, 0, 0, 29,
1154 0, 30, 0, 31, 0, 0, 0, 0, 72, 121,
1155 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1156 132, 121, 122, 123, 124, 0, 0, 127, 128, 129,
1157 130, 131, 132, 0, 0, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1160 0, 0, 0, 133, 0, 0, 0, 134, 0, 135,
1161 0, 0, 0, 0, 0, 133, -117, 0, 0, 134,
1162 0, 135, -117, -117, -117, -117, -117, -117, -117, -117,
1163 -117, -117, -117, -117, -117, -117, 138, 139, 140, 141,
1164 142, 143, 0, 144, 145, 146, 147, 148, 149
1169 0, 34, 97, 179, 0, 29, 30, 31, 184, 185,
1170 12, 13, 14, 15, 16, 17, 174, 1, 31, 21,
1171 22, 40, 180, 23, 24, 200, 88, 108, 90, 3,
1172 79, 80, 44, 45, 409, 51, 100, 52, 133, 134,
1173 51, 51, 29, 50, 29, 29, 108, 42, 43, 44,
1174 45, 46, 47, 51, 0, 52, 476, 81, 50, 83,
1175 84, 97, 98, 52, 51, 67, 51, 51, 131, 132,
1176 75, 52, 87, 97, 84, 85, 132, 93, 90, 499,
1177 51, 92, 94, 90, 96, 90, 84, 85, 88, 86,
1178 90, 72, 92, 87, 92, 90, 115, 86, 90, 94,
1179 93, 96, 53, 54, 90, 98, 100, 91, 108, 133,
1180 134, 97, 98, 113, 100, 95, 90, 113, 98, 200,
1181 169, 296, 497, 172, 229, 230, 150, 151, 152, 153,
1182 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1183 164, 91, 317, 91, 91, 169, 4, 97, 172, 97,
1184 97, 95, 328, 97, 93, 52, 86, 333, 97, 335,
1185 223, 224, 225, 226, 227, 3, 166, 223, 224, 225,
1186 226, 227, 330, 75, 332, 199, 200, 100, 202, 179,
1187 77, 78, 79, 80, 184, 185, 199, 97, 98, 202,
1188 366, 193, 457, 458, 459, 460, 91, 85, 86, 97,
1189 376, 306, 307, 308, 309, 310, 3, 52, 97, 98,
1190 210, 100, 236, 3, 210, 296, 23, 24, 313, 314,
1191 61, 62, 398, 304, 400, 97, 98, 52, 100, 405,
1192 406, 407, 77, 78, 79, 80, 317, 270, 95, 87,
1193 97, 417, 304, 97, 402, 91, 23, 24, 97, 273,
1194 27, 275, 96, 30, 31, 32, 33, 34, 35, 435,
1195 64, 65, 51, 52, 422, 96, 290, 267, 51, 52,
1196 51, 52, 296, 51, 52, 3, 23, 24, 454, 3,
1197 456, 283, 284, 30, 31, 32, 33, 34, 35, 313,
1198 314, 59, 292, 317, 70, 183, 292, 51, 52, 51,
1199 52, 87, 90, 191, 304, 329, 194, 331, 52, 91,
1200 334, 91, 97, 52, 3, 30, 91, 27, 52, 91,
1201 320, 321, 52, 52, 83, 325, 52, 52, 328, 52,
1202 3, 3, 90, 333, 358, 335, 338, 339, 91, 90,
1203 24, 98, 344, 304, 346, 488, 325, 393, 452, 349,
1204 350, 375, 411, 341, 461, 461, 498, 519, 341, 499,
1205 23, 24, 25, 363, 27, 28, 366, 30, 31, 32,
1206 33, 34, 35, 461, 503, 399, 376, 461, 505, 37,
1207 404, 37, 270, 191, 384, 5, 6, -1, 276, -1,
1208 -1, -1, -1, 281, -1, -1, -1, -1, 398, -1,
1209 400, -1, 426, -1, -1, 405, 406, 407, -1, 29,
1210 -1, 411, -1, -1, -1, -1, -1, 417, -1, 2,
1211 3, 4, 5, 6, 44, 45, -1, -1, 48, 49,
1212 -1, 51, -1, 53, 54, 435, -1, -1, 326, -1,
1213 -1, 443, 444, 445, 446, -1, -1, -1, 336, 337,
1214 -1, -1, -1, -1, 454, -1, 456, -1, -1, -1,
1215 -1, 81, 82, -1, -1, -1, -1, -1, -1, -1,
1216 90, -1, 92, -1, 94, 475, -1, 477, 478, 99,
1217 504, 369, 506, 371, -1, -1, -1, -1, 488, 377,
1218 378, -1, -1, -1, 382, 383, -1, -1, 498, -1,
1219 -1, -1, -1, 503, -1, 505, 79, 80, -1, 397,
1220 -1, -1, -1, 96, -1, -1, -1, -1, -1, 519,
1221 -1, -1, -1, -1, -1, 413, -1, -1, -1, -1,
1222 -1, -1, -1, 421, 117, 118, 119, 120, 121, 122,
1223 123, 124, 125, 126, -1, 433, -1, -1, 436, -1,
1224 -1, -1, -1, -1, 137, -1, -1, -1, 1, 447,
1225 -1, -1, 5, 6, -1, 138, 139, 140, 141, 142,
1226 143, 144, 145, 146, 147, 148, 149, 465, 466, 467,
1227 468, -1, -1, -1, -1, -1, 29, -1, -1, -1,
1228 -1, -1, -1, 481, -1, -1, -1, -1, -1, 487,
1229 -1, 44, 45, 491, -1, 48, 49, 495, 51, -1,
1230 53, 54, 55, 56, 57, 58, -1, 60, -1, -1,
1231 63, -1, -1, 66, 67, 68, 69, -1, 71, -1,
1232 73, 74, -1, -1, 5, 6, -1, -1, 81, 82,
1233 -1, -1, -1, 86, 87, 88, 89, 90, -1, 92,
1234 -1, 94, -1, 3, 97, 98, 99, 100, 29, 9,
1235 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1236 20, 21, 22, 44, 45, -1, -1, 48, 49, -1,
1237 51, -1, 53, 54, 55, 56, 57, 58, -1, 60,
1238 -1, -1, 63, -1, -1, 66, 67, 68, 69, -1,
1239 71, -1, 73, 74, -1, 4, 5, 6, -1, -1,
1240 81, 82, -1, -1, -1, 86, -1, -1, 89, 90,
1241 -1, 92, -1, 94, -1, -1, 97, 98, 99, 100,
1242 29, 4, 5, 6, -1, -1, -1, -1, -1, -1,
1243 -1, -1, -1, -1, -1, 44, 45, -1, -1, 48,
1244 49, 3, 51, -1, 53, 54, 29, 9, 10, 11,
1245 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1246 22, 44, 45, -1, -1, 48, 49, -1, 51, -1,
1247 53, 54, 81, 82, -1, -1, -1, 4, 5, 6,
1248 -1, 90, -1, 92, -1, 94, -1, -1, 97, -1,
1249 99, -1, -1, -1, -1, -1, -1, -1, 81, 82,
1250 -1, -1, 29, 4, 5, 6, -1, 90, 91, 92,
1251 -1, 94, -1, -1, -1, -1, 99, 44, 45, -1,
1252 -1, 48, 49, 3, 51, -1, 53, 54, 29, 9,
1253 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1254 20, 21, 22, 44, 45, -1, -1, 48, 49, -1,
1255 51, -1, 53, 54, 81, 82, -1, -1, -1, 4,
1256 5, 6, -1, 90, -1, 92, -1, 94, 95, -1,
1257 -1, -1, 99, -1, -1, -1, -1, -1, -1, -1,
1258 81, 82, -1, -1, 29, 4, 5, 6, -1, 90,
1259 91, 92, -1, 94, -1, -1, -1, -1, 99, 44,
1260 45, -1, -1, 48, 49, -1, 51, -1, 53, 54,
1261 29, 23, 24, 25, 26, 27, 28, -1, 30, 31,
1262 32, 33, 34, 35, -1, 44, 45, -1, -1, 48,
1263 49, -1, 51, -1, 53, 54, 81, 82, -1, -1,
1264 -1, -1, 5, 6, -1, 90, -1, 92, -1, 94,
1265 95, -1, -1, -1, 99, -1, -1, -1, -1, -1,
1266 -1, -1, 81, 82, -1, -1, 29, -1, -1, -1,
1267 -1, 90, -1, 92, -1, 94, -1, -1, -1, -1,
1268 99, 44, 45, -1, -1, 48, 49, -1, 51, -1,
1269 53, 54, 55, 56, 57, 58, -1, 60, 5, 6,
1270 63, -1, -1, 66, 67, 68, 69, -1, 71, -1,
1271 73, 74, -1, -1, -1, -1, -1, -1, 81, 82,
1272 -1, -1, 29, 86, -1, -1, 89, 90, -1, 92,
1273 -1, 94, -1, -1, 97, 98, 99, 44, 45, -1,
1274 -1, 48, 49, -1, 51, -1, 53, 54, 55, 56,
1275 57, 58, -1, 60, 5, 6, 63, -1, -1, 66,
1276 67, 68, 69, -1, 71, -1, 73, 74, -1, 76,
1277 -1, -1, -1, -1, 81, 82, -1, -1, 29, 86,
1278 -1, -1, 89, 90, -1, 92, -1, 94, -1, -1,
1279 -1, -1, 99, 44, 45, -1, -1, 48, 49, -1,
1280 51, -1, 53, 54, 55, 56, 57, 58, -1, 60,
1281 5, 6, 63, -1, -1, 66, 67, 68, 69, -1,
1282 71, -1, 73, 74, -1, -1, -1, -1, -1, -1,
1283 81, 82, -1, -1, 29, 86, -1, -1, 89, 90,
1284 -1, 92, -1, 94, -1, -1, -1, -1, 99, 44,
1285 45, -1, -1, 48, 49, -1, 51, -1, 53, 54,
1286 55, 56, 57, 58, -1, 60, 5, 6, 63, -1,
1287 -1, 66, 67, 68, 69, -1, 71, -1, 73, 74,
1288 -1, -1, -1, -1, -1, -1, 81, 82, -1, -1,
1289 29, -1, 5, 6, 89, 90, -1, 92, -1, 94,
1290 -1, -1, -1, -1, 99, 44, 45, -1, -1, 48,
1291 49, -1, 51, -1, 53, 54, 29, 23, 24, -1,
1292 -1, 27, 28, -1, 30, 31, 32, 33, 34, 35,
1293 -1, 44, 45, -1, -1, 48, 49, -1, 51, -1,
1294 53, 54, 81, 82, -1, -1, -1, -1, 5, 6,
1295 -1, 90, -1, 92, -1, 94, -1, -1, -1, -1,
1296 99, -1, -1, -1, -1, -1, -1, -1, 81, 82,
1297 -1, -1, 29, -1, 5, 6, -1, 90, -1, 92,
1298 -1, 94, -1, -1, -1, -1, 99, 44, 45, -1,
1299 -1, 48, 49, -1, 51, -1, 53, 54, 29, -1,
1300 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1301 -1, -1, -1, 44, 45, -1, -1, 48, 49, -1,
1302 51, -1, 53, 54, 81, 82, -1, -1, -1, -1,
1303 -1, -1, -1, 90, -1, 92, -1, 94, 5, 6,
1304 7, 8, 99, -1, -1, -1, -1, -1, -1, -1,
1305 81, 82, 7, 8, -1, -1, -1, -1, -1, 90,
1306 -1, 92, -1, 94, -1, -1, -1, -1, 99, 36,
1307 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1308 47, 36, 37, 38, 39, -1, -1, 42, 43, 44,
1309 45, 46, 47, -1, -1, -1, -1, -1, -1, -1,
1310 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1312 -1, -1, -1, 90, -1, -1, -1, 94, -1, 96,
1313 -1, -1, -1, -1, -1, 90, 3, -1, -1, 94,
1314 -1, 96, 9, 10, 11, 12, 13, 14, 15, 16,
1315 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1316 27, 28, -1, 30, 31, 32, 33, 34, 35
1323 0, 1, 5, 6, 29, 44, 45, 48, 49, 51,
1324 53, 54, 55, 56, 57, 58, 60, 63, 66, 67,
1325 68, 69, 71, 73, 74, 81, 82, 88, 89, 90,
1326 92, 94, 97, 98, 99, 103, 104, 105, 109, 110,
1327 112, 113, 114, 115, 116, 117, 119, 122, 123, 124,
1328 129, 131, 132, 133, 134, 135, 136, 137, 138, 142,
1329 143, 148, 153, 154, 155, 156, 165, 166, 167, 200,
1330 201, 202, 99, 112, 129, 129, 129, 129, 129, 199,
1331 199, 199, 199, 199, 199, 199, 199, 112, 139, 141,
1332 139, 100, 203, 204, 136, 4, 29, 97, 118, 121,
1333 125, 126, 127, 136, 120, 121, 75, 90, 157, 159,
1334 0, 87, 100, 201, 202, 111, 115, 5, 6, 7,
1335 8, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1336 45, 46, 47, 90, 94, 96, 128, 4, 23, 24,
1337 25, 26, 27, 28, 30, 31, 32, 33, 34, 35,
1338 3, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1339 18, 19, 20, 21, 22, 86, 199, 97, 98, 90,
1340 133, 134, 90, 134, 136, 97, 98, 100, 205, 206,
1341 136, 144, 145, 136, 206, 206, 3, 141, 76, 106,
1342 107, 108, 109, 172, 173, 100, 91, 127, 93, 98,
1343 97, 95, 98, 1, 29, 126, 141, 160, 161, 162,
1344 198, 109, 115, 129, 129, 129, 129, 129, 129, 129,
1345 129, 129, 129, 5, 6, 29, 44, 45, 124, 130,
1346 130, 91, 127, 95, 127, 50, 90, 129, 133, 133,
1347 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1348 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1349 136, 136, 136, 136, 136, 84, 85, 92, 112, 163,
1350 168, 169, 134, 3, 134, 3, 198, 97, 98, 100,
1351 106, 198, 52, 61, 62, 146, 147, 206, 106, 106,
1352 140, 87, 205, 206, 199, 206, 97, 121, 125, 126,
1353 136, 121, 91, 158, 97, 109, 130, 130, 130, 130,
1354 130, 44, 45, 90, 94, 128, 91, 97, 95, 136,
1355 96, 96, 93, 112, 164, 3, 159, 170, 206, 3,
1356 136, 3, 136, 206, 59, 206, 199, 199, 64, 65,
1357 149, 150, 151, 152, 70, 52, 72, 136, 109, 90,
1358 174, 87, 162, 91, 127, 95, 127, 50, 90, 91,
1359 112, 112, 93, 97, 112, 169, 206, 106, 136, 198,
1360 136, 198, 106, 136, 106, 206, 206, 199, 199, 52,
1361 151, 152, 199, 199, 29, 112, 175, 176, 112, 91,
1362 95, 136, 112, 106, 52, 87, 171, 91, 206, 97,
1363 206, 52, 136, 106, 206, 206, 206, 206, 112, 3,
1364 91, 97, 30, 177, 178, 91, 171, 206, 106, 136,
1365 106, 198, 136, 106, 106, 106, 140, 176, 179, 206,
1366 27, 106, 52, 91, 52, 206, 198, 52, 52, 136,
1367 83, 181, 52, 77, 78, 79, 80, 182, 183, 186,
1368 192, 195, 180, 52, 206, 106, 206, 199, 199, 199,
1369 199, 206, 181, 106, 106, 174, 174, 174, 174, 52,
1370 183, 186, 192, 195, 52, 206, 206, 206, 206, 52,
1371 112, 184, 185, 52, 167, 188, 190, 191, 199, 52,
1372 112, 193, 194, 52, 112, 196, 197, 3, 206, 206,
1373 112, 163, 187, 206, 90, 206, 140, 52, 185, 52,
1374 190, 159, 3, 52, 194, 136, 52, 197, 136, 189,
1381 0, 102, 103, 103, 103, 104, 104, 105, 105, 106,
1382 106, 107, 108, 108, 109, 109, 109, 110, 111, 111,
1383 112, 113, 114, 115, 115, 116, 116, 116, 117, 118,
1384 118, 119, 120, 120, 121, 121, 121, 121, 121, 121,
1385 122, 123, 124, 124, 124, 124, 124, 124, 124, 124,
1386 125, 126, 127, 127, 127, 127, 127, 127, 128, 129,
1387 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
1388 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
1389 129, 129, 129, 129, 129, 129, 129, 130, 130, 130,
1390 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
1391 130, 131, 132, 132, 133, 133, 133, 133, 133, 133,
1392 133, 133, 133, 133, 133, 133, 133, 134, 135, 135,
1393 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
1394 135, 135, 135, 136, 136, 136, 137, 137, 137, 137,
1395 137, 137, 137, 138, 138, 139, 139, 140, 141, 141,
1396 142, 142, 143, 144, 144, 145, 145, 146, 147, 148,
1397 149, 149, 149, 149, 150, 150, 151, 152, 153, 153,
1398 153, 153, 153, 153, 154, 154, 154, 155, 155, 155,
1399 156, 157, 158, 159, 159, 160, 160, 161, 161, 162,
1400 162, 163, 163, 163, 164, 164, 165, 165, 166, 167,
1401 167, 168, 168, 168, 169, 170, 170, 171, 171, 172,
1402 173, 173, 174, 174, 175, 175, 176, 176, 176, 177,
1403 177, 179, 178, 180, 178, 181, 182, 182, 182, 182,
1404 182, 182, 182, 182, 183, 183, 184, 184, 185, 185,
1405 186, 186, 187, 187, 188, 189, 188, 190, 190, 191,
1406 191, 192, 192, 193, 193, 194, 195, 195, 196, 196,
1407 197, 198, 199, 200, 200, 201, 201, 201, 201, 202,
1408 202, 203, 203, 204, 204, 205, 205, 205, 205, 205,
1415 0, 2, 2, 2, 1, 1, 2, 1, 3, 0,
1416 1, 2, 1, 3, 1, 1, 1, 2, 1, 2,
1417 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
1418 3, 3, 1, 3, 0, 1, 1, 2, 2, 3,
1419 2, 4, 1, 1, 1, 1, 1, 1, 1, 3,
1420 1, 1, 1, 1, 1, 3, 3, 3, 1, 1,
1421 2, 2, 3, 4, 3, 4, 2, 2, 3, 5,
1422 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
1423 3, 3, 3, 3, 3, 3, 3, 1, 2, 2,
1424 3, 4, 3, 4, 3, 5, 2, 2, 2, 2,
1425 2, 1, 1, 3, 1, 3, 3, 3, 3, 3,
1426 3, 3, 3, 3, 3, 3, 3, 1, 3, 3,
1427 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1428 3, 3, 3, 1, 1, 1, 1, 1, 1, 1,
1429 1, 1, 1, 2, 2, 1, 2, 0, 1, 4,
1430 1, 1, 4, 1, 2, 4, 2, 7, 4, 6,
1431 0, 1, 1, 2, 1, 2, 7, 4, 7, 6,
1432 9, 10, 9, 12, 1, 1, 1, 9, 9, 5,
1433 0, 1, 1, 3, 2, 0, 1, 1, 3, 1,
1434 1, 2, 1, 3, 1, 3, 4, 5, 2, 3,
1435 5, 1, 3, 3, 2, 4, 3, 1, 1, 1,
1436 9, 7, 0, 3, 1, 3, 1, 4, 2, 0,
1437 1, 0, 3, 0, 4, 1, 1, 1, 1, 1,
1438 3, 3, 3, 3, 7, 5, 1, 3, 1, 5,
1439 7, 5, 1, 2, 2, 0, 5, 1, 1, 1,
1440 3, 7, 5, 1, 3, 1, 7, 5, 1, 3,
1441 4, 0, 0, 1, 1, 1, 1, 2, 2, 0,
1442 1, 0, 1, 1, 2, 1, 1, 1, 2, 2,
1447 #define yyerrok (yyerrstatus = 0)
1448 #define yyclearin (yychar = YYEMPTY)
1449 #define YYEMPTY (-2)
1452 #define YYACCEPT goto yyacceptlab
1453 #define YYABORT goto yyabortlab
1454 #define YYERROR goto yyerrorlab
1457 #define YYRECOVERING() (!!yyerrstatus)
1459 #define YYBACKUP(Token, Value) \
1461 if (yychar == YYEMPTY) \
1465 YYPOPSTACK (yylen); \
1471 yyerror (parser, YY_("syntax error: cannot back up")); \
1478 #define YYERRCODE 256
1487 # define YYFPRINTF fprintf
1490 # define YYDPRINTF(Args) \
1497 #ifndef YY_LOCATION_PRINT
1498 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1502 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1506 YYFPRINTF (stderr, "%s ", Title); \
1507 yy_symbol_print (stderr, \
1508 Type, Value, parser); \
1509 YYFPRINTF (stderr, "\n"); \
1521 FILE *yyo = yyoutput;
1528 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1541 YYFPRINTF (yyoutput,
"%s %s (",
1542 yytype <
YYNTOKENS ?
"token" :
"nterm", yytname[yytype]);
1544 yy_symbol_value_print (yyoutput, yytype, yyvaluep, parser);
1545 YYFPRINTF (yyoutput,
")");
1556 YYFPRINTF (stderr,
"Stack now");
1557 for (; yybottom <= yytop; yybottom++)
1559 int yybot = *yybottom;
1560 YYFPRINTF (stderr,
" %d", yybot);
1562 YYFPRINTF (stderr,
"\n");
1565 # define YY_STACK_PRINT(Bottom, Top) \
1568 yy_stack_print ((Bottom), (Top)); \
1579 unsigned long int yylno = yyrline[yyrule];
1580 int yynrhs =
yyr2[yyrule];
1582 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
1585 for (yyi = 0; yyi < yynrhs; yyi++)
1587 YYFPRINTF (stderr,
" $%d = ", yyi + 1);
1588 yy_symbol_print (stderr,
1589 yystos[yyssp[yyi + 1 - yynrhs]],
1590 &(yyvsp[(yyi + 1) - (yynrhs)])
1592 YYFPRINTF (stderr,
"\n");
1596 # define YY_REDUCE_PRINT(Rule) \
1599 yy_reduce_print (yyssp, yyvsp, Rule, parser); \
1606 # define YYDPRINTF(Args)
1607 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1608 # define YY_STACK_PRINT(Bottom, Top)
1609 # define YY_REDUCE_PRINT(Rule)
1615 # define YYINITDEPTH 200
1626 # define YYMAXDEPTH 10000
1633 # if defined __GLIBC__ && defined _STRING_H
1634 # define yystrlen strlen
1638 yystrlen (
const char *yystr)
1641 for (yylen = 0; yystr[yylen]; yylen++)
1649 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1650 # define yystpcpy stpcpy
1655 yystpcpy (
char *yydest,
const char *yysrc)
1658 const char *yys = yysrc;
1660 while ((*yyd++ = *yys++) !=
'\0')
1677 yytnamerr (
char *yyres,
const char *yystr)
1682 char const *yyp = yystr;
1689 goto do_not_strip_quotes;
1693 goto do_not_strip_quotes;
1706 do_not_strip_quotes: ;
1710 return yystrlen (yystr);
1712 return yystpcpy (yyres, yystr) - yyres;
1725 yysyntax_error (
YYSIZE_T *yymsg_alloc,
char **yymsg,
1730 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1734 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1765 yyarg[yycount++] = yytname[yytoken];
1771 int yyxbegin = yyn < 0 ? -yyn : 0;
1773 int yychecklim =
YYLAST - yyn + 1;
1777 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1781 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1787 yyarg[yycount++] = yytname[yyx];
1790 if (! (yysize <= yysize1
1801 # define YYCASE_(N, S) \
1805 YYCASE_(0,
YY_(
"syntax error"));
1806 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
1807 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1808 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1809 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1810 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1815 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1821 if (*yymsg_alloc < yysize)
1823 *yymsg_alloc = 2 * yysize;
1824 if (! (yysize <= *yymsg_alloc
1836 while ((*yyp = *yyformat) !=
'\0')
1837 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
1839 yyp += yytnamerr (yyp, yyarg[yyi++]);
1869 #line 330 "parse-tree/oct-parse.yy"
1871 #line 1872 "parse-tree/oct-parse.cc"
1875 #line 330 "parse-tree/oct-parse.yy"
1877 #line 1878 "parse-tree/oct-parse.cc"
1881 #line 330 "parse-tree/oct-parse.yy"
1883 #line 1884 "parse-tree/oct-parse.cc"
1887 #line 330 "parse-tree/oct-parse.yy"
1889 #line 1890 "parse-tree/oct-parse.cc"
1893 #line 330 "parse-tree/oct-parse.yy"
1895 #line 1896 "parse-tree/oct-parse.cc"
1899 #line 330 "parse-tree/oct-parse.yy"
1901 #line 1902 "parse-tree/oct-parse.cc"
1905 #line 330 "parse-tree/oct-parse.yy"
1907 #line 1908 "parse-tree/oct-parse.cc"
1911 #line 330 "parse-tree/oct-parse.yy"
1913 #line 1914 "parse-tree/oct-parse.cc"
1917 #line 330 "parse-tree/oct-parse.yy"
1919 #line 1920 "parse-tree/oct-parse.cc"
1923 #line 330 "parse-tree/oct-parse.yy"
1925 #line 1926 "parse-tree/oct-parse.cc"
1929 #line 330 "parse-tree/oct-parse.yy"
1931 #line 1932 "parse-tree/oct-parse.cc"
1935 #line 330 "parse-tree/oct-parse.yy"
1937 #line 1938 "parse-tree/oct-parse.cc"
1941 #line 330 "parse-tree/oct-parse.yy"
1943 #line 1944 "parse-tree/oct-parse.cc"
1947 #line 330 "parse-tree/oct-parse.yy"
1949 #line 1950 "parse-tree/oct-parse.cc"
1953 #line 330 "parse-tree/oct-parse.yy"
1955 #line 1956 "parse-tree/oct-parse.cc"
1959 #line 330 "parse-tree/oct-parse.yy"
1961 #line 1962 "parse-tree/oct-parse.cc"
1965 #line 330 "parse-tree/oct-parse.yy"
1967 #line 1968 "parse-tree/oct-parse.cc"
1971 #line 330 "parse-tree/oct-parse.yy"
1973 #line 1974 "parse-tree/oct-parse.cc"
1977 #line 330 "parse-tree/oct-parse.yy"
1979 #line 1980 "parse-tree/oct-parse.cc"
1983 #line 330 "parse-tree/oct-parse.yy"
1985 #line 1986 "parse-tree/oct-parse.cc"
1989 #line 330 "parse-tree/oct-parse.yy"
1991 #line 1992 "parse-tree/oct-parse.cc"
1995 #line 330 "parse-tree/oct-parse.yy"
1997 #line 1998 "parse-tree/oct-parse.cc"
2001 #line 330 "parse-tree/oct-parse.yy"
2003 #line 2004 "parse-tree/oct-parse.cc"
2007 #line 330 "parse-tree/oct-parse.yy"
2009 #line 2010 "parse-tree/oct-parse.cc"
2013 #line 330 "parse-tree/oct-parse.yy"
2015 #line 2016 "parse-tree/oct-parse.cc"
2019 #line 330 "parse-tree/oct-parse.yy"
2021 #line 2022 "parse-tree/oct-parse.cc"
2025 #line 330 "parse-tree/oct-parse.yy"
2027 #line 2028 "parse-tree/oct-parse.cc"
2031 #line 330 "parse-tree/oct-parse.yy"
2033 #line 2034 "parse-tree/oct-parse.cc"
2037 #line 330 "parse-tree/oct-parse.yy"
2039 #line 2040 "parse-tree/oct-parse.cc"
2043 #line 330 "parse-tree/oct-parse.yy"
2045 #line 2046 "parse-tree/oct-parse.cc"
2049 #line 330 "parse-tree/oct-parse.yy"
2051 #line 2052 "parse-tree/oct-parse.cc"
2055 #line 330 "parse-tree/oct-parse.yy"
2057 #line 2058 "parse-tree/oct-parse.cc"
2061 #line 330 "parse-tree/oct-parse.yy"
2063 #line 2064 "parse-tree/oct-parse.cc"
2067 #line 330 "parse-tree/oct-parse.yy"
2069 #line 2070 "parse-tree/oct-parse.cc"
2073 #line 330 "parse-tree/oct-parse.yy"
2075 #line 2076 "parse-tree/oct-parse.cc"
2079 #line 330 "parse-tree/oct-parse.yy"
2081 #line 2082 "parse-tree/oct-parse.cc"
2085 #line 330 "parse-tree/oct-parse.yy"
2087 #line 2088 "parse-tree/oct-parse.cc"
2091 #line 330 "parse-tree/oct-parse.yy"
2093 #line 2094 "parse-tree/oct-parse.cc"
2097 #line 330 "parse-tree/oct-parse.yy"
2099 #line 2100 "parse-tree/oct-parse.cc"
2103 #line 330 "parse-tree/oct-parse.yy"
2105 #line 2106 "parse-tree/oct-parse.cc"
2109 #line 330 "parse-tree/oct-parse.yy"
2111 #line 2112 "parse-tree/oct-parse.cc"
2115 #line 330 "parse-tree/oct-parse.yy"
2117 #line 2118 "parse-tree/oct-parse.cc"
2121 #line 330 "parse-tree/oct-parse.yy"
2123 #line 2124 "parse-tree/oct-parse.cc"
2127 #line 330 "parse-tree/oct-parse.yy"
2129 #line 2130 "parse-tree/oct-parse.cc"
2133 #line 330 "parse-tree/oct-parse.yy"
2135 #line 2136 "parse-tree/oct-parse.cc"
2139 #line 330 "parse-tree/oct-parse.yy"
2141 #line 2142 "parse-tree/oct-parse.cc"
2145 #line 330 "parse-tree/oct-parse.yy"
2147 #line 2148 "parse-tree/oct-parse.cc"
2151 #line 330 "parse-tree/oct-parse.yy"
2153 #line 2154 "parse-tree/oct-parse.cc"
2157 #line 330 "parse-tree/oct-parse.yy"
2159 #line 2160 "parse-tree/oct-parse.cc"
2163 #line 330 "parse-tree/oct-parse.yy"
2165 #line 2166 "parse-tree/oct-parse.cc"
2169 #line 330 "parse-tree/oct-parse.yy"
2171 #line 2172 "parse-tree/oct-parse.cc"
2175 #line 330 "parse-tree/oct-parse.yy"
2177 #line 2178 "parse-tree/oct-parse.cc"
2181 #line 330 "parse-tree/oct-parse.yy"
2183 #line 2184 "parse-tree/oct-parse.cc"
2187 #line 330 "parse-tree/oct-parse.yy"
2189 #line 2190 "parse-tree/oct-parse.cc"
2193 #line 330 "parse-tree/oct-parse.yy"
2195 #line 2196 "parse-tree/oct-parse.cc"
2199 #line 330 "parse-tree/oct-parse.yy"
2201 #line 2202 "parse-tree/oct-parse.cc"
2205 #line 330 "parse-tree/oct-parse.yy"
2207 #line 2208 "parse-tree/oct-parse.cc"
2211 #line 330 "parse-tree/oct-parse.yy"
2213 #line 2214 "parse-tree/oct-parse.cc"
2217 #line 330 "parse-tree/oct-parse.yy"
2219 #line 2220 "parse-tree/oct-parse.cc"
2223 #line 330 "parse-tree/oct-parse.yy"
2225 #line 2226 "parse-tree/oct-parse.cc"
2229 #line 330 "parse-tree/oct-parse.yy"
2231 #line 2232 "parse-tree/oct-parse.cc"
2235 #line 330 "parse-tree/oct-parse.yy"
2237 #line 2238 "parse-tree/oct-parse.cc"
2241 #line 330 "parse-tree/oct-parse.yy"
2243 #line 2244 "parse-tree/oct-parse.cc"
2247 #line 330 "parse-tree/oct-parse.yy"
2249 #line 2250 "parse-tree/oct-parse.cc"
2253 #line 330 "parse-tree/oct-parse.yy"
2255 #line 2256 "parse-tree/oct-parse.cc"
2259 #line 330 "parse-tree/oct-parse.yy"
2261 #line 2262 "parse-tree/oct-parse.cc"
2265 #line 330 "parse-tree/oct-parse.yy"
2267 #line 2268 "parse-tree/oct-parse.cc"
2271 #line 330 "parse-tree/oct-parse.yy"
2273 #line 2274 "parse-tree/oct-parse.cc"
2277 #line 330 "parse-tree/oct-parse.yy"
2279 #line 2280 "parse-tree/oct-parse.cc"
2283 #line 330 "parse-tree/oct-parse.yy"
2285 #line 2286 "parse-tree/oct-parse.cc"
2289 #line 330 "parse-tree/oct-parse.yy"
2291 #line 2292 "parse-tree/oct-parse.cc"
2295 #line 330 "parse-tree/oct-parse.yy"
2297 #line 2298 "parse-tree/oct-parse.cc"
2301 #line 330 "parse-tree/oct-parse.yy"
2303 #line 2304 "parse-tree/oct-parse.cc"
2307 #line 330 "parse-tree/oct-parse.yy"
2309 #line 2310 "parse-tree/oct-parse.cc"
2313 #line 330 "parse-tree/oct-parse.yy"
2315 #line 2316 "parse-tree/oct-parse.cc"
2319 #line 330 "parse-tree/oct-parse.yy"
2321 #line 2322 "parse-tree/oct-parse.cc"
2325 #line 330 "parse-tree/oct-parse.yy"
2327 #line 2328 "parse-tree/oct-parse.cc"
2331 #line 330 "parse-tree/oct-parse.yy"
2333 #line 2334 "parse-tree/oct-parse.cc"
2337 #line 330 "parse-tree/oct-parse.yy"
2339 #line 2340 "parse-tree/oct-parse.cc"
2343 #line 330 "parse-tree/oct-parse.yy"
2345 #line 2346 "parse-tree/oct-parse.cc"
2349 #line 330 "parse-tree/oct-parse.yy"
2351 #line 2352 "parse-tree/oct-parse.cc"
2355 #line 330 "parse-tree/oct-parse.yy"
2357 #line 2358 "parse-tree/oct-parse.cc"
2361 #line 330 "parse-tree/oct-parse.yy"
2363 #line 2364 "parse-tree/oct-parse.cc"
2367 #line 330 "parse-tree/oct-parse.yy"
2369 #line 2370 "parse-tree/oct-parse.cc"
2373 #line 333 "parse-tree/oct-parse.yy"
2375 #line 2376 "parse-tree/oct-parse.cc"
2379 #line 335 "parse-tree/oct-parse.yy"
2380 {
delete ((*yyvaluep).tree_type); }
2381 #line 2382 "parse-tree/oct-parse.cc"
2385 #line 360 "parse-tree/oct-parse.yy"
2386 {
delete ((*yyvaluep).tree_statement_list_type); }
2387 #line 2388 "parse-tree/oct-parse.cc"
2391 #line 360 "parse-tree/oct-parse.yy"
2392 {
delete ((*yyvaluep).tree_statement_list_type); }
2393 #line 2394 "parse-tree/oct-parse.cc"
2397 #line 360 "parse-tree/oct-parse.yy"
2398 {
delete ((*yyvaluep).tree_statement_list_type); }
2399 #line 2400 "parse-tree/oct-parse.cc"
2403 #line 360 "parse-tree/oct-parse.yy"
2404 {
delete ((*yyvaluep).tree_statement_list_type); }
2405 #line 2406 "parse-tree/oct-parse.cc"
2409 #line 360 "parse-tree/oct-parse.yy"
2410 {
delete ((*yyvaluep).tree_statement_list_type); }
2411 #line 2412 "parse-tree/oct-parse.cc"
2415 #line 359 "parse-tree/oct-parse.yy"
2416 {
delete ((*yyvaluep).tree_statement_type); }
2417 #line 2418 "parse-tree/oct-parse.cc"
2421 #line 345 "parse-tree/oct-parse.yy"
2422 {
delete ((*yyvaluep).tree_index_expression_type); }
2423 #line 2424 "parse-tree/oct-parse.cc"
2427 #line 347 "parse-tree/oct-parse.yy"
2428 {
delete ((*yyvaluep).tree_argument_list_type); }
2429 #line 2430 "parse-tree/oct-parse.cc"
2433 #line 344 "parse-tree/oct-parse.yy"
2434 {
delete ((*yyvaluep).tree_identifier_type); }
2435 #line 2436 "parse-tree/oct-parse.cc"
2439 #line 341 "parse-tree/oct-parse.yy"
2440 {
delete ((*yyvaluep).tree_funcall_type); }
2441 #line 2442 "parse-tree/oct-parse.cc"
2445 #line 341 "parse-tree/oct-parse.yy"
2446 {
delete ((*yyvaluep).tree_funcall_type); }
2447 #line 2448 "parse-tree/oct-parse.cc"
2451 #line 339 "parse-tree/oct-parse.yy"
2452 {
delete ((*yyvaluep).tree_constant_type); }
2453 #line 2454 "parse-tree/oct-parse.cc"
2457 #line 339 "parse-tree/oct-parse.yy"
2458 {
delete ((*yyvaluep).tree_constant_type); }
2459 #line 2460 "parse-tree/oct-parse.cc"
2463 #line 338 "parse-tree/oct-parse.yy"
2464 {
delete ((*yyvaluep).tree_expression_type); }
2465 #line 2466 "parse-tree/oct-parse.cc"
2469 #line 336 "parse-tree/oct-parse.yy"
2470 {
delete ((*yyvaluep).tree_matrix_type); }
2471 #line 2472 "parse-tree/oct-parse.cc"
2475 #line 338 "parse-tree/oct-parse.yy"
2476 {
delete ((*yyvaluep).tree_expression_type); }
2477 #line 2478 "parse-tree/oct-parse.cc"
2481 #line 337 "parse-tree/oct-parse.yy"
2482 {
delete ((*yyvaluep).tree_cell_type); }
2483 #line 2484 "parse-tree/oct-parse.cc"
2487 #line 347 "parse-tree/oct-parse.yy"
2488 {
delete ((*yyvaluep).tree_argument_list_type); }
2489 #line 2490 "parse-tree/oct-parse.cc"
2493 #line 340 "parse-tree/oct-parse.yy"
2494 {
delete ((*yyvaluep).tree_fcn_handle_type); }
2495 #line 2496 "parse-tree/oct-parse.cc"
2499 #line 343 "parse-tree/oct-parse.yy"
2500 {
delete ((*yyvaluep).tree_anon_fcn_handle_type); }
2501 #line 2502 "parse-tree/oct-parse.cc"
2505 #line 338 "parse-tree/oct-parse.yy"
2506 {
delete ((*yyvaluep).tree_expression_type); }
2507 #line 2508 "parse-tree/oct-parse.cc"
2511 #line 339 "parse-tree/oct-parse.yy"
2512 {
delete ((*yyvaluep).tree_constant_type); }
2513 #line 2514 "parse-tree/oct-parse.cc"
2517 #line 344 "parse-tree/oct-parse.yy"
2518 {
delete ((*yyvaluep).tree_identifier_type); }
2519 #line 2520 "parse-tree/oct-parse.cc"
2523 #line 347 "parse-tree/oct-parse.yy"
2524 {
delete ((*yyvaluep).tree_argument_list_type); }
2525 #line 2526 "parse-tree/oct-parse.cc"
2529 #line 338 "parse-tree/oct-parse.yy"
2530 {
delete ((*yyvaluep).tree_expression_type); }
2531 #line 2532 "parse-tree/oct-parse.cc"
2535 #line 338 "parse-tree/oct-parse.yy"
2536 {
delete ((*yyvaluep).tree_expression_type); }
2537 #line 2538 "parse-tree/oct-parse.cc"
2541 #line 338 "parse-tree/oct-parse.yy"
2542 {
delete ((*yyvaluep).tree_expression_type); }
2543 #line 2544 "parse-tree/oct-parse.cc"
2547 #line 346 "parse-tree/oct-parse.yy"
2548 {
delete ((*yyvaluep).tree_colon_expression_type); }
2549 #line 2550 "parse-tree/oct-parse.cc"
2553 #line 338 "parse-tree/oct-parse.yy"
2554 {
delete ((*yyvaluep).tree_expression_type); }
2555 #line 2556 "parse-tree/oct-parse.cc"
2559 #line 347 "parse-tree/oct-parse.yy"
2560 {
delete ((*yyvaluep).tree_argument_list_type); }
2561 #line 2562 "parse-tree/oct-parse.cc"
2565 #line 338 "parse-tree/oct-parse.yy"
2566 {
delete ((*yyvaluep).tree_expression_type); }
2567 #line 2568 "parse-tree/oct-parse.cc"
2571 #line 338 "parse-tree/oct-parse.yy"
2572 {
delete ((*yyvaluep).tree_expression_type); }
2573 #line 2574 "parse-tree/oct-parse.cc"
2577 #line 349 "parse-tree/oct-parse.yy"
2578 {
delete ((*yyvaluep).tree_command_type); }
2579 #line 2580 "parse-tree/oct-parse.cc"
2583 #line 358 "parse-tree/oct-parse.yy"
2584 {
delete ((*yyvaluep).tree_decl_command_type); }
2585 #line 2586 "parse-tree/oct-parse.cc"
2589 #line 357 "parse-tree/oct-parse.yy"
2590 {
delete ((*yyvaluep).tree_decl_init_list_type); }
2591 #line 2592 "parse-tree/oct-parse.cc"
2595 #line 356 "parse-tree/oct-parse.yy"
2596 {
delete ((*yyvaluep).tree_decl_elt_type); }
2597 #line 2598 "parse-tree/oct-parse.cc"
2601 #line 349 "parse-tree/oct-parse.yy"
2602 {
delete ((*yyvaluep).tree_command_type); }
2603 #line 2604 "parse-tree/oct-parse.cc"
2607 #line 350 "parse-tree/oct-parse.yy"
2608 {
delete ((*yyvaluep).tree_if_command_type); }
2609 #line 2610 "parse-tree/oct-parse.cc"
2613 #line 352 "parse-tree/oct-parse.yy"
2614 {
delete ((*yyvaluep).tree_if_command_list_type); }
2615 #line 2616 "parse-tree/oct-parse.cc"
2619 #line 352 "parse-tree/oct-parse.yy"
2620 {
delete ((*yyvaluep).tree_if_command_list_type); }
2621 #line 2622 "parse-tree/oct-parse.cc"
2625 #line 351 "parse-tree/oct-parse.yy"
2626 {
delete ((*yyvaluep).tree_if_clause_type); }
2627 #line 2628 "parse-tree/oct-parse.cc"
2631 #line 351 "parse-tree/oct-parse.yy"
2632 {
delete ((*yyvaluep).tree_if_clause_type); }
2633 #line 2634 "parse-tree/oct-parse.cc"
2637 #line 353 "parse-tree/oct-parse.yy"
2638 {
delete ((*yyvaluep).tree_switch_command_type); }
2639 #line 2640 "parse-tree/oct-parse.cc"
2643 #line 355 "parse-tree/oct-parse.yy"
2644 {
delete ((*yyvaluep).tree_switch_case_list_type); }
2645 #line 2646 "parse-tree/oct-parse.cc"
2649 #line 355 "parse-tree/oct-parse.yy"
2650 {
delete ((*yyvaluep).tree_switch_case_list_type); }
2651 #line 2652 "parse-tree/oct-parse.cc"
2655 #line 354 "parse-tree/oct-parse.yy"
2656 {
delete ((*yyvaluep).tree_switch_case_type); }
2657 #line 2658 "parse-tree/oct-parse.cc"
2661 #line 354 "parse-tree/oct-parse.yy"
2662 {
delete ((*yyvaluep).tree_switch_case_type); }
2663 #line 2664 "parse-tree/oct-parse.cc"
2667 #line 349 "parse-tree/oct-parse.yy"
2668 {
delete ((*yyvaluep).tree_command_type); }
2669 #line 2670 "parse-tree/oct-parse.cc"
2673 #line 349 "parse-tree/oct-parse.yy"
2674 {
delete ((*yyvaluep).tree_command_type); }
2675 #line 2676 "parse-tree/oct-parse.cc"
2679 #line 349 "parse-tree/oct-parse.yy"
2680 {
delete ((*yyvaluep).tree_command_type); }
2681 #line 2682 "parse-tree/oct-parse.cc"
2685 #line 348 "parse-tree/oct-parse.yy"
2686 {
delete ((*yyvaluep).tree_parameter_list_type); }
2687 #line 2688 "parse-tree/oct-parse.cc"
2691 #line 348 "parse-tree/oct-parse.yy"
2692 {
delete ((*yyvaluep).tree_parameter_list_type); }
2693 #line 2694 "parse-tree/oct-parse.cc"
2697 #line 348 "parse-tree/oct-parse.yy"
2698 {
delete ((*yyvaluep).tree_parameter_list_type); }
2699 #line 2700 "parse-tree/oct-parse.cc"
2703 #line 356 "parse-tree/oct-parse.yy"
2704 {
delete ((*yyvaluep).tree_decl_elt_type); }
2705 #line 2706 "parse-tree/oct-parse.cc"
2709 #line 348 "parse-tree/oct-parse.yy"
2710 {
delete ((*yyvaluep).tree_parameter_list_type); }
2711 #line 2712 "parse-tree/oct-parse.cc"
2715 #line 348 "parse-tree/oct-parse.yy"
2716 {
delete ((*yyvaluep).tree_parameter_list_type); }
2717 #line 2718 "parse-tree/oct-parse.cc"
2721 #line 349 "parse-tree/oct-parse.yy"
2722 {
delete ((*yyvaluep).tree_command_type); }
2723 #line 2724 "parse-tree/oct-parse.cc"
2727 #line 330 "parse-tree/oct-parse.yy"
2729 #line 2730 "parse-tree/oct-parse.cc"
2733 #line 342 "parse-tree/oct-parse.yy"
2734 {
delete ((*yyvaluep).tree_function_def_type); }
2735 #line 2736 "parse-tree/oct-parse.cc"
2739 #line 344 "parse-tree/oct-parse.yy"
2740 {
delete ((*yyvaluep).tree_identifier_type); }
2741 #line 2742 "parse-tree/oct-parse.cc"
2745 #line 361 "parse-tree/oct-parse.yy"
2746 {
delete ((*yyvaluep).octave_user_function_type); }
2747 #line 2748 "parse-tree/oct-parse.cc"
2751 #line 361 "parse-tree/oct-parse.yy"
2752 {
delete ((*yyvaluep).octave_user_function_type); }
2753 #line 2754 "parse-tree/oct-parse.cc"
2757 #line 359 "parse-tree/oct-parse.yy"
2758 {
delete ((*yyvaluep).tree_statement_type); }
2759 #line 2760 "parse-tree/oct-parse.cc"
2763 #line 330 "parse-tree/oct-parse.yy"
2765 #line 2766 "parse-tree/oct-parse.cc"
2769 #line 363 "parse-tree/oct-parse.yy"
2770 {
delete ((*yyvaluep).tree_classdef_type); }
2771 #line 2772 "parse-tree/oct-parse.cc"
2775 #line 365 "parse-tree/oct-parse.yy"
2776 {
delete ((*yyvaluep).tree_classdef_attribute_list_type); }
2777 #line 2778 "parse-tree/oct-parse.cc"
2781 #line 365 "parse-tree/oct-parse.yy"
2782 {
delete ((*yyvaluep).tree_classdef_attribute_list_type); }
2783 #line 2784 "parse-tree/oct-parse.cc"
2787 #line 364 "parse-tree/oct-parse.yy"
2788 {
delete ((*yyvaluep).tree_classdef_attribute_type); }
2789 #line 2790 "parse-tree/oct-parse.cc"
2793 #line 367 "parse-tree/oct-parse.yy"
2794 {
delete ((*yyvaluep).tree_classdef_superclass_list_type); }
2795 #line 2796 "parse-tree/oct-parse.cc"
2799 #line 367 "parse-tree/oct-parse.yy"
2800 {
delete ((*yyvaluep).tree_classdef_superclass_list_type); }
2801 #line 2802 "parse-tree/oct-parse.cc"
2805 #line 366 "parse-tree/oct-parse.yy"
2806 {
delete ((*yyvaluep).tree_classdef_superclass_type); }
2807 #line 2808 "parse-tree/oct-parse.cc"
2811 #line 368 "parse-tree/oct-parse.yy"
2812 {
delete ((*yyvaluep).tree_classdef_body_type); }
2813 #line 2814 "parse-tree/oct-parse.cc"
2817 #line 371 "parse-tree/oct-parse.yy"
2818 {
delete ((*yyvaluep).tree_classdef_properties_block_type); }
2819 #line 2820 "parse-tree/oct-parse.cc"
2823 #line 370 "parse-tree/oct-parse.yy"
2824 {
delete ((*yyvaluep).tree_classdef_property_list_type); }
2825 #line 2826 "parse-tree/oct-parse.cc"
2829 #line 369 "parse-tree/oct-parse.yy"
2830 {
delete ((*yyvaluep).tree_classdef_property_type); }
2831 #line 2832 "parse-tree/oct-parse.cc"
2835 #line 373 "parse-tree/oct-parse.yy"
2836 {
delete ((*yyvaluep).tree_classdef_methods_block_type); }
2837 #line 2838 "parse-tree/oct-parse.cc"
2841 #line 361 "parse-tree/oct-parse.yy"
2842 {
delete ((*yyvaluep).octave_user_function_type); }
2843 #line 2844 "parse-tree/oct-parse.cc"
2847 #line 342 "parse-tree/oct-parse.yy"
2848 {
delete ((*yyvaluep).tree_function_def_type); }
2849 #line 2850 "parse-tree/oct-parse.cc"
2853 #line 342 "parse-tree/oct-parse.yy"
2854 {
delete ((*yyvaluep).tree_function_def_type); }
2855 #line 2856 "parse-tree/oct-parse.cc"
2859 #line 372 "parse-tree/oct-parse.yy"
2860 {
delete ((*yyvaluep).tree_classdef_methods_list_type); }
2861 #line 2862 "parse-tree/oct-parse.cc"
2865 #line 376 "parse-tree/oct-parse.yy"
2866 {
delete ((*yyvaluep).tree_classdef_events_block_type); }
2867 #line 2868 "parse-tree/oct-parse.cc"
2871 #line 375 "parse-tree/oct-parse.yy"
2872 {
delete ((*yyvaluep).tree_classdef_events_list_type); }
2873 #line 2874 "parse-tree/oct-parse.cc"
2877 #line 374 "parse-tree/oct-parse.yy"
2878 {
delete ((*yyvaluep).tree_classdef_event_type); }
2879 #line 2880 "parse-tree/oct-parse.cc"
2883 #line 379 "parse-tree/oct-parse.yy"
2884 {
delete ((*yyvaluep).tree_classdef_enum_block_type); }
2885 #line 2886 "parse-tree/oct-parse.cc"
2889 #line 378 "parse-tree/oct-parse.yy"
2890 {
delete ((*yyvaluep).tree_classdef_enum_list_type); }
2891 #line 2892 "parse-tree/oct-parse.cc"
2895 #line 377 "parse-tree/oct-parse.yy"
2896 {
delete ((*yyvaluep).tree_classdef_enum_type); }
2897 #line 2898 "parse-tree/oct-parse.cc"
2901 #line 332 "parse-tree/oct-parse.yy"
2903 #line 2904 "parse-tree/oct-parse.cc"
2907 #line 331 "parse-tree/oct-parse.yy"
2909 #line 2910 "parse-tree/oct-parse.cc"
2913 #line 331 "parse-tree/oct-parse.yy"
2915 #line 2916 "parse-tree/oct-parse.cc"
2919 #line 331 "parse-tree/oct-parse.yy"
2921 #line 2922 "parse-tree/oct-parse.cc"
2925 #line 331 "parse-tree/oct-parse.yy"
2927 #line 2928 "parse-tree/oct-parse.cc"
2931 #line 331 "parse-tree/oct-parse.yy"
2933 #line 2934 "parse-tree/oct-parse.cc"
2937 #line 331 "parse-tree/oct-parse.yy"
2939 #line 2940 "parse-tree/oct-parse.cc"
3035 if (!yyps->yynew && yyps->yyss != yyps->yyssa)
3041 #define octave_nerrs yyps->octave_nerrs
3042 #define yystate yyps->yystate
3043 #define yyerrstatus yyps->yyerrstatus
3044 #define yyssa yyps->yyssa
3045 #define yyss yyps->yyss
3046 #define yyssp yyps->yyssp
3047 #define yyvsa yyps->yyvsa
3048 #define yyvs yyps->yyvs
3049 #define yyvsp yyps->yyvsp
3050 #define yystacksize yyps->yystacksize
3081 char *yymsg = yymsgbuf;
3082 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
3085 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3094 goto yyread_pushed_token;
3101 YYDPRINTF ((stderr,
"Starting parse\n"));
3137 yyoverflow (
YY_(
"memory exhausted"),
3138 &yyss1, yysize *
sizeof (*yyssp),
3139 &yyvs1, yysize *
sizeof (*yyvsp),
3146 # ifndef YYSTACK_RELOCATE
3147 goto yyexhaustedlab;
3151 goto yyexhaustedlab;
3161 goto yyexhaustedlab;
3164 # undef YYSTACK_RELOCATE
3171 yyssp = yyss + yysize - 1;
3172 yyvsp =
yyvs + yysize - 1;
3174 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
3177 if (yyss + yystacksize - 1 <= yyssp)
3208 YYDPRINTF ((stderr,
"Return for a new token:\n"));
3213 yyread_pushed_token:
3214 YYDPRINTF ((stderr,
"Reading a token: "));
3215 yychar = yypushed_char;
3220 if (yychar <=
YYEOF)
3222 yychar = yytoken =
YYEOF;
3223 YYDPRINTF ((stderr,
"Now at end of input.\n"));
3289 yyval = yyvsp[1-yylen];
3296 #line 400 "parse-tree/oct-parse.yy"
3298 (yyval.tree_type) = 0;
3299 parser.
stmt_list = (yyvsp[-1].tree_statement_list_type);
3302 #line 3303 "parse-tree/oct-parse.cc"
3306 #line 406 "parse-tree/oct-parse.yy"
3308 (yyval.tree_type) = 0;
3309 lexer.end_of_input =
true;
3310 parser.
stmt_list = (yyvsp[-1].tree_statement_list_type);
3313 #line 3314 "parse-tree/oct-parse.cc"
3317 #line 413 "parse-tree/oct-parse.yy"
3319 (yyval.tree_type) = 0;
3322 #line 3323 "parse-tree/oct-parse.cc"
3326 #line 420 "parse-tree/oct-parse.yy"
3328 YYUSE ((yyvsp[0].punct_type));
3330 (yyval.tree_statement_list_type) = 0;
3332 #line 3333 "parse-tree/oct-parse.cc"
3336 #line 426 "parse-tree/oct-parse.yy"
3337 { (yyval.tree_statement_list_type) = parser.
set_stmt_print_flag ((yyvsp[-1].tree_statement_list_type), (yyvsp[0].punct_type),
false); }
3338 #line 3339 "parse-tree/oct-parse.cc"
3342 #line 430 "parse-tree/oct-parse.yy"
3343 { (yyval.tree_statement_list_type) = parser.
make_statement_list ((yyvsp[0].tree_statement_type)); }
3344 #line 3345 "parse-tree/oct-parse.cc"
3348 #line 432 "parse-tree/oct-parse.yy"
3349 { (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); }
3350 #line 3351 "parse-tree/oct-parse.cc"
3354 #line 436 "parse-tree/oct-parse.yy"
3356 #line 3357 "parse-tree/oct-parse.cc"
3360 #line 438 "parse-tree/oct-parse.yy"
3361 { (yyval.tree_statement_list_type) = (yyvsp[0].tree_statement_list_type); }
3362 #line 3363 "parse-tree/oct-parse.cc"
3366 #line 442 "parse-tree/oct-parse.yy"
3367 { (yyval.tree_statement_list_type) = parser.
set_stmt_print_flag ((yyvsp[-1].tree_statement_list_type), (yyvsp[0].punct_type),
true); }
3368 #line 3369 "parse-tree/oct-parse.cc"
3372 #line 446 "parse-tree/oct-parse.yy"
3373 { (yyval.tree_statement_list_type) = parser.
make_statement_list ((yyvsp[0].tree_statement_type)); }
3374 #line 3375 "parse-tree/oct-parse.cc"
3378 #line 448 "parse-tree/oct-parse.yy"
3379 { (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); }
3380 #line 3381 "parse-tree/oct-parse.cc"
3384 #line 452 "parse-tree/oct-parse.yy"
3385 { (yyval.tree_statement_type) = parser.
make_statement ((yyvsp[0].tree_expression_type)); }
3386 #line 3387 "parse-tree/oct-parse.cc"
3390 #line 454 "parse-tree/oct-parse.yy"
3391 { (yyval.tree_statement_type) = parser.
make_statement ((yyvsp[0].tree_command_type)); }
3392 #line 3393 "parse-tree/oct-parse.cc"
3396 #line 456 "parse-tree/oct-parse.yy"
3397 { (yyval.tree_statement_type) = parser.
make_statement ((yyvsp[0].tree_index_expression_type)); }
3398 #line 3399 "parse-tree/oct-parse.cc"
3402 #line 468 "parse-tree/oct-parse.yy"
3404 (yyval.tree_index_expression_type) = parser.
make_index_expression ((yyvsp[-1].tree_identifier_type), (yyvsp[0].tree_argument_list_type),
'(');
3405 if (! (yyval.tree_index_expression_type))
3411 #line 3412 "parse-tree/oct-parse.cc"
3415 #line 479 "parse-tree/oct-parse.yy"
3416 { (yyval.tree_argument_list_type) =
new tree_argument_list ((yyvsp[0].tree_constant_type)); }
3417 #line 3418 "parse-tree/oct-parse.cc"
3421 #line 481 "parse-tree/oct-parse.yy"
3423 (yyvsp[-1].tree_argument_list_type)->append ((yyvsp[0].tree_constant_type));
3424 (yyval.tree_argument_list_type) = (yyvsp[-1].tree_argument_list_type);
3426 #line 3427 "parse-tree/oct-parse.cc"
3430 #line 492 "parse-tree/oct-parse.yy"
3433 (yyval.tree_identifier_type) =
new tree_identifier (*sr, (yyvsp[0].tok_val)->line (), (yyvsp[0].tok_val)->column ());
3435 #line 3436 "parse-tree/oct-parse.cc"
3439 #line 500 "parse-tree/oct-parse.yy"
3441 std::string method_nm = (yyvsp[0].tok_val)->superclass_method_name ();
3442 std::string class_nm = (yyvsp[0].tok_val)->superclass_class_name ();
3446 #line 3447 "parse-tree/oct-parse.cc"
3450 #line 509 "parse-tree/oct-parse.yy"
3452 std::string class_nm = (yyvsp[0].tok_val)->
text ();
3456 #line 3457 "parse-tree/oct-parse.cc"
3460 #line 517 "parse-tree/oct-parse.yy"
3462 #line 3463 "parse-tree/oct-parse.cc"
3466 #line 519 "parse-tree/oct-parse.yy"
3468 #line 3469 "parse-tree/oct-parse.cc"
3472 #line 523 "parse-tree/oct-parse.yy"
3473 { (yyval.tree_constant_type) = parser.
make_constant (
NUM, (yyvsp[0].tok_val)); }
3474 #line 3475 "parse-tree/oct-parse.cc"
3478 #line 525 "parse-tree/oct-parse.yy"
3480 #line 3481 "parse-tree/oct-parse.cc"
3484 #line 527 "parse-tree/oct-parse.yy"
3485 { (yyval.tree_constant_type) = (yyvsp[0].tree_constant_type); }
3486 #line 3487 "parse-tree/oct-parse.cc"
3490 #line 531 "parse-tree/oct-parse.yy"
3491 { (yyval.tree_expression_type) = parser.
finish_matrix ((yyvsp[-1].tree_matrix_type)); }
3492 #line 3493 "parse-tree/oct-parse.cc"
3496 #line 535 "parse-tree/oct-parse.yy"
3497 { (yyval.tree_matrix_type) = (yyvsp[0].tree_argument_list_type) ?
new tree_matrix ((yyvsp[0].tree_argument_list_type)) : 0; }
3498 #line 3499 "parse-tree/oct-parse.cc"
3502 #line 537 "parse-tree/oct-parse.yy"
3504 if ((yyvsp[-2].tree_matrix_type))
3506 if ((yyvsp[0].tree_argument_list_type))
3507 (yyvsp[-2].tree_matrix_type)->append ((yyvsp[0].tree_argument_list_type));
3509 (yyval.tree_matrix_type) = (yyvsp[-2].tree_matrix_type);
3512 (yyval.tree_matrix_type) = (yyvsp[0].tree_argument_list_type) ?
new tree_matrix ((yyvsp[0].tree_argument_list_type)) : 0;
3514 #line 3515 "parse-tree/oct-parse.cc"
3518 #line 551 "parse-tree/oct-parse.yy"
3519 { (yyval.tree_expression_type) = parser.
finish_cell ((yyvsp[-1].tree_cell_type)); }
3520 #line 3521 "parse-tree/oct-parse.cc"
3524 #line 555 "parse-tree/oct-parse.yy"
3525 { (yyval.tree_cell_type) = (yyvsp[0].tree_argument_list_type) ?
new tree_cell ((yyvsp[0].tree_argument_list_type)) : 0; }
3526 #line 3527 "parse-tree/oct-parse.cc"
3530 #line 557 "parse-tree/oct-parse.yy"
3532 if ((yyvsp[-2].tree_cell_type))
3534 if ((yyvsp[0].tree_argument_list_type))
3535 (yyvsp[-2].tree_cell_type)->append ((yyvsp[0].tree_argument_list_type));
3537 (yyval.tree_cell_type) = (yyvsp[-2].tree_cell_type);
3540 (yyval.tree_cell_type) = (yyvsp[0].tree_argument_list_type) ?
new tree_cell ((yyvsp[0].tree_argument_list_type)) : 0;
3542 #line 3543 "parse-tree/oct-parse.cc"
3546 #line 575 "parse-tree/oct-parse.yy"
3547 { (yyval.tree_argument_list_type) = 0; }
3548 #line 3549 "parse-tree/oct-parse.cc"
3552 #line 577 "parse-tree/oct-parse.yy"
3553 { (yyval.tree_argument_list_type) = 0; }
3554 #line 3555 "parse-tree/oct-parse.cc"
3558 #line 579 "parse-tree/oct-parse.yy"
3559 { (yyval.tree_argument_list_type) = (yyvsp[0].tree_argument_list_type); }
3560 #line 3561 "parse-tree/oct-parse.cc"
3564 #line 581 "parse-tree/oct-parse.yy"
3565 { (yyval.tree_argument_list_type) = (yyvsp[-1].tree_argument_list_type); }
3566 #line 3567 "parse-tree/oct-parse.cc"
3570 #line 583 "parse-tree/oct-parse.yy"
3571 { (yyval.tree_argument_list_type) = (yyvsp[0].tree_argument_list_type); }
3572 #line 3573 "parse-tree/oct-parse.cc"
3576 #line 585 "parse-tree/oct-parse.yy"
3577 { (yyval.tree_argument_list_type) = (yyvsp[-1].tree_argument_list_type); }
3578 #line 3579 "parse-tree/oct-parse.cc"
3582 #line 589 "parse-tree/oct-parse.yy"
3584 (yyval.tree_fcn_handle_type) = parser.
make_fcn_handle ((yyvsp[0].tok_val));
3585 lexer.looking_at_function_handle--;
3587 #line 3588 "parse-tree/oct-parse.cc"
3591 #line 596 "parse-tree/oct-parse.yy"
3593 (yyval.tree_anon_fcn_handle_type) = parser.
make_anon_fcn_handle ((yyvsp[-2].tree_parameter_list_type), (yyvsp[0].tree_statement_type));
3594 lexer.nesting_level.remove ();
3596 #line 3597 "parse-tree/oct-parse.cc"
3600 #line 603 "parse-tree/oct-parse.yy"
3601 { (yyval.tree_expression_type) = (yyvsp[0].tree_identifier_type); }
3602 #line 3603 "parse-tree/oct-parse.cc"
3606 #line 605 "parse-tree/oct-parse.yy"
3607 { (yyval.tree_expression_type) = (yyvsp[0].tree_constant_type); }
3608 #line 3609 "parse-tree/oct-parse.cc"
3612 #line 607 "parse-tree/oct-parse.yy"
3613 { (yyval.tree_expression_type) = (yyvsp[0].tree_fcn_handle_type); }
3614 #line 3615 "parse-tree/oct-parse.cc"
3618 #line 609 "parse-tree/oct-parse.yy"
3620 lexer.looking_at_matrix_or_assign_lhs =
false;
3621 (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
3623 #line 3624 "parse-tree/oct-parse.cc"
3627 #line 614 "parse-tree/oct-parse.yy"
3628 { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
3629 #line 3630 "parse-tree/oct-parse.cc"
3633 #line 616 "parse-tree/oct-parse.yy"
3634 { (yyval.tree_expression_type) = (yyvsp[0].tree_funcall_type); }
3635 #line 3636 "parse-tree/oct-parse.cc"
3639 #line 618 "parse-tree/oct-parse.yy"
3640 { (yyval.tree_expression_type) = (yyvsp[0].tree_funcall_type); }
3641 #line 3642 "parse-tree/oct-parse.cc"
3645 #line 620 "parse-tree/oct-parse.yy"
3646 { (yyval.tree_expression_type) = (yyvsp[-1].tree_expression_type)->mark_in_parens (); }
3647 #line 3648 "parse-tree/oct-parse.cc"
3651 #line 624 "parse-tree/oct-parse.yy"
3653 YYUSE ((yyvsp[0].tok_val));
3658 #line 3659 "parse-tree/oct-parse.cc"
3662 #line 633 "parse-tree/oct-parse.yy"
3664 YYUSE ((yyvsp[0].tok_val));
3668 #line 3669 "parse-tree/oct-parse.cc"
3672 #line 641 "parse-tree/oct-parse.yy"
3673 { (yyval.tree_argument_list_type) =
new tree_argument_list ((yyvsp[0].tree_expression_type)); }
3674 #line 3675 "parse-tree/oct-parse.cc"
3678 #line 643 "parse-tree/oct-parse.yy"
3679 { (yyval.tree_argument_list_type) =
new tree_argument_list ((yyvsp[0].tree_constant_type)); }
3680 #line 3681 "parse-tree/oct-parse.cc"
3684 #line 645 "parse-tree/oct-parse.yy"
3685 { (yyval.tree_argument_list_type) =
new tree_argument_list ((yyvsp[0].tree_identifier_type)); }
3686 #line 3687 "parse-tree/oct-parse.cc"
3690 #line 647 "parse-tree/oct-parse.yy"
3692 (yyvsp[-2].tree_argument_list_type)->append ((yyvsp[0].tree_constant_type));
3693 (yyval.tree_argument_list_type) = (yyvsp[-2].tree_argument_list_type);
3695 #line 3696 "parse-tree/oct-parse.cc"
3699 #line 652 "parse-tree/oct-parse.yy"
3701 (yyvsp[-2].tree_argument_list_type)->append ((yyvsp[0].tree_identifier_type));
3702 (yyval.tree_argument_list_type) = (yyvsp[-2].tree_argument_list_type);
3704 #line 3705 "parse-tree/oct-parse.cc"
3708 #line 657 "parse-tree/oct-parse.yy"
3710 (yyvsp[-2].tree_argument_list_type)->append ((yyvsp[0].tree_expression_type));
3711 (yyval.tree_argument_list_type) = (yyvsp[-2].tree_argument_list_type);
3713 #line 3714 "parse-tree/oct-parse.cc"
3717 #line 664 "parse-tree/oct-parse.yy"
3719 (yyval.dummy_type) = 0;
3720 lexer.looking_at_indirect_ref =
true;
3722 #line 3723 "parse-tree/oct-parse.cc"
3726 #line 671 "parse-tree/oct-parse.yy"
3727 { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
3728 #line 3729 "parse-tree/oct-parse.cc"
3732 #line 673 "parse-tree/oct-parse.yy"
3733 { (yyval.tree_expression_type) = parser.
make_postfix_op (
PLUS_PLUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3734 #line 3735 "parse-tree/oct-parse.cc"
3738 #line 675 "parse-tree/oct-parse.yy"
3739 { (yyval.tree_expression_type) = parser.
make_postfix_op (
MINUS_MINUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3740 #line 3741 "parse-tree/oct-parse.cc"
3744 #line 677 "parse-tree/oct-parse.yy"
3746 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-2].tree_expression_type), 0,
'(');
3747 if (! (yyval.tree_expression_type))
3753 #line 3754 "parse-tree/oct-parse.cc"
3757 #line 686 "parse-tree/oct-parse.yy"
3759 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type),
'(');
3760 if (! (yyval.tree_expression_type))
3766 #line 3767 "parse-tree/oct-parse.cc"
3770 #line 695 "parse-tree/oct-parse.yy"
3772 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-2].tree_expression_type), 0,
'{');
3773 if (! (yyval.tree_expression_type))
3779 #line 3780 "parse-tree/oct-parse.cc"
3783 #line 704 "parse-tree/oct-parse.yy"
3785 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type),
'{');
3786 if (! (yyval.tree_expression_type))
3792 #line 3793 "parse-tree/oct-parse.cc"
3796 #line 713 "parse-tree/oct-parse.yy"
3797 { (yyval.tree_expression_type) = parser.
make_postfix_op (
HERMITIAN, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3798 #line 3799 "parse-tree/oct-parse.cc"
3802 #line 715 "parse-tree/oct-parse.yy"
3803 { (yyval.tree_expression_type) = parser.
make_postfix_op (
TRANSPOSE, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3804 #line 3805 "parse-tree/oct-parse.cc"
3808 #line 717 "parse-tree/oct-parse.yy"
3809 { (yyval.tree_expression_type) = parser.
make_indirect_ref ((yyvsp[-2].tree_expression_type), (yyvsp[0].tok_val)->text ()); }
3810 #line 3811 "parse-tree/oct-parse.cc"
3814 #line 719 "parse-tree/oct-parse.yy"
3815 { (yyval.tree_expression_type) = parser.
make_indirect_ref ((yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_expression_type)); }
3816 #line 3817 "parse-tree/oct-parse.cc"
3820 #line 721 "parse-tree/oct-parse.yy"
3821 { (yyval.tree_expression_type) = parser.
make_prefix_op (
PLUS_PLUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3822 #line 3823 "parse-tree/oct-parse.cc"
3826 #line 723 "parse-tree/oct-parse.yy"
3827 { (yyval.tree_expression_type) = parser.
make_prefix_op (
MINUS_MINUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3828 #line 3829 "parse-tree/oct-parse.cc"
3832 #line 725 "parse-tree/oct-parse.yy"
3833 { (yyval.tree_expression_type) = parser.
make_prefix_op (
EXPR_NOT, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3834 #line 3835 "parse-tree/oct-parse.cc"
3838 #line 727 "parse-tree/oct-parse.yy"
3839 { (yyval.tree_expression_type) = parser.
make_prefix_op (
'+', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3840 #line 3841 "parse-tree/oct-parse.cc"
3844 #line 729 "parse-tree/oct-parse.yy"
3845 { (yyval.tree_expression_type) = parser.
make_prefix_op (
'-', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3846 #line 3847 "parse-tree/oct-parse.cc"
3850 #line 731 "parse-tree/oct-parse.yy"
3851 { (yyval.tree_expression_type) = parser.
make_binary_op (
POW, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3852 #line 3853 "parse-tree/oct-parse.cc"
3856 #line 733 "parse-tree/oct-parse.yy"
3857 { (yyval.tree_expression_type) = parser.
make_binary_op (
EPOW, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3858 #line 3859 "parse-tree/oct-parse.cc"
3862 #line 735 "parse-tree/oct-parse.yy"
3863 { (yyval.tree_expression_type) = parser.
make_binary_op (
'+', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3864 #line 3865 "parse-tree/oct-parse.cc"
3868 #line 737 "parse-tree/oct-parse.yy"
3869 { (yyval.tree_expression_type) = parser.
make_binary_op (
'-', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3870 #line 3871 "parse-tree/oct-parse.cc"
3874 #line 739 "parse-tree/oct-parse.yy"
3875 { (yyval.tree_expression_type) = parser.
make_binary_op (
'*', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3876 #line 3877 "parse-tree/oct-parse.cc"
3880 #line 741 "parse-tree/oct-parse.yy"
3881 { (yyval.tree_expression_type) = parser.
make_binary_op (
'/', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3882 #line 3883 "parse-tree/oct-parse.cc"
3886 #line 743 "parse-tree/oct-parse.yy"
3887 { (yyval.tree_expression_type) = parser.
make_binary_op (
'+', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3888 #line 3889 "parse-tree/oct-parse.cc"
3892 #line 745 "parse-tree/oct-parse.yy"
3893 { (yyval.tree_expression_type) = parser.
make_binary_op (
'-', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3894 #line 3895 "parse-tree/oct-parse.cc"
3898 #line 747 "parse-tree/oct-parse.yy"
3899 { (yyval.tree_expression_type) = parser.
make_binary_op (
EMUL, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3900 #line 3901 "parse-tree/oct-parse.cc"
3904 #line 749 "parse-tree/oct-parse.yy"
3905 { (yyval.tree_expression_type) = parser.
make_binary_op (
EDIV, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3906 #line 3907 "parse-tree/oct-parse.cc"
3910 #line 751 "parse-tree/oct-parse.yy"
3911 { (yyval.tree_expression_type) = parser.
make_binary_op (
LEFTDIV, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3912 #line 3913 "parse-tree/oct-parse.cc"
3916 #line 753 "parse-tree/oct-parse.yy"
3917 { (yyval.tree_expression_type) = parser.
make_binary_op (
ELEFTDIV, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3918 #line 3919 "parse-tree/oct-parse.cc"
3922 #line 757 "parse-tree/oct-parse.yy"
3923 { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
3924 #line 3925 "parse-tree/oct-parse.cc"
3928 #line 759 "parse-tree/oct-parse.yy"
3929 { (yyval.tree_expression_type) = parser.
make_postfix_op (
PLUS_PLUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3930 #line 3931 "parse-tree/oct-parse.cc"
3934 #line 761 "parse-tree/oct-parse.yy"
3935 { (yyval.tree_expression_type) = parser.
make_postfix_op (
MINUS_MINUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3936 #line 3937 "parse-tree/oct-parse.cc"
3940 #line 763 "parse-tree/oct-parse.yy"
3942 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-2].tree_expression_type), 0,
'(');
3943 if (! (yyval.tree_expression_type))
3949 #line 3950 "parse-tree/oct-parse.cc"
3953 #line 772 "parse-tree/oct-parse.yy"
3955 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type),
'(');
3956 if (! (yyval.tree_expression_type))
3962 #line 3963 "parse-tree/oct-parse.cc"
3966 #line 781 "parse-tree/oct-parse.yy"
3968 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-2].tree_expression_type), 0,
'{');
3969 if (! (yyval.tree_expression_type))
3975 #line 3976 "parse-tree/oct-parse.cc"
3979 #line 790 "parse-tree/oct-parse.yy"
3981 (yyval.tree_expression_type) = parser.
make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type),
'{');
3982 if (! (yyval.tree_expression_type))
3988 #line 3989 "parse-tree/oct-parse.cc"
3992 #line 799 "parse-tree/oct-parse.yy"
3993 { (yyval.tree_expression_type) = parser.
make_indirect_ref ((yyvsp[-2].tree_expression_type), (yyvsp[0].tok_val)->text ()); }
3994 #line 3995 "parse-tree/oct-parse.cc"
3998 #line 801 "parse-tree/oct-parse.yy"
3999 { (yyval.tree_expression_type) = parser.
make_indirect_ref ((yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_expression_type)); }
4000 #line 4001 "parse-tree/oct-parse.cc"
4004 #line 803 "parse-tree/oct-parse.yy"
4005 { (yyval.tree_expression_type) = parser.
make_prefix_op (
PLUS_PLUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
4006 #line 4007 "parse-tree/oct-parse.cc"
4010 #line 805 "parse-tree/oct-parse.yy"
4011 { (yyval.tree_expression_type) = parser.
make_prefix_op (
MINUS_MINUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
4012 #line 4013 "parse-tree/oct-parse.cc"
4016 #line 807 "parse-tree/oct-parse.yy"
4017 { (yyval.tree_expression_type) = parser.
make_prefix_op (
EXPR_NOT, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
4018 #line 4019 "parse-tree/oct-parse.cc"
4022 #line 809 "parse-tree/oct-parse.yy"
4023 { (yyval.tree_expression_type) = parser.
make_prefix_op (
'+', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
4024 #line 4025 "parse-tree/oct-parse.cc"
4028 #line 811 "parse-tree/oct-parse.yy"
4029 { (yyval.tree_expression_type) = parser.
make_prefix_op (
'-', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
4030 #line 4031 "parse-tree/oct-parse.cc"
4034 #line 815 "parse-tree/oct-parse.yy"
4036 #line 4037 "parse-tree/oct-parse.cc"
4040 #line 819 "parse-tree/oct-parse.yy"
4041 { (yyval.tree_colon_expression_type) =
new tree_colon_expression ((yyvsp[0].tree_expression_type)); }
4042 #line 4043 "parse-tree/oct-parse.cc"
4046 #line 821 "parse-tree/oct-parse.yy"
4048 YYUSE ((yyvsp[-1].tok_val));
4050 if (! ((yyval.tree_colon_expression_type) = (yyvsp[-2].tree_colon_expression_type)->append ((yyvsp[0].tree_expression_type))))
4052 delete (yyvsp[-2].tree_colon_expression_type);
4053 delete (yyvsp[0].tree_expression_type);
4057 #line 4058 "parse-tree/oct-parse.cc"
4061 #line 834 "parse-tree/oct-parse.yy"
4062 { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
4063 #line 4064 "parse-tree/oct-parse.cc"
4067 #line 836 "parse-tree/oct-parse.yy"
4068 { (yyval.tree_expression_type) = parser.
make_binary_op (
LSHIFT, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4069 #line 4070 "parse-tree/oct-parse.cc"
4073 #line 838 "parse-tree/oct-parse.yy"
4074 { (yyval.tree_expression_type) = parser.
make_binary_op (
RSHIFT, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4075 #line 4076 "parse-tree/oct-parse.cc"
4079 #line 840 "parse-tree/oct-parse.yy"
4080 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_LT, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4081 #line 4082 "parse-tree/oct-parse.cc"
4085 #line 842 "parse-tree/oct-parse.yy"
4086 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_LE, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4087 #line 4088 "parse-tree/oct-parse.cc"
4091 #line 844 "parse-tree/oct-parse.yy"
4092 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_EQ, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4093 #line 4094 "parse-tree/oct-parse.cc"
4097 #line 846 "parse-tree/oct-parse.yy"
4098 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_GE, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4099 #line 4100 "parse-tree/oct-parse.cc"
4103 #line 848 "parse-tree/oct-parse.yy"
4104 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_GT, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4105 #line 4106 "parse-tree/oct-parse.cc"
4109 #line 850 "parse-tree/oct-parse.yy"
4110 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_NE, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4111 #line 4112 "parse-tree/oct-parse.cc"
4115 #line 852 "parse-tree/oct-parse.yy"
4116 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_AND, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4117 #line 4118 "parse-tree/oct-parse.cc"
4121 #line 854 "parse-tree/oct-parse.yy"
4122 { (yyval.tree_expression_type) = parser.
make_binary_op (
EXPR_OR, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4123 #line 4124 "parse-tree/oct-parse.cc"
4127 #line 856 "parse-tree/oct-parse.yy"
4128 { (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)); }
4129 #line 4130 "parse-tree/oct-parse.cc"
4133 #line 858 "parse-tree/oct-parse.yy"
4134 { (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)); }
4135 #line 4136 "parse-tree/oct-parse.cc"
4139 #line 862 "parse-tree/oct-parse.yy"
4143 if ((yyval.tree_argument_list_type))
4144 {
lexer.looking_at_matrix_or_assign_lhs =
false; }
4151 #line 4152 "parse-tree/oct-parse.cc"
4155 #line 876 "parse-tree/oct-parse.yy"
4156 { (yyval.tree_expression_type) = parser.
make_assign_op (
'=', (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4157 #line 4158 "parse-tree/oct-parse.cc"
4161 #line 878 "parse-tree/oct-parse.yy"
4162 { (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)); }
4163 #line 4164 "parse-tree/oct-parse.cc"
4167 #line 880 "parse-tree/oct-parse.yy"
4168 { (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)); }
4169 #line 4170 "parse-tree/oct-parse.cc"
4173 #line 882 "parse-tree/oct-parse.yy"
4174 { (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)); }
4175 #line 4176 "parse-tree/oct-parse.cc"
4179 #line 884 "parse-tree/oct-parse.yy"
4180 { (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)); }
4181 #line 4182 "parse-tree/oct-parse.cc"
4185 #line 886 "parse-tree/oct-parse.yy"
4186 { (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)); }
4187 #line 4188 "parse-tree/oct-parse.cc"
4191 #line 888 "parse-tree/oct-parse.yy"
4192 { (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)); }
4193 #line 4194 "parse-tree/oct-parse.cc"
4197 #line 890 "parse-tree/oct-parse.yy"
4198 { (yyval.tree_expression_type) = parser.
make_assign_op (
LSHIFT_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4199 #line 4200 "parse-tree/oct-parse.cc"
4203 #line 892 "parse-tree/oct-parse.yy"
4204 { (yyval.tree_expression_type) = parser.
make_assign_op (
RSHIFT_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4205 #line 4206 "parse-tree/oct-parse.cc"
4209 #line 894 "parse-tree/oct-parse.yy"
4210 { (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)); }
4211 #line 4212 "parse-tree/oct-parse.cc"
4215 #line 896 "parse-tree/oct-parse.yy"
4216 { (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)); }
4217 #line 4218 "parse-tree/oct-parse.cc"
4221 #line 898 "parse-tree/oct-parse.yy"
4222 { (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)); }
4223 #line 4224 "parse-tree/oct-parse.cc"
4227 #line 900 "parse-tree/oct-parse.yy"
4228 { (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)); }
4229 #line 4230 "parse-tree/oct-parse.cc"
4233 #line 902 "parse-tree/oct-parse.yy"
4234 { (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)); }
4235 #line 4236 "parse-tree/oct-parse.cc"
4239 #line 904 "parse-tree/oct-parse.yy"
4240 { (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)); }
4241 #line 4242 "parse-tree/oct-parse.cc"
4245 #line 908 "parse-tree/oct-parse.yy"
4247 if ((yyvsp[0].tree_expression_type) && ((yyvsp[0].tree_expression_type)->is_matrix () || (yyvsp[0].tree_expression_type)->is_cell ()))
4250 (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
4253 delete (yyvsp[0].tree_expression_type);
4258 (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
4260 #line 4261 "parse-tree/oct-parse.cc"
4264 #line 923 "parse-tree/oct-parse.yy"
4265 { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
4266 #line 4267 "parse-tree/oct-parse.cc"
4270 #line 925 "parse-tree/oct-parse.yy"
4271 { (yyval.tree_expression_type) = (yyvsp[0].tree_anon_fcn_handle_type); }
4272 #line 4273 "parse-tree/oct-parse.cc"
4276 #line 933 "parse-tree/oct-parse.yy"
4277 { (yyval.tree_command_type) = (yyvsp[0].tree_decl_command_type); }
4278 #line 4279 "parse-tree/oct-parse.cc"
4282 #line 935 "parse-tree/oct-parse.yy"
4283 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4284 #line 4285 "parse-tree/oct-parse.cc"
4288 #line 937 "parse-tree/oct-parse.yy"
4289 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4290 #line 4291 "parse-tree/oct-parse.cc"
4294 #line 939 "parse-tree/oct-parse.yy"
4295 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4296 #line 4297 "parse-tree/oct-parse.cc"
4300 #line 941 "parse-tree/oct-parse.yy"
4301 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4302 #line 4303 "parse-tree/oct-parse.cc"
4306 #line 943 "parse-tree/oct-parse.yy"
4307 { (yyval.tree_command_type) = (yyvsp[0].tree_function_def_type); }
4308 #line 4309 "parse-tree/oct-parse.cc"
4312 #line 945 "parse-tree/oct-parse.yy"
4313 { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4314 #line 4315 "parse-tree/oct-parse.cc"
4318 #line 953 "parse-tree/oct-parse.yy"
4320 (yyval.tree_decl_command_type) = parser.
make_decl_command (
GLOBAL, (yyvsp[-1].tok_val), (yyvsp[0].tree_decl_init_list_type));
4321 lexer.looking_at_decl_list =
false;
4323 #line 4324 "parse-tree/oct-parse.cc"
4327 #line 958 "parse-tree/oct-parse.yy"
4330 lexer.looking_at_decl_list =
false;
4332 #line 4333 "parse-tree/oct-parse.cc"
4336 #line 965 "parse-tree/oct-parse.yy"
4337 { (yyval.tree_decl_init_list_type) =
new tree_decl_init_list ((yyvsp[0].tree_decl_elt_type)); }
4338 #line 4339 "parse-tree/oct-parse.cc"
4342 #line 967 "parse-tree/oct-parse.yy"
4344 (yyvsp[-1].tree_decl_init_list_type)->append ((yyvsp[0].tree_decl_elt_type));
4345 (yyval.tree_decl_init_list_type) = (yyvsp[-1].tree_decl_init_list_type);
4347 #line 4348 "parse-tree/oct-parse.cc"
4351 #line 974 "parse-tree/oct-parse.yy"
4353 (yyval.dummy_type) = 0;
4354 lexer.looking_at_initializer_expression =
true;
4356 #line 4357 "parse-tree/oct-parse.cc"
4360 #line 980 "parse-tree/oct-parse.yy"
4361 { (yyval.tree_decl_elt_type) =
new tree_decl_elt ((yyvsp[0].tree_identifier_type)); }
4362 #line 4363 "parse-tree/oct-parse.cc"
4366 #line 982 "parse-tree/oct-parse.yy"
4368 YYUSE ((yyvsp[-2].tok_val));
4370 lexer.looking_at_initializer_expression =
false;
4371 (yyval.tree_decl_elt_type) =
new tree_decl_elt ((yyvsp[-3].tree_identifier_type), (yyvsp[0].tree_expression_type));
4373 #line 4374 "parse-tree/oct-parse.cc"
4377 #line 995 "parse-tree/oct-parse.yy"
4378 { (yyval.tree_command_type) = (yyvsp[0].tree_if_command_type); }
4379 #line 4380 "parse-tree/oct-parse.cc"
4383 #line 997 "parse-tree/oct-parse.yy"
4384 { (yyval.tree_command_type) = (yyvsp[0].tree_switch_command_type); }
4385 #line 4386 "parse-tree/oct-parse.cc"
4389 #line 1005 "parse-tree/oct-parse.yy"
4391 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))))
4397 #line 4398 "parse-tree/oct-parse.cc"
4401 #line 1015 "parse-tree/oct-parse.yy"
4402 { (yyval.tree_if_command_list_type) = (yyvsp[0].tree_if_command_list_type); }
4403 #line 4404 "parse-tree/oct-parse.cc"
4407 #line 1017 "parse-tree/oct-parse.yy"
4409 (yyvsp[-1].tree_if_command_list_type)->append ((yyvsp[0].tree_if_clause_type));
4410 (yyval.tree_if_command_list_type) = (yyvsp[-1].tree_if_command_list_type);
4412 #line 4413 "parse-tree/oct-parse.cc"
4416 #line 1024 "parse-tree/oct-parse.yy"
4418 YYUSE ((yyvsp[-1].punct_type));
4420 (yyvsp[-3].tree_expression_type)->mark_braindead_shortcircuit ();
4422 (yyval.tree_if_command_list_type) = parser.
start_if_command ((yyvsp[-3].tree_expression_type), (yyvsp[0].tree_statement_list_type));
4424 #line 4425 "parse-tree/oct-parse.cc"
4428 #line 1032 "parse-tree/oct-parse.yy"
4430 (yyvsp[-1].tree_if_command_list_type)->append ((yyvsp[0].tree_if_clause_type));
4431 (yyval.tree_if_command_list_type) = (yyvsp[-1].tree_if_command_list_type);
4433 #line 4434 "parse-tree/oct-parse.cc"
4437 #line 1039 "parse-tree/oct-parse.yy"
4439 YYUSE ((yyvsp[-4].punct_type));
4440 YYUSE ((yyvsp[-1].punct_type));
4442 (yyvsp[-3].tree_expression_type)->mark_braindead_shortcircuit ();
4444 (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));
4446 #line 4447 "parse-tree/oct-parse.cc"
4450 #line 1050 "parse-tree/oct-parse.yy"
4452 YYUSE ((yyvsp[-3].tok_val));
4453 YYUSE ((yyvsp[-1].punct_type));
4455 (yyval.tree_if_clause_type) =
new tree_if_clause ((yyvsp[0].tree_statement_list_type), (yyvsp[-2].comment_type));
4457 #line 4458 "parse-tree/oct-parse.cc"
4461 #line 1063 "parse-tree/oct-parse.yy"
4463 YYUSE ((yyvsp[-2].punct_type));
4465 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))))
4471 #line 4472 "parse-tree/oct-parse.cc"
4475 #line 1075 "parse-tree/oct-parse.yy"
4477 #line 4478 "parse-tree/oct-parse.cc"
4481 #line 1077 "parse-tree/oct-parse.yy"
4482 { (yyval.tree_switch_case_list_type) =
new tree_switch_case_list ((yyvsp[0].tree_switch_case_type)); }
4483 #line 4484 "parse-tree/oct-parse.cc"
4487 #line 1079 "parse-tree/oct-parse.yy"
4488 { (yyval.tree_switch_case_list_type) = (yyvsp[0].tree_switch_case_list_type); }
4489 #line 4490 "parse-tree/oct-parse.cc"
4493 #line 1081 "parse-tree/oct-parse.yy"
4495 (yyvsp[-1].tree_switch_case_list_type)->append ((yyvsp[0].tree_switch_case_type));
4496 (yyval.tree_switch_case_list_type) = (yyvsp[-1].tree_switch_case_list_type);
4498 #line 4499 "parse-tree/oct-parse.cc"
4502 #line 1088 "parse-tree/oct-parse.yy"
4503 { (yyval.tree_switch_case_list_type) =
new tree_switch_case_list ((yyvsp[0].tree_switch_case_type)); }
4504 #line 4505 "parse-tree/oct-parse.cc"
4508 #line 1090 "parse-tree/oct-parse.yy"
4510 (yyvsp[-1].tree_switch_case_list_type)->append ((yyvsp[0].tree_switch_case_type));
4511 (yyval.tree_switch_case_list_type) = (yyvsp[-1].tree_switch_case_list_type);
4513 #line 4514 "parse-tree/oct-parse.cc"
4517 #line 1097 "parse-tree/oct-parse.yy"
4519 YYUSE ((yyvsp[-4].punct_type));
4520 YYUSE ((yyvsp[-1].punct_type));
4522 (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));
4524 #line 4525 "parse-tree/oct-parse.cc"
4528 #line 1106 "parse-tree/oct-parse.yy"
4530 YYUSE ((yyvsp[-3].tok_val));
4531 YYUSE ((yyvsp[-1].punct_type));
4533 (yyval.tree_switch_case_type) =
new tree_switch_case ((yyvsp[0].tree_statement_list_type), (yyvsp[-2].comment_type));
4535 #line 4536 "parse-tree/oct-parse.cc"
4539 #line 1119 "parse-tree/oct-parse.yy"
4541 YYUSE ((yyvsp[-2].punct_type));
4543 (yyvsp[-4].tree_expression_type)->mark_braindead_shortcircuit ();
4545 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))))
4551 #line 4552 "parse-tree/oct-parse.cc"
4555 #line 1131 "parse-tree/oct-parse.yy"
4557 YYUSE ((yyvsp[-5].tok_val));
4558 YYUSE ((yyvsp[-3].punct_type));
4560 (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));
4562 #line 4563 "parse-tree/oct-parse.cc"
4566 #line 1138 "parse-tree/oct-parse.yy"
4568 YYUSE ((yyvsp[-5].tok_val));
4569 YYUSE ((yyvsp[-2].punct_type));
4571 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,
4572 (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type))))
4578 #line 4579 "parse-tree/oct-parse.cc"
4582 #line 1150 "parse-tree/oct-parse.yy"
4584 YYUSE ((yyvsp[-5].tok_val));
4585 YYUSE ((yyvsp[-2].punct_type));
4587 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,
4588 (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-8].comment_type))))
4594 #line 4595 "parse-tree/oct-parse.cc"
4598 #line 1162 "parse-tree/oct-parse.yy"
4600 YYUSE ((yyvsp[-5].tok_val));
4601 YYUSE ((yyvsp[-2].punct_type));
4603 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),
4604 0, (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type))))
4610 #line 4611 "parse-tree/oct-parse.cc"
4614 #line 1174 "parse-tree/oct-parse.yy"
4616 YYUSE ((yyvsp[-7].tok_val));
4617 YYUSE ((yyvsp[-2].punct_type));
4619 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),
4620 (yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-10].comment_type))))
4626 #line 4627 "parse-tree/oct-parse.cc"
4630 #line 1192 "parse-tree/oct-parse.yy"
4632 #line 4633 "parse-tree/oct-parse.cc"
4636 #line 1194 "parse-tree/oct-parse.yy"
4638 #line 4639 "parse-tree/oct-parse.cc"
4642 #line 1196 "parse-tree/oct-parse.yy"
4644 #line 4645 "parse-tree/oct-parse.cc"
4648 #line 1205 "parse-tree/oct-parse.yy"
4650 YYUSE ((yyvsp[-6].punct_type));
4651 YYUSE ((yyvsp[-4].tok_val));
4652 YYUSE ((yyvsp[-2].punct_type));
4654 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))))
4660 #line 4661 "parse-tree/oct-parse.cc"
4664 #line 1218 "parse-tree/oct-parse.yy"
4666 YYUSE ((yyvsp[-6].punct_type));
4667 YYUSE ((yyvsp[-4].tok_val));
4668 YYUSE ((yyvsp[-2].punct_type));
4670 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))))
4676 #line 4677 "parse-tree/oct-parse.cc"
4680 #line 1230 "parse-tree/oct-parse.yy"
4682 YYUSE ((yyvsp[-2].punct_type));
4684 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)))
4690 #line 4691 "parse-tree/oct-parse.cc"
4694 #line 1246 "parse-tree/oct-parse.yy"
4696 (yyval.dummy_type) = 0;
4706 (
lexer.symtab_context.curr_scope ());
4708 if (!
lexer.reading_script_file
4712 =
lexer.symtab_context.curr_scope ();
4714 if (
lexer.reading_script_file
4716 parser.
bison_error (
"nested functions not implemented in this context");
4718 #line 4719 "parse-tree/oct-parse.cc"
4722 #line 1276 "parse-tree/oct-parse.yy"
4724 (yyval.dummy_type) = 0;
4725 lexer.looking_at_parameter_list =
true;
4727 if (
lexer.looking_at_function_handle)
4730 lexer.looking_at_function_handle--;
4731 lexer.looking_at_anon_fcn_args =
true;
4734 #line 4735 "parse-tree/oct-parse.cc"
4738 #line 1290 "parse-tree/oct-parse.yy"
4740 (yyval.dummy_type) = 0;
4741 lexer.looking_at_parameter_list =
false;
4742 lexer.looking_for_object_index =
false;
4744 #line 4745 "parse-tree/oct-parse.cc"
4748 #line 1298 "parse-tree/oct-parse.yy"
4750 if ((yyvsp[-1].tree_parameter_list_type))
4751 lexer.mark_as_variables ((yyvsp[-1].tree_parameter_list_type)->variable_names ());
4753 (yyval.tree_parameter_list_type) = (yyvsp[-1].tree_parameter_list_type);
4755 #line 4756 "parse-tree/oct-parse.cc"
4759 #line 1305 "parse-tree/oct-parse.yy"
4762 (yyval.tree_parameter_list_type) = 0;
4765 #line 4766 "parse-tree/oct-parse.cc"
4769 #line 1313 "parse-tree/oct-parse.yy"
4770 { (yyval.tree_parameter_list_type) = 0; }
4771 #line 4772 "parse-tree/oct-parse.cc"
4775 #line 1315 "parse-tree/oct-parse.yy"
4777 (yyvsp[0].tree_parameter_list_type)->mark_as_formal_parameters ();
4780 lexer.mark_as_variables ((yyvsp[0].tree_parameter_list_type)->variable_names ());
4781 (yyval.tree_parameter_list_type) = (yyvsp[0].tree_parameter_list_type);
4785 delete (yyvsp[0].tree_parameter_list_type);
4789 #line 4790 "parse-tree/oct-parse.cc"
4793 #line 1331 "parse-tree/oct-parse.yy"
4794 { (yyval.tree_parameter_list_type) =
new tree_parameter_list ((yyvsp[0].tree_decl_elt_type)); }
4795 #line 4796 "parse-tree/oct-parse.cc"
4799 #line 1333 "parse-tree/oct-parse.yy"
4801 (yyvsp[-2].tree_parameter_list_type)->append ((yyvsp[0].tree_decl_elt_type));
4802 (yyval.tree_parameter_list_type) = (yyvsp[-2].tree_parameter_list_type);
4804 #line 4805 "parse-tree/oct-parse.cc"
4808 #line 1340 "parse-tree/oct-parse.yy"
4809 { (yyval.tree_decl_elt_type) = (yyvsp[0].tree_decl_elt_type); }
4810 #line 4811 "parse-tree/oct-parse.cc"
4814 #line 1342 "parse-tree/oct-parse.yy"
4815 { (yyval.tree_decl_elt_type) =
new tree_decl_elt ((yyvsp[0].tree_identifier_type)); }
4816 #line 4817 "parse-tree/oct-parse.cc"
4820 #line 1350 "parse-tree/oct-parse.yy"
4822 lexer.looking_at_return_list =
false;
4826 #line 4827 "parse-tree/oct-parse.cc"
4830 #line 1356 "parse-tree/oct-parse.yy"
4832 lexer.looking_at_return_list =
false;
4841 (yyval.tree_parameter_list_type) = tmp;
4848 #line 4849 "parse-tree/oct-parse.cc"
4852 #line 1374 "parse-tree/oct-parse.yy"
4854 lexer.looking_at_return_list =
false;
4860 (yyval.tree_parameter_list_type) = (yyvsp[-1].tree_parameter_list_type);
4863 delete (yyvsp[-1].tree_parameter_list_type);
4867 #line 4868 "parse-tree/oct-parse.cc"
4871 #line 1391 "parse-tree/oct-parse.yy"
4873 #line 4874 "parse-tree/oct-parse.cc"
4877 #line 1393 "parse-tree/oct-parse.yy"
4879 (yyvsp[-2].tree_parameter_list_type)->append (
new tree_decl_elt ((yyvsp[0].tree_identifier_type)));
4880 (yyval.tree_parameter_list_type) = (yyvsp[-2].tree_parameter_list_type);
4882 #line 4883 "parse-tree/oct-parse.cc"
4886 #line 1404 "parse-tree/oct-parse.yy"
4888 YYUSE ((yyvsp[-2].punct_type));
4890 if (
lexer.reading_fcn_file)
4898 delete (yyvsp[-1].tree_statement_list_type);
4903 = parser.
make_end (
"endscript",
true,
4904 lexer.input_line_number,
4905 lexer.current_input_column);
4907 parser.
make_script ((yyvsp[-1].tree_statement_list_type), end_of_script);
4910 (yyval.tree_command_type) = 0;
4912 #line 4913 "parse-tree/oct-parse.cc"
4916 #line 1430 "parse-tree/oct-parse.yy"
4918 YYUSE ((yyvsp[-3].punct_type));
4919 YYUSE ((yyvsp[-1].punct_type));
4921 if (
lexer.reading_classdef_file)
4924 (yyval.tree_command_type) = 0;
4926 #line 4927 "parse-tree/oct-parse.cc"
4930 #line 1446 "parse-tree/oct-parse.yy"
4932 (yyval.tok_val) = (yyvsp[0].tok_val);
4933 if (
lexer.reading_classdef_file
4934 ||
lexer.parsing_classdef)
4935 lexer.maybe_classdef_get_set_method =
true;
4937 #line 4938 "parse-tree/oct-parse.cc"
4941 #line 1455 "parse-tree/oct-parse.yy"
4943 (yyval.tree_function_def_type) = parser.
finish_function (0, (yyvsp[0].octave_user_function_type), (yyvsp[-1].comment_type), (yyvsp[-2].tok_val)->line (),
4944 (yyvsp[-2].tok_val)->column ());
4947 #line 4948 "parse-tree/oct-parse.cc"
4951 #line 1461 "parse-tree/oct-parse.yy"
4953 YYUSE ((yyvsp[-1].tok_val));
4955 (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 (),
4956 (yyvsp[-4].tok_val)->column ());
4959 #line 4960 "parse-tree/oct-parse.cc"
4963 #line 1471 "parse-tree/oct-parse.yy"
4965 std::string id_name = (yyvsp[0].tree_identifier_type)->name ();
4967 lexer.parsed_function_name.top () =
true;
4968 lexer.maybe_classdef_get_set_method =
false;
4970 (yyval.tree_identifier_type) = (yyvsp[0].tree_identifier_type);
4972 #line 4973 "parse-tree/oct-parse.cc"
4976 #line 1480 "parse-tree/oct-parse.yy"
4978 YYUSE ((yyvsp[-2].tok_val));
4980 lexer.parsed_function_name.top () =
true;
4981 lexer.maybe_classdef_get_set_method =
false;
4982 lexer.parsing_classdef_get_method =
true;
4983 (yyval.tree_identifier_type) = (yyvsp[0].tree_identifier_type);
4985 #line 4986 "parse-tree/oct-parse.cc"
4989 #line 1489 "parse-tree/oct-parse.yy"
4991 YYUSE ((yyvsp[-2].tok_val));
4993 lexer.parsed_function_name.top () =
true;
4994 lexer.maybe_classdef_get_set_method =
false;
4995 lexer.parsing_classdef_set_method =
true;
4996 (yyval.tree_identifier_type) = (yyvsp[0].tree_identifier_type);
4998 #line 4999 "parse-tree/oct-parse.cc"
5002 #line 1500 "parse-tree/oct-parse.yy"
5004 std::string fname = (yyvsp[-1].tree_identifier_type)->name ();
5006 delete (yyvsp[-1].tree_identifier_type);
5008 if (
lexer.parsing_classdef_get_method)
5009 fname.insert (0,
"get.");
5010 else if (
lexer.parsing_classdef_set_method)
5011 fname.insert (0,
"set.");
5013 lexer.parsing_classdef_get_method =
false;
5014 lexer.parsing_classdef_set_method =
false;
5016 (yyval.octave_user_function_type) = parser.
frob_function (fname, (yyvsp[0].octave_user_function_type));
5018 #line 5019 "parse-tree/oct-parse.cc"
5022 #line 1518 "parse-tree/oct-parse.yy"
5024 YYUSE ((yyvsp[-2].punct_type));
5026 (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));
5028 #line 5029 "parse-tree/oct-parse.cc"
5032 #line 1524 "parse-tree/oct-parse.yy"
5034 YYUSE ((yyvsp[-2].punct_type));
5036 (yyval.octave_user_function_type) = parser.
start_function (0, (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tree_statement_type));
5038 #line 5039 "parse-tree/oct-parse.cc"
5042 #line 1532 "parse-tree/oct-parse.yy"
5046 (yyval.tree_statement_type) = parser.
make_end (
"endfunction",
false,
5047 (yyvsp[0].tok_val)->
line (), (yyvsp[0].tok_val)->column ());
5051 #line 5052 "parse-tree/oct-parse.cc"
5055 #line 1541 "parse-tree/oct-parse.yy"
5066 parser.
bison_error (
"inconsistent function endings -- "
5067 "if one function is explicitly ended, "
5068 "so must all the others");
5072 if (! (
lexer.reading_fcn_file ||
lexer.reading_script_file
5073 ||
lexer.input_from_eval_string ()))
5075 parser.
bison_error (
"function body open at end of input");
5079 if (
lexer.reading_classdef_file)
5081 parser.
bison_error (
"classdef body open at end of input");
5085 (yyval.tree_statement_type) = parser.
make_end (
"endfunction",
true,
5086 lexer.input_line_number,
5087 lexer.current_input_column);
5089 #line 5090 "parse-tree/oct-parse.cc"
5093 #line 1581 "parse-tree/oct-parse.yy"
5095 if (!
lexer.reading_classdef_file)
5097 parser.
bison_error (
"classdef must appear inside a file containing only a class definition");
5101 lexer.parsing_classdef =
true;
5102 (yyval.tok_val) = (yyvsp[0].tok_val);
5104 #line 5105 "parse-tree/oct-parse.cc"
5108 #line 1594 "parse-tree/oct-parse.yy"
5110 YYUSE ((yyvsp[-3].punct_type));
5111 YYUSE ((yyvsp[-1].punct_type));
5113 lexer.parsing_classdef =
false;
5115 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))))
5121 #line 5122 "parse-tree/oct-parse.cc"
5125 #line 1607 "parse-tree/oct-parse.yy"
5127 YYUSE ((yyvsp[-1].punct_type));
5129 lexer.parsing_classdef =
false;
5131 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))))
5137 #line 5138 "parse-tree/oct-parse.cc"
5141 #line 1621 "parse-tree/oct-parse.yy"
5142 { (yyval.tree_classdef_attribute_list_type) = 0; }
5143 #line 5144 "parse-tree/oct-parse.cc"
5147 #line 1623 "parse-tree/oct-parse.yy"
5148 { (yyval.tree_classdef_attribute_list_type) = (yyvsp[-1].tree_classdef_attribute_list_type); }
5149 #line 5150 "parse-tree/oct-parse.cc"
5153 #line 1627 "parse-tree/oct-parse.yy"
5155 #line 5156 "parse-tree/oct-parse.cc"
5159 #line 1629 "parse-tree/oct-parse.yy"
5161 (yyvsp[-2].tree_classdef_attribute_list_type)->append ((yyvsp[0].tree_classdef_attribute_type));
5162 (yyval.tree_classdef_attribute_list_type) = (yyvsp[-2].tree_classdef_attribute_list_type);
5164 #line 5165 "parse-tree/oct-parse.cc"
5168 #line 1636 "parse-tree/oct-parse.yy"
5170 #line 5171 "parse-tree/oct-parse.cc"
5174 #line 1638 "parse-tree/oct-parse.yy"
5176 YYUSE ((yyvsp[-2].tok_val));
5178 lexer.looking_at_initializer_expression =
false;
5179 (yyval.tree_classdef_attribute_type) =
new tree_classdef_attribute ((yyvsp[-3].tree_identifier_type), (yyvsp[0].tree_expression_type));
5181 #line 5182 "parse-tree/oct-parse.cc"
5185 #line 1645 "parse-tree/oct-parse.yy"
5187 YYUSE ((yyvsp[-1].tok_val));
5191 #line 5192 "parse-tree/oct-parse.cc"
5195 #line 1654 "parse-tree/oct-parse.yy"
5196 { (yyval.tree_classdef_superclass_list_type) = 0; }
5197 #line 5198 "parse-tree/oct-parse.cc"
5201 #line 1656 "parse-tree/oct-parse.yy"
5202 { (yyval.tree_classdef_superclass_list_type) = (yyvsp[0].tree_classdef_superclass_list_type); }
5203 #line 5204 "parse-tree/oct-parse.cc"
5207 #line 1660 "parse-tree/oct-parse.yy"
5209 YYUSE ((yyvsp[0].tok_val));
5211 lexer.enable_fq_identifier ();
5213 #line 5214 "parse-tree/oct-parse.cc"
5217 #line 1666 "parse-tree/oct-parse.yy"
5219 #line 5220 "parse-tree/oct-parse.cc"
5223 #line 1668 "parse-tree/oct-parse.yy"
5225 YYUSE ((yyvsp[0].tok_val));
5227 lexer.enable_fq_identifier ();
5229 #line 5230 "parse-tree/oct-parse.cc"
5233 #line 1674 "parse-tree/oct-parse.yy"
5235 (yyvsp[-3].tree_classdef_superclass_list_type)->append ((yyvsp[0].tree_classdef_superclass_type));
5236 (yyval.tree_classdef_superclass_list_type) = (yyvsp[-3].tree_classdef_superclass_list_type);
5238 #line 5239 "parse-tree/oct-parse.cc"
5242 #line 1681 "parse-tree/oct-parse.yy"
5244 #line 5245 "parse-tree/oct-parse.cc"
5248 #line 1685 "parse-tree/oct-parse.yy"
5249 { (yyval.tree_classdef_body_type) =
new tree_classdef_body ((yyvsp[0].tree_classdef_properties_block_type)); }
5250 #line 5251 "parse-tree/oct-parse.cc"
5254 #line 1687 "parse-tree/oct-parse.yy"
5255 { (yyval.tree_classdef_body_type) =
new tree_classdef_body ((yyvsp[0].tree_classdef_methods_block_type)); }
5256 #line 5257 "parse-tree/oct-parse.cc"
5260 #line 1689 "parse-tree/oct-parse.yy"
5261 { (yyval.tree_classdef_body_type) =
new tree_classdef_body ((yyvsp[0].tree_classdef_events_block_type)); }
5262 #line 5263 "parse-tree/oct-parse.cc"
5266 #line 1691 "parse-tree/oct-parse.yy"
5267 { (yyval.tree_classdef_body_type) =
new tree_classdef_body ((yyvsp[0].tree_classdef_enum_block_type)); }
5268 #line 5269 "parse-tree/oct-parse.cc"
5272 #line 1693 "parse-tree/oct-parse.yy"
5274 YYUSE ((yyvsp[-1].punct_type));
5276 (yyvsp[-2].tree_classdef_body_type)->append ((yyvsp[0].tree_classdef_properties_block_type));
5277 (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5279 #line 5280 "parse-tree/oct-parse.cc"
5283 #line 1700 "parse-tree/oct-parse.yy"
5285 YYUSE ((yyvsp[-1].punct_type));
5287 (yyvsp[-2].tree_classdef_body_type)->append ((yyvsp[0].tree_classdef_methods_block_type));
5288 (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5290 #line 5291 "parse-tree/oct-parse.cc"
5294 #line 1707 "parse-tree/oct-parse.yy"
5296 YYUSE ((yyvsp[-1].punct_type));
5298 (yyvsp[-2].tree_classdef_body_type)->append ((yyvsp[0].tree_classdef_events_block_type));
5299 (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5301 #line 5302 "parse-tree/oct-parse.cc"
5305 #line 1714 "parse-tree/oct-parse.yy"
5307 YYUSE ((yyvsp[-1].punct_type));
5309 (yyvsp[-2].tree_classdef_body_type)->append ((yyvsp[0].tree_classdef_enum_block_type));
5310 (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5312 #line 5313 "parse-tree/oct-parse.cc"
5316 #line 1724 "parse-tree/oct-parse.yy"
5318 YYUSE ((yyvsp[-3].punct_type));
5319 YYUSE ((yyvsp[-1].punct_type));
5322 ((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))))
5328 #line 5329 "parse-tree/oct-parse.cc"
5332 #line 1736 "parse-tree/oct-parse.yy"
5334 YYUSE ((yyvsp[-1].punct_type));
5337 ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5343 #line 5344 "parse-tree/oct-parse.cc"
5347 #line 1750 "parse-tree/oct-parse.yy"
5349 #line 5350 "parse-tree/oct-parse.cc"
5353 #line 1752 "parse-tree/oct-parse.yy"
5355 YYUSE ((yyvsp[-1].punct_type));
5357 (yyvsp[-2].tree_classdef_property_list_type)->append ((yyvsp[0].tree_classdef_property_type));
5358 (yyval.tree_classdef_property_list_type) = (yyvsp[-2].tree_classdef_property_list_type);
5360 #line 5361 "parse-tree/oct-parse.cc"
5364 #line 1761 "parse-tree/oct-parse.yy"
5366 #line 5367 "parse-tree/oct-parse.cc"
5370 #line 1763 "parse-tree/oct-parse.yy"
5372 YYUSE ((yyvsp[-3].tok_val));
5374 lexer.looking_at_initializer_expression =
false;
5375 (yyval.tree_classdef_property_type) =
new tree_classdef_property ((yyvsp[-4].tree_identifier_type), (yyvsp[-1].tree_expression_type));
5377 #line 5378 "parse-tree/oct-parse.cc"
5381 #line 1772 "parse-tree/oct-parse.yy"
5383 YYUSE ((yyvsp[-3].punct_type));
5384 YYUSE ((yyvsp[-1].punct_type));
5387 ((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))))
5393 #line 5394 "parse-tree/oct-parse.cc"
5397 #line 1784 "parse-tree/oct-parse.yy"
5399 YYUSE ((yyvsp[-1].punct_type));
5402 ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5408 #line 5409 "parse-tree/oct-parse.cc"
5412 #line 1798 "parse-tree/oct-parse.yy"
5417 #line 5418 "parse-tree/oct-parse.cc"
5421 #line 1803 "parse-tree/oct-parse.yy"
5423 if (! ((yyval.octave_user_function_type) = parser.
start_classdef_external_method ((yyvsp[-1].tree_identifier_type), (yyvsp[0].tree_parameter_list_type))))
5426 #line 5427 "parse-tree/oct-parse.cc"
5430 #line 1810 "parse-tree/oct-parse.yy"
5432 #line 5433 "parse-tree/oct-parse.cc"
5436 #line 1812 "parse-tree/oct-parse.yy"
5438 YYUSE ((yyvsp[0].tok_val));
5440 lexer.defining_func++;
5441 lexer.parsed_function_name.push (
false);
5443 #line 5444 "parse-tree/oct-parse.cc"
5447 #line 1819 "parse-tree/oct-parse.yy"
5449 lexer.defining_func--;
5450 lexer.parsed_function_name.pop ();
5451 (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));
5453 #line 5454 "parse-tree/oct-parse.cc"
5457 #line 1827 "parse-tree/oct-parse.yy"
5458 { (yyval.tree_function_def_type) = (yyvsp[0].tree_function_def_type); }
5459 #line 5460 "parse-tree/oct-parse.cc"
5463 #line 1829 "parse-tree/oct-parse.yy"
5464 { (yyval.tree_function_def_type) = (yyvsp[0].tree_function_def_type); }
5465 #line 5466 "parse-tree/oct-parse.cc"
5469 #line 1833 "parse-tree/oct-parse.yy"
5472 if ((yyvsp[0].tree_function_def_type))
5473 fcn = (yyvsp[0].tree_function_def_type)->function ();
5474 delete (yyvsp[0].tree_function_def_type);
5477 #line 5478 "parse-tree/oct-parse.cc"
5481 #line 1841 "parse-tree/oct-parse.yy"
5483 YYUSE ((yyvsp[-1].punct_type));
5486 if ((yyvsp[0].tree_function_def_type))
5487 fcn = (yyvsp[0].tree_function_def_type)->
function ();
5488 delete (yyvsp[0].tree_function_def_type);
5490 (yyvsp[-2].tree_classdef_methods_list_type)->append (fcn);
5491 (yyval.tree_classdef_methods_list_type) = (yyvsp[-2].tree_classdef_methods_list_type);
5493 #line 5494 "parse-tree/oct-parse.cc"
5497 #line 1855 "parse-tree/oct-parse.yy"
5499 YYUSE ((yyvsp[-3].punct_type));
5500 YYUSE ((yyvsp[-1].punct_type));
5503 ((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))))
5509 #line 5510 "parse-tree/oct-parse.cc"
5513 #line 1867 "parse-tree/oct-parse.yy"
5515 YYUSE ((yyvsp[-1].punct_type));
5518 ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5524 #line 5525 "parse-tree/oct-parse.cc"
5528 #line 1880 "parse-tree/oct-parse.yy"
5530 #line 5531 "parse-tree/oct-parse.cc"
5534 #line 1882 "parse-tree/oct-parse.yy"
5536 YYUSE ((yyvsp[-1].punct_type));
5538 (yyvsp[-2].tree_classdef_events_list_type)->append ((yyvsp[0].tree_classdef_event_type));
5539 (yyval.tree_classdef_events_list_type) = (yyvsp[-2].tree_classdef_events_list_type);
5541 #line 5542 "parse-tree/oct-parse.cc"
5545 #line 1891 "parse-tree/oct-parse.yy"
5546 { (yyval.tree_classdef_event_type) =
new tree_classdef_event ((yyvsp[0].tree_identifier_type)); }
5547 #line 5548 "parse-tree/oct-parse.cc"
5551 #line 1895 "parse-tree/oct-parse.yy"
5553 YYUSE ((yyvsp[-3].punct_type));
5554 YYUSE ((yyvsp[-1].punct_type));
5557 ((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))))
5563 #line 5564 "parse-tree/oct-parse.cc"
5567 #line 1907 "parse-tree/oct-parse.yy"
5569 YYUSE ((yyvsp[-1].punct_type));
5572 ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5578 #line 5579 "parse-tree/oct-parse.cc"
5582 #line 1920 "parse-tree/oct-parse.yy"
5584 #line 5585 "parse-tree/oct-parse.cc"
5588 #line 1922 "parse-tree/oct-parse.yy"
5590 YYUSE ((yyvsp[-1].punct_type));
5592 (yyvsp[-2].tree_classdef_enum_list_type)->append ((yyvsp[0].tree_classdef_enum_type));
5593 (yyval.tree_classdef_enum_list_type) = (yyvsp[-2].tree_classdef_enum_list_type);
5595 #line 5596 "parse-tree/oct-parse.cc"
5599 #line 1931 "parse-tree/oct-parse.yy"
5600 { (yyval.tree_classdef_enum_type) =
new tree_classdef_enum ((yyvsp[-3].tree_identifier_type), (yyvsp[-1].tree_expression_type)); }
5601 #line 5602 "parse-tree/oct-parse.cc"
5605 #line 1939 "parse-tree/oct-parse.yy"
5607 (yyval.dummy_type) = 0;
5608 lexer.at_beginning_of_statement =
true;
5610 #line 5611 "parse-tree/oct-parse.cc"
5614 #line 1946 "parse-tree/oct-parse.yy"
5615 { (yyval.comment_type) =
lexer.get_comment (); }
5616 #line 5617 "parse-tree/oct-parse.cc"
5620 #line 1950 "parse-tree/oct-parse.yy"
5622 (yyval.dummy_type) = 0;
5625 #line 5626 "parse-tree/oct-parse.cc"
5629 #line 1955 "parse-tree/oct-parse.yy"
5630 { (yyval.dummy_type) = 0; }
5631 #line 5632 "parse-tree/oct-parse.cc"
5635 #line 1959 "parse-tree/oct-parse.yy"
5636 { (yyval.punct_type) =
','; }
5637 #line 5638 "parse-tree/oct-parse.cc"
5641 #line 1961 "parse-tree/oct-parse.yy"
5642 { (yyval.punct_type) =
';'; }
5643 #line 5644 "parse-tree/oct-parse.cc"
5647 #line 1963 "parse-tree/oct-parse.yy"
5648 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5649 #line 5650 "parse-tree/oct-parse.cc"
5653 #line 1965 "parse-tree/oct-parse.yy"
5654 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5655 #line 5656 "parse-tree/oct-parse.cc"
5659 #line 1969 "parse-tree/oct-parse.yy"
5660 { (yyval.punct_type) = 0; }
5661 #line 5662 "parse-tree/oct-parse.cc"
5665 #line 1971 "parse-tree/oct-parse.yy"
5666 { (yyval.punct_type) = (yyvsp[0].punct_type); }
5667 #line 5668 "parse-tree/oct-parse.cc"
5671 #line 1975 "parse-tree/oct-parse.yy"
5672 { (yyval.punct_type) = 0; }
5673 #line 5674 "parse-tree/oct-parse.cc"
5677 #line 1977 "parse-tree/oct-parse.yy"
5678 { (yyval.punct_type) = (yyvsp[0].punct_type); }
5679 #line 5680 "parse-tree/oct-parse.cc"
5683 #line 1981 "parse-tree/oct-parse.yy"
5684 { (yyval.punct_type) =
'\n'; }
5685 #line 5686 "parse-tree/oct-parse.cc"
5689 #line 1983 "parse-tree/oct-parse.yy"
5690 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5691 #line 5692 "parse-tree/oct-parse.cc"
5695 #line 1987 "parse-tree/oct-parse.yy"
5696 { (yyval.punct_type) =
','; }
5697 #line 5698 "parse-tree/oct-parse.cc"
5701 #line 1989 "parse-tree/oct-parse.yy"
5702 { (yyval.punct_type) =
';'; }
5703 #line 5704 "parse-tree/oct-parse.cc"
5707 #line 1991 "parse-tree/oct-parse.yy"
5708 { (yyval.punct_type) =
'\n'; }
5709 #line 5710 "parse-tree/oct-parse.cc"
5713 #line 1993 "parse-tree/oct-parse.yy"
5714 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5715 #line 5716 "parse-tree/oct-parse.cc"
5719 #line 1995 "parse-tree/oct-parse.yy"
5720 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5721 #line 5722 "parse-tree/oct-parse.cc"
5725 #line 1997 "parse-tree/oct-parse.yy"
5726 { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5727 #line 5728 "parse-tree/oct-parse.cc"
5731 #line 2001 "parse-tree/oct-parse.yy"
5732 { (yyval.punct_type) = 0; }
5733 #line 5734 "parse-tree/oct-parse.cc"
5737 #line 2003 "parse-tree/oct-parse.yy"
5738 { (yyval.punct_type) = (yyvsp[0].punct_type); }
5739 #line 5740 "parse-tree/oct-parse.cc"
5743 #line 5744 "parse-tree/oct-parse.cc"
5792 #if ! YYERROR_VERBOSE
5795 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
5798 char const *yymsgp =
YY_(
"syntax error");
5799 int yysyntax_error_status;
5800 yysyntax_error_status = YYSYNTAX_ERROR;
5801 if (yysyntax_error_status == 0)
5803 else if (yysyntax_error_status == 1)
5805 if (yymsg != yymsgbuf)
5811 yymsg_alloc =
sizeof yymsgbuf;
5812 yysyntax_error_status = 2;
5816 yysyntax_error_status = YYSYNTAX_ERROR;
5821 if (yysyntax_error_status == 2)
5822 goto yyexhaustedlab;
5824 # undef YYSYNTAX_ERROR
5835 if (yychar <=
YYEOF)
5838 if (yychar ==
YYEOF)
5844 yytoken, &
yylval, parser);
5932 #if !defined yyoverflow || YYERROR_VERBOSE
5949 yytoken, &
yylval, parser);
5955 while (yyssp !=
yyss)
5958 yystos[*yyssp], yyvsp, parser);
5969 if (yymsg != yymsgbuf)
5974 #line 2006 "parse-tree/oct-parse.yy"
6022 static const char *fmt
6023 =
"'%s' command matched by '%s' near line %d column %d";
6028 error (fmt, type,
"end", l, c);
6032 error (fmt, type,
"endclassdef", l, c);
6036 error (fmt, type,
"endenumeration", l, c);
6040 error (fmt, type,
"endevents", l, c);
6044 error (fmt, type,
"endfor", l, c);
6048 error (fmt, type,
"endfunction", l, c);
6052 error (fmt, type,
"endif", l, c);
6056 error (fmt, type,
"endmethods", l, c);
6060 error (fmt, type,
"endparfor", l, c);
6064 error (fmt, type,
"endproperties", l, c);
6068 error (fmt, type,
"endswitch", l, c);
6072 error (fmt, type,
"end_try_catch", l, c);
6076 error (fmt, type,
"end_unwind_protect", l, c);
6080 error (fmt, type,
"endwhile", l, c);
6104 int l = tok->
line ();
6114 end_error (
"enumeration", ettype, l, c);
6154 end_error (
"unwind_protect", ettype, l, c);
6181 (
"Octave:assign-as-truth-value",
6182 "suggest parenthesis around assignment used as truth value");
6185 (
"Octave:assign-as-truth-value",
6186 "suggest parenthesis around assignment used as truth value near line %d, column %d in file '%s'",
6200 "variable switch label");
6203 (
"Octave:variable-switch-label",
6204 "variable switch label near line %d, column %d in file '%s'",
6245 std::ostringstream buf;
6276 int l = tok_val->
line ();
6277 int c = tok_val->
column ();
6287 retval->stash_original_text (tok_val->
text_rep ());
6302 std::string txt = tok_val->
text ();
6304 char delim = op ==
DQ_STRING ?
'"' :
'\'';
6339 int l = tok_val->
line ();
6340 int c = tok_val->
column ();
6473 int l = tok_val->
line ();
6474 int c = tok_val->
column ();
6502 int l = tok_val->
line ();
6503 int c = tok_val->
column ();
6543 int l = tok_val->
line ();
6544 int c = tok_val->
column ();
6580 int l = tok_val->
line ();
6581 int c = tok_val->
column ();
6602 int l = unwind_tok->
line ();
6603 int c = unwind_tok->
column ();
6611 delete cleanup_stmts;
6634 int l = try_tok->
line ();
6635 int c = try_tok->
column ();
6639 if (! catch_sep && cleanup_stmts && ! cleanup_stmts->
empty ())
6665 delete cleanup_stmts;
6690 int l = while_tok->
line ();
6691 int c = while_tok->
column ();
6718 int l = until_tok->
line ();
6719 int c = until_tok->
column ();
6737 bool parfor = tok_id ==
PARFOR;
6747 int l = for_tok->
line ();
6748 int c = for_tok->
column ();
6755 body, lc, tc, l, c);
6762 bison_error (
"invalid syntax for parfor statement");
6784 int l = break_tok->
line ();
6785 int c = break_tok->
column ();
6795 int l = continue_tok->
line ();
6796 int c = continue_tok->
column ();
6806 int l = return_tok->
line ();
6807 int c = return_tok->
column ();
6839 int l = if_tok->
line ();
6840 int c = if_tok->
column ();
6842 if (list && ! list->
empty ())
6871 int l = elseif_tok->
line ();
6872 int c = elseif_tok->
column ();
6892 int l = switch_tok->
line ();
6893 int c = switch_tok->
column ();
6895 if (list && ! list->
empty ())
6927 int l = case_tok->
line ();
6928 int c = case_tok->
column ();
7010 int l = eq_tok->
line ();
7011 int c = eq_tok->
column ();
7024 bison_error (
"computed multiple assignment not allowed");
7038 cmds->
append (end_script);
7066 body->
append (end_fcn_stmt);
7070 param_list, 0, body);
7078 end_fcn_stmt->
column ());
7096 std::string id_name = fname;
7113 if (pos != std::string::npos)
7119 (
"Octave:function-name-clash",
7120 "function name '%s' does not agree with function file name '%s'",
7164 "time stamp for '%s' is in the future", nm.c_str ());
7171 warning (
"function '%s' defined within script file '%s'",
7205 std::string nm = fcn->
name ();
7208 std::string tmp = nm;
7209 if (! file.empty ())
7281 const std::string& class_nm)
7286 args(0) = method_nm;
7323 std::string cls_name =
id->name ();
7329 if (pos != std::string::npos)
7333 bison_error (
"invalid classdef definition, the class name must match the file name");
7338 int l = tok_val->
line ();
7339 int c = tok_val->
column ();
7372 int l = tok_val->
line ();
7373 int c = tok_val->
column ();
7402 int l = tok_val->
line ();
7403 int c = tok_val->
column ();
7432 int l = tok_val->
line ();
7433 int c = tok_val->
column ();
7462 int l = tok_val->
line ();
7463 int c = tok_val->
column ();
7491 std::string mname =
id->
name ();
7498 if (mname.find_first_of (
".") == std::string::npos
7499 && mname !=
"delete"
7509 int l =
id->line ();
7510 int c =
id->column ();
7515 bison_error (
"invalid external method declaration, an external "
7516 "method cannot be the class constructor, `delete' "
7517 "or have a dot (.) character in its name");
7520 bison_error (
"external methods are only allowed in @-folders");
7556 bison_error (
"invalid use of empty argument (~) in index expression");
7564 int l = expr->
line ();
7574 tmp->
append (args, type);
7588 const std::string& elt)
7592 int l = expr->
line ();
7622 int l = expr->
line ();
7652 int l = tok_val->
line ();
7653 int c = tok_val->
column ();
7667 warning (
"ignoring persistent declaration near line %d of file '%s'",
7670 warning (
"ignoring persistent declaration near line %d", l);
7697 bison_error (
"invalid use of tilde (~) in matrix expression");
7699 bison_error (
"invalid use of tilde (~) in cell expression");
7717 bison_error (
"invalid empty left hand side of assignment");
7719 bison_error (
"invalid constant left hand side of assignment");
7725 bool is_simple_assign =
true;
7733 if (mat && mat->
size () == 1)
7735 tmp = mat->
front ();
7738 is_simple_assign =
false;
7751 bison_error (
"invalid left hand side of assignment");
7755 if (retval && is_simple_assign)
7790 std::ostringstream buf;
7794 array_list->
accept (tpc);
7836 (
"Octave:missing-semicolon",
7837 "missing semicolon near line %d, column %d in file '%s'",
7844 char sep,
bool warn_missing_semi)
7858 if (warn_missing_semi)
7863 warning (
"unrecognized separator type!");
7898 bool warn_missing_semi)
7912 std::ostringstream output_buf;
7918 output_buf <<
"parse error:";
7920 if (s && strcmp (s,
"parse error") != 0)
7921 output_buf <<
"\n\n " << s;
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++)
7949 std::string msg = output_buf.str ();
8009 fclose (static_cast<FILE *> (f));
8014 const std::string& dispatch_type,
8015 const std::string& package_name,
8016 bool require_file,
bool force_script,
bool autoload,
8017 bool relative_lookup,
const std::string& warn_for)
8036 if (! full_file.empty ())
8037 ffile = gnulib::fopen (full_file.c_str (),
"rb");
8060 int status = parser.
run ();
8076 bool is_at_folder = ! dispatch_type.empty ();
8095 error (
"parse error while reading file %s", full_file.c_str ());
8097 else if (require_file)
8098 error (
"no such file, '%s'", full_file.c_str ());
8099 else if (! warn_for.empty ())
8100 error (
"%s: unable to open file '%s'", warn_for.c_str (),
8101 full_file.c_str ());
8108 std::string& full_file)
8114 std::string file = full_file;
8116 size_t file_len = file.length ();
8118 if ((file_len > 4 && file.substr (file_len-4) ==
".oct")
8119 || (file_len > 4 && file.substr (file_len-4) ==
".mex")
8120 || (file_len > 2 && file.substr (file_len-2) ==
".m"))
8123 file = file.substr (0, file.find_last_of (
'.'));
8126 if (pos != std::string::npos)
8127 file = file.substr (pos+1);
8130 if (! file.empty ())
8132 symbol_found =
true;
8135 =
parse_fcn_file (full_file, file,
"",
"",
true,
false,
false,
false,
8161 typedef std::map<std::string, std::string>::const_iterator am_iter;
8163 am_iter p = autoload_map.find (nm);
8165 if (p != autoload_map.end ())
8177 typedef std::map<std::string, std::string>::const_iterator am_iter;
8178 for (am_iter p = autoload_map.begin (); p != autoload_map.end (); p++)
8179 names[i++] = p->first;
8189 typedef std::map<std::string, std::string>::const_iterator am_iter;
8190 for (am_iter p = autoload_map.begin (); p != autoload_map.end (); p++)
8191 if (nm == p->second)
8199 const std::string& dispatch_type,
8200 const std::string& package_name,
8201 const std::string& fcn_name,
bool autoload)
8207 std::string nm = file_name;
8209 size_t nm_len = nm.length ();
8213 bool relative_lookup =
false;
8217 if ((nm_len > 4 && nm.substr (nm_len-4) ==
".oct")
8218 || (nm_len > 4 && nm.substr (nm_len-4) ==
".mex")
8219 || (nm_len > 2 && nm.substr (nm_len-2) ==
".m"))
8222 nm = nm.substr (0, nm.find_last_of (
'.'));
8225 if (pos != std::string::npos)
8226 nm = nm.substr (pos+1);
8233 int len = file.length ();
8235 if (len > 4 && file.substr (len-4, len-1) ==
".oct")
8237 if (autoload && ! fcn_name.empty ())
8242 else if (len > 4 && file.substr (len-4, len-1) ==
".mex")
8249 package_name,
false,
8251 relative_lookup,
"");
8261 retval =
parse_fcn_file (file, nm, dispatch_type, package_name,
true,
8262 autoload, autoload, relative_lookup,
"");
8281 DEFUN (autoload, args, ,
8283 @deftypefn {Built-in Function} {@var{autoload_map} =} autoload ()\n\
8284 @deftypefnx {Built-in Function} {} autoload (@var{function}, @var{file})\n\
8285 @deftypefnx {Built-in Function} {} autoload (@dots{}, \"remove\")\n\
8286 Define @var{function} to autoload from @var{file}.\n\
8288 The second argument, @var{file}, should be an absolute file name or a file\n\
8289 name in the same directory as the function or script from which the autoload\n\
8290 command was run. @var{file} @emph{should not} depend on the Octave load\n\
8293 Normally, calls to @code{autoload} appear in PKG_ADD script files that are\n\
8294 evaluated when a directory is added to Octave's load path. To avoid having\n\
8295 to hardcode directory names in @var{file}, if @var{file} is in the same\n\
8296 directory as the PKG_ADD script then\n\
8299 autoload (\"foo\", \"bar.oct\");\n\
8303 will load the function @code{foo} from the file @code{bar.oct}. The above\n\
8304 usage when @code{bar.oct} is not in the same directory, or usages such as\n\
8307 autoload (\"foo\", file_in_loadpath (\"bar.oct\"))\n\
8311 are strongly discouraged, as their behavior may be unpredictable.\n\
8313 With no arguments, return a structure containing the current autoload map.\n\
8315 If a third argument @qcode{\"remove\"} is given, the function is cleared and\n\
8316 not loaded anymore during the current Octave session.\n\
8318 @seealso{PKG_ADD}\n\
8323 int nargin = args.
length ();
8331 typedef std::map<std::string, std::string>::const_iterator am_iter;
8332 for (am_iter p = autoload_map.begin (); p != autoload_map.end (); p++)
8334 func_names(i) = p->first;
8335 file_names(i) = p->second;
8342 m.
assign (
"function", func_names);
8343 m.
assign (
"file", file_names);
8347 else if (nargin == 2 || nargin == 3)
8353 std::string nm = argv[2];
8365 if (! fname.empty ())
8381 "autoload: '%s' is not an absolute file name",
8385 autoload_map[argv[1]] = nm;
8386 else if (nargin == 3)
8388 if (argv[3].compare (
"remove") != 0)
8390 "autoload: third argument can only be 'remove'");
8394 autoload_map.erase (argv[1]);
8406 bool verbose,
bool require_file,
const std::string& warn_for)
8441 static std::map<std::string, int> source_call_depth;
8449 if (source_call_depth.find (file_full_name) == source_call_depth.end ())
8450 source_call_depth[file_full_name] = -1;
8452 frame.
protect_var (source_call_depth[file_full_name]);
8454 source_call_depth[file_full_name]++;
8458 error (
"max_recursion_depth exceeded");
8462 if (! context.empty ())
8464 if (context ==
"caller")
8466 else if (context ==
"base")
8469 error (
"source: context must be \"caller\" or \"base\"");
8478 "",
"", require_file,
true,
8479 false,
false, warn_for);
8489 std::cout <<
"executing commands from " << file_full_name <<
" ... ";
8497 std::cout <<
"done." << std::endl;
8503 error (
"source: error sourcing file '%s'",
8504 file_full_name.c_str ());
8508 DEFUN (mfilename, args, ,
8510 @deftypefn {Built-in Function} {} mfilename ()\n\
8511 @deftypefnx {Built-in Function} {} mfilename (\"fullpath\")\n\
8512 @deftypefnx {Built-in Function} {} mfilename (\"fullpathext\")\n\
8513 Return the name of the currently executing file.\n\
8515 When called from outside an m-file return the empty string.\n\
8517 Given the argument @qcode{\"fullpath\"}, include the directory part of the\n\
8518 file name, but not the extension.\n\
8520 Given the argument @qcode{\"fullpathext\"}, include the directory part of\n\
8521 the file name and the extension.\n\
8526 int nargin = args.
length ();
8538 arg = args(0).string_value ();
8542 error (
"mfilename: expecting argument to be a character string");
8556 fname = fcn->
name ();
8559 if (arg ==
"fullpathext")
8564 size_t epos = fname.rfind (
'.');
8567 epos = std::string::npos;
8569 fname = (epos != std::string::npos) ? fname.substr (0, epos) : fname;
8571 if (arg ==
"fullpath")
8574 retval = (dpos != std::string::npos) ? fname.substr (dpos+1) : fname;
8580 DEFUN (source, args, ,
8582 @deftypefn {Built-in Function} {} source (@var{file})\n\
8583 Parse and execute the contents of @var{file}.\n\
8585 This is equivalent to executing commands from a script file, but without\n\
8586 requiring the file to be named @file{@var{file}.m}.\n\
8592 int nargin = args.
length ();
8594 if (nargin == 1 || nargin == 2)
8596 std::string file_name = args(0).string_value ();
8603 context = args(1).string_value ();
8608 error (
"source: expecting context to be character string");
8611 error (
"source: expecting file name as argument");
8637 error (
"feval: function '%s' not found", name.c_str ());
8672 int nargin = args.
length ();
8686 retval =
feval (name, tmp_args, nargout);
8698 error (
"feval: first argument must be a string, inline function or a function handle");
8706 @deftypefn {Built-in Function} {} feval (@var{name}, @dots{})\n\
8707 Evaluate the function named @var{name}.\n\
8709 Any arguments after the first are passed as inputs to the named function.\n\
8714 feval (\"acos\", -1)\n\
8720 calls the function @code{acos} with the argument @samp{-1}.\n\
8722 The function @code{feval} can also be used with function handles of any sort\n\
8723 (@pxref{Function Handles}). Historically, @code{feval} was the only way to\n\
8724 call user-supplied functions in strings, but function handles are now\n\
8725 preferred due to the cleaner syntax they offer. For example,\n\
8730 feval (@var{f}, 1)\n\
8738 are equivalent ways to call the function referred to by @var{f}. If it\n\
8739 cannot be predicted beforehand whether @var{f} is a function handle,\n\
8740 function name in a string, or inline function then @code{feval} can be used\n\
8746 int nargin = args.
length ();
8749 retval =
feval (args, nargout);
8756 DEFUN (builtin, args, nargout,
8758 @deftypefn {Built-in Function} {[@dots{}] =} builtin (@var{f}, @dots{})\n\
8759 Call the base function @var{f} even if @var{f} is overloaded to another\n\
8760 function for the given type signature.\n\
8762 This is normally useful when doing object-oriented programming and there is\n\
8763 a requirement to call one of Octave's base functions rather than the\n\
8764 overloaded one of a new class.\n\
8766 A trivial example which redefines the @code{sin} function to be the\n\
8767 @code{cos} function shows how @code{builtin} works.\n\
8773 function y = sin (x), y = cos (x); endfunction\n\
8776 builtin (\"sin\", 0)\n\
8784 int nargin = args.
length ();
8788 const std::string name (args(0).string_value ());
8798 error (
"builtin: lookup for symbol '%s' failed", name.c_str ());
8801 error (
"builtin: function name (F) must be a string");
8811 int& parse_status,
int nargout)
8821 parse_status = parser.
run ();
8823 if (parse_status == 0)
8838 bool do_bind_ans =
false;
8845 do_bind_ans = (!
id->is_variable ());
8850 retval = expr->
rvalue (nargout);
8858 else if (nargout == 0)
8861 error (
"eval: invalid use of statement list");
8873 while (parse_status == 0);
8879 eval_string (
const std::string& eval_str,
bool silent,
int& parse_status)
8899 error (
"eval: expecting std::string argument");
8903 return eval_string (s, silent, parse_status, nargout);
8916 DEFUN (eval, args, nargout,
8918 @deftypefn {Built-in Function} {} eval (@var{try})\n\
8919 @deftypefnx {Built-in Function} {} eval (@var{try}, @var{catch})\n\
8920 Parse the string @var{try} and evaluate it as if it were an Octave\n\
8923 If execution fails, evaluate the optional string @var{catch}.\n\
8925 The string @var{try} is evaluated in the current context, so any results\n\
8926 remain available after @code{eval} returns.\n\
8928 The following example creates the variable @var{A} with the approximate\n\
8929 value of 3.1416 in the current workspace.\n\
8932 eval (\"A = acos(-1);\");\n\
8935 If an error occurs during the evaluation of @var{try} then the @var{catch}\n\
8936 string is evaluated, as the following example shows:\n\
8940 eval ('error (\"This is a bad example\");',\n\
8941 'printf (\"This error occurred:\\n%s\\n\", lasterr ());');\n\
8942 @print{} This error occurred:\n\
8943 This is a bad example\n\
8947 Programming Note: if you are only using @code{eval} as an error-capturing\n\
8948 mechanism, rather than for the execution of arbitrary code strings,\n\
8949 Consider using try/catch blocks or unwind_protect/unwind_protect_cleanup\n\
8950 blocks instead. These techniques have higher performance and don't introduce\n\
8951 the security considerations that the evaluation of arbitrary code does.\n\
8957 int nargin = args.
length ();
8969 int parse_status = 0;
8972 parse_status, nargout);
8974 if (nargin > 1 && (parse_status != 0 ||
error_state))
8983 tmp =
eval_string (args(1), nargout > 0, parse_status, nargout);
8988 else if (nargout > 0)
9035 DEFUN (assignin, args, ,
9037 @deftypefn {Built-in Function} {} assignin (@var{context}, @var{varname}, @var{value})\n\
9038 Assign @var{value} to @var{varname} in context @var{context}, which\n\
9039 may be either @qcode{\"base\"} or @qcode{\"caller\"}.\n\
9045 int nargin = args.
length ();
9049 std::string
context = args(0).string_value ();
9055 if (context ==
"caller")
9057 else if (context ==
"base")
9060 error (
"assignin: CONTEXT must be \"caller\" or \"base\"");
9066 std::string nm = args(1).string_value ();
9073 error (
"assignin: invalid variable name in argument VARNAME");
9076 error (
"assignin: VARNAME must be a string");
9080 error (
"assignin: CONTEXT must be a string");
9088 DEFUN (evalin, args, nargout,
9090 @deftypefn {Built-in Function} {} evalin (@var{context}, @var{try})\n\
9091 @deftypefnx {Built-in Function} {} evalin (@var{context}, @var{try}, @var{catch})\n\
9092 Like @code{eval}, except that the expressions are evaluated in the context\n\
9093 @var{context}, which may be either @qcode{\"caller\"} or @qcode{\"base\"}.\n\
9094 @seealso{eval, assignin}\n\
9099 int nargin = args.
length ();
9103 std::string
context = args(0).string_value ();
9109 if (context ==
"caller")
9111 else if (context ==
"base")
9114 error (
"evalin: CONTEXT must be \"caller\" or \"base\"");
9126 int parse_status = 0;
9129 parse_status, nargout);
9134 if (nargin > 2 && (parse_status != 0 ||
error_state))
9144 parse_status, nargout);
9151 error (
"evalin: CONTEXT must be a string");
9159 DEFUN (__parser_debug_flag__, args, nargout,
9161 @deftypefn {Built-in Function} {@var{val} =} __parser_debug_flag__ ()\n\
9162 @deftypefnx {Built-in Function} {@var{old_val} =} __parser_debug_flag__ (@var{new_val})\n\
9163 Query or set the internal flag that determines whether Octave's parser prints\n\
9164 debug information as it processes an expression.\n\
9165 @seealso{__lexer_debug_flag__}\n\
9173 "__parser_debug_flag__");
9175 octave_debug = debug_flag;
9180 DEFUN (__parse_file__, args, ,
9182 @deftypefn {Built-in Function} {} __parse_file__ (@var{file}, @var{verbose})\n\
9183 Undocumented internal function.\n\
9188 int nargin = args.
length ();
9190 if (nargin == 1 || nargin == 2)
9192 std::string file = args(0).string_value ();
9196 size_t file_len = file.length ();
9198 if ((file_len > 4 && file.substr (file_len-4) ==
".oct")
9199 || (file_len > 4 && file.substr (file_len-4) ==
".mex")
9200 || (file_len > 2 && file.substr (file_len-2) ==
".m"))
9203 file = file.substr (0, file.find_last_of (
'.'));
9206 if (pos != std::string::npos)
9207 file = file.substr (pos+1);
9217 false,
"__parse_file__");
9223 error (
"__parse_file__: expecting file name as argument");
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)
static FILE * get_input_stream(void)
void stash_trailing_comment(octave_comment_list *tc)
std::list< std::string > subfunction_names
void accept(tree_walker &tw)
tree_argument_list * validate_matrix_for_assignment(tree_expression *e)
void warning_with_id(const char *id, const char *fmt,...)
tree_statement_list * set_stmt_print_flag(tree_statement_list *, char, bool)
static const yytype_int16 yytable[]
static bool ignoring_entries(void)
int beginning_line(void) const
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
tree_decl_command * make_decl_command(int tok, token *tok_val, tree_decl_init_list *lst)
std::string curr_package_name
static void install_subfunction(const std::string &name, const octave_value &fcn, scope_id scope)
size_t length(void) const
octave_user_function * start_classdef_external_method(tree_identifier *id, tree_parameter_list *pl)
void mark_as_variables(const std::list< std::string > &lst)
tree_expression * tree_expression_type
tree_expression * make_boolean_op(int op, tree_expression *op1, token *tok_val, tree_expression *op2)
void maybe_warn_assign_as_truth_value(tree_expression *expr)
std::string text_rep(void)
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
void document(const std::string &ds)
virtual octave_value_list do_multi_index_op(int nargout, const octave_value_list &idx)
tree_classdef_superclass * tree_classdef_superclass_type
tree_if_command_list * tree_if_command_list_type
void maybe_warn_missing_semi(tree_statement_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
symbol_table::scope_id curr_scope(void) const
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)
static const yytype_int16 yypact[]
bool validate(in_or_out type)
octave_value rvalue1(int nargout=1)
bool looking_at_parameter_list
void source_file(const std::string &file_name, const std::string &context, bool verbose, bool require_file, const std::string &warn_for)
unsigned short int yytype_uint16
tree_statement * make_statement(T *arg)
std::string curr_class_name
void octave_pstate_delete(octave_pstate *ps)
#define YY_INITIAL_VALUE(Value)
tree_classdef_property * tree_classdef_property_type
OCTINTERP_API void print_usage(void)
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)
tree_decl_command * tree_decl_command_type
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define YYSTACK_ALLOC_MAXIMUM
tree_funcall * make_meta_class_query(const std::string &class_nm)
tree_colon_expression * tree_colon_expression_type
octave_idx_type length(void) const
void accept(tree_walker &tw)
tree_switch_command * finish_switch_command(token *switch_tok, tree_expression *expr, tree_switch_case_list *list, token *end_tok, octave_comment_list *lc)
OCTAVE_TEX_STYPE yyvs_alloc
octave_user_function * start_function(tree_parameter_list *param_list, tree_statement_list *body, tree_statement *end_function)
octave_comment_list * get_comment(void)
bool is_defined(void) const
static const yytype_uint8 yyr2[]
tree_argument_list * tree_argument_list_type
std::string doc_string(void) const
static std::string find_file(const std::string &file)
static const yytype_uint16 yydefact[]
std::string text(void) const
tree_expression * set_print_flag(bool print)
#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
tree_fcn_handle * make_fcn_handle(token *tok_val)
void stash_fcn_end_location(int line, int col)
std::stack< bool > parsed_function_name
tree_expression * make_prefix_op(int op, tree_expression *op1, token *tok_val)
octave_value_list feval(const std::string &name, const octave_value_list &args, int nargout)
static octave_value find_built_in_function(const std::string &name)
static string_vector names(const map_type &lst)
static scope_id alloc_scope(void)
bool is_newer(const octave_time &time) const
tree_statement_list * append_statement_list(tree_statement_list *list, char sep, tree_statement *stmt, bool warn_missing_semi)
double number(void) const
int run(const std::string &input, bool eof)
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)
tree_index_expression * tree_index_expression_type
tree_classdef_superclass_list * tree_classdef_superclass_list_type
tree_classdef * classdef_object
tree_statement_list * make_statement_list(tree_statement *stmt)
octave_value_list eval_string(const std::string &eval_str, bool silent, int &parse_status, int nargout)
static void clear_dld_function(const std::string &name)
static octave_value_list get_feval_args(const octave_value_list &args)
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)
octave_user_function * frob_function(const std::string &fname, octave_user_function *fcn)
#define YY_REDUCE_PRINT(Rule)
void bind_ans(const octave_value &val, bool print)
tree_matrix * tree_matrix_type
static void stash_dir_name_for_subfunctions(scope_id scope, const std::string &dir_name)
octave_value set_internal_variable(bool &var, const octave_value_list &args, int nargout, const char *nm)
void stash_leading_comment(octave_comment_list *lc)
void end_error(const char *type, token::end_tok_type ettype, int l, int c)
void stash_dir_name(const std::string &dir)
std::string fcn_file_in_path(const std::string &name)
static void goto_caller_frame(void)
static octave_value find_function(const std::string &name, const octave_value_list &args=octave_value_list(), bool local_funcs=true)
tree_expression * make_postfix_op(int op, tree_expression *op1, token *tok_val)
tree_expression * make_binary_op(int op, tree_expression *op1, token *tok_val, tree_expression *op2)
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)
static std::string tilde_expand(const std::string &)
virtual symbol_table::scope_id scope(void)
static const yytype_int16 yydefgoto[]
tree_statement_list * tree_statement_list_type
symbol_table_context symtab_context
tree_expression * increment(void)
This class gets nodes and searchs inside of 'info files'.
static const yytype_uint8 yyr1[]
bool at_end_of_buffer(void) const
void accept(tree_walker &tw)
std::string current_input_line
std::list< std::string > variable_names(void) const
bool is_postfix_indexed(void) const
tree_index_expression * make_indirect_ref(tree_expression *expr, const std::string &)
tree_expression * finish_matrix(tree_matrix *m)
octave_base_lexer * LEXER
void cleanup_statement_list(tree_statement_list **lst)
void bison_error(const char *s)
octave_value_list do_multi_index_op(int nargout, const octave_value_list &idx)
void make_script(tree_statement_list *cmds, tree_statement *end_script)
int octave_lex(OCTAVE_STYPE *, void *)
The main scanner function which does all the work.
~octave_push_parser(void)
tree_if_command * tree_if_command_type
static const yytype_int16 yycheck[]
static const octave_value instance
tree_expression * make_assign_op(int op, tree_argument_list *lhs, token *eq_tok, tree_expression *rhs)
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)
#define yytable_value_is_error(Yytable_value)
tree_classdef_properties_block * tree_classdef_properties_block_type
void append(const elt_type &s)
F77_RET_T const double const double * f
void add_fcn(void(*fcn)(void))
void recover_from_parsing_function(void)
tree_switch_case * make_switch_case(token *case_tok, tree_expression *expr, tree_statement_list *list, octave_comment_list *lc)
static const octave_value instance
bool valid_identifier(const char *s)
tree_funcall * make_superclass_ref(const std::string &method_nm, const std::string &class_nm)
bool all_elements_are_constant(void) const
static void set_input_stream(FILE *f)
static llvm::LLVMContext & context
static octave_function * load_oct(const std::string &fcn_name, const std::string &file_name=std::string(), bool relative=false)
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,...)
static std::string make_absolute(const std::string &s, const std::string &dot_path=get_current_directory())
tree_statement * make_end(const std::string &type, bool eof, int l, int c)
tree_funcall * tree_funcall_type
bool is_string(void) const
unsigned char yytype_uint8
virtual bool is_index_expression(void) const
~octave_base_parser(void)
int octave_pull_parse(octave_pstate *ps, octave_base_parser &parser)
tree_classdef_property_list * tree_classdef_property_list_type
tree_command * make_break_command(token *break_tok)
tree_if_command_list * start_if_command(tree_expression *expr, tree_statement_list *list)
bool is_inline_function(void) const
string_vector & append(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)
#define panic_impossible()
octave_function * primary_fcn_ptr
tree_switch_command * tree_switch_command_type
tree_constant * tree_constant_type
bool parsing_subfunctions
bool parsing_class_method
tree_classdef_body * tree_classdef_body_type
std::string fcn_file_name
static octave_function * load_mex(const std::string &fcn_name, const std::string &file_name=std::string(), bool relative=false)
int octave_push_parse(octave_pstate *ps, int pushed_char, OCTAVE_STYPE const *pushed_val, 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)
virtual bool is_user_script(void) const
octave_idx_type length(void) const
static bool absolute_pathname(const std::string &s)
virtual bool is_user_function(void) const
tree_classdef_enum * tree_classdef_enum_type
tree_constant * make_constant(int op, token *tok_val)
static void goto_base_frame(void)
bool is_valid_lvalue_list(void) const
tree_parameter_list * tree_parameter_list_type
void maybe_missing_function_hook(const std::string &name)
unsigned char yytype_uint8
std::string fcn_file_name(void) const
tree_function_def * tree_function_def_type
tree_evaluator * current_evaluator
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_expression * finish_array_list(tree_array_list *a)
#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
octave_base_lexer & lexer
tree_classdef_attribute * tree_classdef_attribute_type
void warning(const char *fmt,...)
static std::string dir_sep_chars(void)
static std::string base_pathname(const std::string &s)
tree_binary_expression * maybe_compound_binary_expression(tree_expression *a, tree_expression *b, int l, int c, octave_value::binary_op t)
virtual octave_value rvalue1(int nargout=1)
virtual std::string fcn_file_name(void) const
void mark_as_anon_function_body(void)
tree_index_expression * make_index_expression(tree_expression *expr, tree_argument_list *args, char type)
bool is_empty(void) const
void set_expression(tree_expression *e)
symbol_table::scope_id primary_fcn_scope
bool input_from_tmp_history_file
std::string undo_string_escapes(const std::string &s)
std::string fcn_file_full_name
virtual bool is_matrix(void) const
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
std::vector< symbol_table::scope_id > function_scopes
static void yydestruct(const char *yymsg, int yytype, OCTAVE_STYPE *yyvaluep, octave_base_parser &parser)
void mark_as_for_cmd_expr(void)
tree_expression * expression(void)
tree_expression * finish_colon_expression(tree_colon_expression *e)
tree_classdef_event * tree_classdef_event_type
tree_command * make_continue_command(token *continue_tok)
bool is_anonymous_function(void) const
void stash_dispatch_class(const std::string &nm)
tree_fcn_handle * tree_fcn_handle_type
virtual octave_value_list rvalue(int nargout)
tree_statement_list * stmt_list
tree_identifier * tree_identifier_type
tree_if_command * finish_if_command(token *if_tok, tree_if_command_list *list, token *end_tok, octave_comment_list *lc)
static std::map< std::string, std::string > autoload_map
octave_user_function * define_ret_list(tree_parameter_list *t)
tree_expression * set_postfix_index(char type)
void maybe_warn_variable_switch_label(tree_expression *expr)
bool fcn_file_from_relative_lookup
tree_if_clause * tree_if_clause_type
bool end_token_ok(token *tok, token::end_tok_type expected)
#define yypact_value_is_default(Yystate)
bool reading_classdef_file
virtual bool is_assignment_expression(void) const
static octave_value builtin_find(const std::string &name)
bool looking_at_return_list
void set_print_flag(bool print_flag)
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)
static int input(yyscan_t yyscanner)
void append(tree_argument_list *lst=0, char t= '(')
int octave_parse(octave_base_parser &parser)
bool is_expression(void) const
tree_if_clause * make_elseif_clause(token *elseif_tok, tree_expression *expr, tree_statement_list *list, octave_comment_list *lc)
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)
void stash_fcn_file_name(const std::string &nm)
tree_expression * base(void)
void mark_as_subfunction(void)
static std::string dir_sep_str(void)
int beginning_column(void) const
std::complex< double > Complex
std::string lookup_autoload(const std::string &nm)
static void install_nestfunction(const std::string &name, const octave_value &fcn, scope_id parent_scope)
static const yytype_uint8 yystos[]
static void update_nest(scope_id scope)
void stash_fcn_file_time(const octave_time &t)
bool looking_at_indirect_ref
bool discard_warning_messages
void stash_parent_fcn_name(const std::string &p)
bool is_null_statement(void) const
bool discard_error_messages
#define YY_STACK_PRINT(Bottom, Top)
tree_command * make_while_command(token *while_tok, tree_expression *expr, tree_statement_list *body, token *end_tok, octave_comment_list *lc)
octave_user_function * octave_user_function_type
octave_base_list< tree_argument_list * >::iterator iterator
virtual int column(void) const
tree_command * make_return_command(token *return_tok)
bool reading_startup_message_printed
tree_decl_elt * tree_decl_elt_type
tree_classdef_enum_list * tree_classdef_enum_list_type
tree_command * make_do_until_command(token *until_tok, tree_statement_list *body, tree_expression *expr, octave_comment_list *lc)
virtual bool is_identifier(void) const
bool validate_array_list(tree_expression *e)
tree_classdef * tree_classdef_type
bool is_simple_assign_lhs(void)
static const yytype_int16 yypgoto[]
void mark_as_class_constructor(void)
comment_buffer comment_buf
static void ignore_entries(bool=true)
void stash_package_name(const std::string &pack)
static void safe_fclose(FILE *f)
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)
return octave_value(v1.char_array_value().concat(v2.char_array_value(), ra_idx),((a1.is_sq_string()||a2.is_sq_string())? '\'': '"'))
void stash_fcn_file_time(const octave_time &t)
tree_anon_fcn_handle * make_anon_fcn_handle(tree_parameter_list *param_list, tree_statement *stmt)
tree_function_def * finish_classdef_external_method(octave_user_function *fcn, tree_parameter_list *ret_list, octave_comment_list *cl)
static char dir_sep_char(void)
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
tree_function_def * finish_function(tree_parameter_list *ret_list, octave_user_function *fcn, octave_comment_list *lc, int l, int c)
tree_expression * finish_cell(tree_cell *c)
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)