GNU Octave  4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
oct-parse.cc
Go to the documentation of this file.
1 /* A Bison parser, made by GNU Bison 3.0.4. */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5  Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6 
7  This program is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 /* As a special exception, you may create a larger work that contains
21  part or all of the Bison parser skeleton and distribute that work
22  under terms of your choice, so long as that work isn't itself a
23  parser generator using the skeleton or a modified version thereof
24  as a parser skeleton. Alternatively, if you modify or redistribute
25  the parser skeleton itself, you may (at your option) remove this
26  special exception, which will cause the skeleton and the resulting
27  Bison output files to be licensed under the GNU General Public
28  License without this special exception.
29 
30  This special exception was added by the Free Software Foundation in
31  version 2.2 of Bison. */
32 
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34  simplifying the original so-called "semantic" parser. */
35 
36 /* All symbols defined below should begin with yy or YY, to avoid
37  infringing on user name space. This should be done even for local
38  variables, as they might otherwise be expanded by user macros.
39  There are some unavoidable exceptions within include files to
40  define necessary library symbols; they are noted "INFRINGES ON
41  USER NAME SPACE" below. */
42 
43 /* Identify Bison output. */
44 #define YYBISON 1
45 
46 /* Bison version. */
47 #define YYBISON_VERSION "3.0.4"
48 
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51 
52 /* Pure parsers. */
53 #define YYPURE 1
54 
55 /* Push parsers. */
56 #define YYPUSH 1
57 
58 /* Pull parsers. */
59 #define YYPULL 1
60 
61 /* Substitute the type names. */
62 #define YYSTYPE OCTAVE_STYPE
63 /* Substitute the variable and function names. */
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
74 
75 
76 /* Copy the first part of user declarations. */
77 #line 30 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:339 */
78 
79 
80 #define YYDEBUG 1
81 
82 #if defined (HAVE_CONFIG_H)
83 # include "config.h"
84 #endif
85 
86 #include <cassert>
87 #include <cstdio>
88 #include <cstdlib>
89 
90 #include <iostream>
91 #include <map>
92 #include <sstream>
93 
94 #include "Matrix.h"
95 #include "cmd-edit.h"
96 #include "cmd-hist.h"
97 #include "file-ops.h"
98 #include "file-stat.h"
99 #include "oct-env.h"
100 #include "oct-time.h"
101 #include "quit.h"
102 
103 #include "Cell.h"
104 #include "call-stack.h"
105 #include "comment-list.h"
106 #include "defaults.h"
107 #include "defun.h"
108 #include "dirfns.h"
109 #include "dynamic-ld.h"
110 #include "error.h"
111 #include "input.h"
112 #include "interpreter.h"
113 #include "lex.h"
114 #include "load-path.h"
115 #include "oct-hist.h"
116 #include "oct-map.h"
117 #include "ov-classdef.h"
118 #include "ov-fcn-handle.h"
119 #include "ov-usr-fcn.h"
120 #include "ov-null-mat.h"
121 #include "pager.h"
122 #include "parse.h"
123 #include "pt-all.h"
124 #include "pt-eval.h"
125 #include "pt-funcall.h"
126 #include "symtab.h"
127 #include "token.h"
128 #include "unwind-prot.h"
129 #include "utils.h"
130 #include "variables.h"
131 
132 // oct-parse.h must be included after pt-all.h
133 #include <oct-parse.h>
134 
135 extern int octave_lex (YYSTYPE *, void *);
136 
137 // Global access to currently active lexer.
138 // FIXME: to be removed after more parser+lexer refactoring.
140 
141 // TRUE means we printed messages about reading startup files.
143 
144 // List of autoloads (function -> file mapping).
145 static std::map<std::string, std::string> autoload_map;
146 
147 // Forward declarations for some functions defined at the bottom of
148 // the file.
149 
150 static void yyerror (octave::base_parser& parser, const char *s);
151 
152 #define lexer parser.lexer
153 #define scanner lexer.scanner
154 
155 #if defined (HAVE_PRAGMA_GCC_DIAGNOSTIC)
156 // Disable this warning for code that is generated by Bison, including
157 // grammar rules. Push the current state so we can restore the warning
158 // state prior to functions we define at the bottom of the file.
159 #pragma GCC diagnostic push
160 #pragma GCC diagnostic ignored "-Wold-style-cast"
161 #endif
162 
163 
164 #line 165 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:339 */
165 
166 # ifndef YY_NULLPTR
167 # if defined __cplusplus && 201103L <= __cplusplus
168 # define YY_NULLPTR nullptr
169 # else
170 # define YY_NULLPTR 0
171 # endif
172 # endif
173 
174 /* Enabling verbose error messages. */
175 #ifdef YYERROR_VERBOSE
176 # undef YYERROR_VERBOSE
177 # define YYERROR_VERBOSE 1
178 #else
179 # define YYERROR_VERBOSE 0
180 #endif
181 
182 /* In a future release of Bison, this section will be replaced
183  by #include "y.tab.h". */
184 #ifndef YY_OCTAVE_LIBINTERP_PARSE_TREE_OCT_PARSE_H_INCLUDED
185 # define YY_OCTAVE_LIBINTERP_PARSE_TREE_OCT_PARSE_H_INCLUDED
186 /* Debug traces. */
187 #ifndef OCTAVE_DEBUG
188 # if defined YYDEBUG
189 #if YYDEBUG
190 # define OCTAVE_DEBUG 1
191 # else
192 # define OCTAVE_DEBUG 0
193 # endif
194 # else /* ! defined YYDEBUG */
195 # define OCTAVE_DEBUG 0
196 # endif /* ! defined YYDEBUG */
197 #endif /* ! defined OCTAVE_DEBUG */
198 #if OCTAVE_DEBUG
199 extern int octave_debug;
200 #endif
201 
202 /* Token type. */
203 #ifndef OCTAVE_TOKENTYPE
204 # define OCTAVE_TOKENTYPE
205  enum octave_tokentype
206  {
207  ADD_EQ = 258,
208  SUB_EQ = 259,
209  MUL_EQ = 260,
210  DIV_EQ = 261,
211  LEFTDIV_EQ = 262,
212  POW_EQ = 263,
213  EMUL_EQ = 264,
214  EDIV_EQ = 265,
215  ELEFTDIV_EQ = 266,
216  EPOW_EQ = 267,
217  AND_EQ = 268,
218  OR_EQ = 269,
219  EXPR_AND_AND = 270,
220  EXPR_OR_OR = 271,
221  EXPR_AND = 272,
222  EXPR_OR = 273,
223  EXPR_NOT = 274,
224  EXPR_LT = 275,
225  EXPR_LE = 276,
226  EXPR_EQ = 277,
227  EXPR_NE = 278,
228  EXPR_GE = 279,
229  EXPR_GT = 280,
230  LEFTDIV = 281,
231  EMUL = 282,
232  EDIV = 283,
233  ELEFTDIV = 284,
234  EPLUS = 285,
235  EMINUS = 286,
236  HERMITIAN = 287,
237  TRANSPOSE = 288,
238  PLUS_PLUS = 289,
239  MINUS_MINUS = 290,
240  POW = 291,
241  EPOW = 292,
242  NUM = 293,
243  IMAG_NUM = 294,
244  STRUCT_ELT = 295,
245  NAME = 296,
246  END = 297,
247  DQ_STRING = 298,
248  SQ_STRING = 299,
249  FOR = 300,
250  PARFOR = 301,
251  WHILE = 302,
252  DO = 303,
253  UNTIL = 304,
254  IF = 305,
255  ELSEIF = 306,
256  ELSE = 307,
257  SWITCH = 308,
258  CASE = 309,
259  OTHERWISE = 310,
260  BREAK = 311,
261  CONTINUE = 312,
262  FUNC_RET = 313,
263  UNWIND = 314,
264  CLEANUP = 315,
265  TRY = 316,
266  CATCH = 317,
267  GLOBAL = 318,
268  PERSISTENT = 319,
269  FCN_HANDLE = 320,
270  CLASSDEF = 321,
271  PROPERTIES = 322,
272  METHODS = 323,
273  EVENTS = 324,
274  ENUMERATION = 325,
275  METAQUERY = 326,
276  SUPERCLASSREF = 327,
277  FQ_IDENT = 328,
278  GET = 329,
279  SET = 330,
280  FCN = 331,
281  LEXICAL_ERROR = 332,
282  END_OF_INPUT = 333,
283  INPUT_FILE = 334,
284  UNARY = 335
285  };
286 #endif
287 /* Tokens. */
288 #define ADD_EQ 258
289 #define SUB_EQ 259
290 #define MUL_EQ 260
291 #define DIV_EQ 261
292 #define LEFTDIV_EQ 262
293 #define POW_EQ 263
294 #define EMUL_EQ 264
295 #define EDIV_EQ 265
296 #define ELEFTDIV_EQ 266
297 #define EPOW_EQ 267
298 #define AND_EQ 268
299 #define OR_EQ 269
300 #define EXPR_AND_AND 270
301 #define EXPR_OR_OR 271
302 #define EXPR_AND 272
303 #define EXPR_OR 273
304 #define EXPR_NOT 274
305 #define EXPR_LT 275
306 #define EXPR_LE 276
307 #define EXPR_EQ 277
308 #define EXPR_NE 278
309 #define EXPR_GE 279
310 #define EXPR_GT 280
311 #define LEFTDIV 281
312 #define EMUL 282
313 #define EDIV 283
314 #define ELEFTDIV 284
315 #define EPLUS 285
316 #define EMINUS 286
317 #define HERMITIAN 287
318 #define TRANSPOSE 288
319 #define PLUS_PLUS 289
320 #define MINUS_MINUS 290
321 #define POW 291
322 #define EPOW 292
323 #define NUM 293
324 #define IMAG_NUM 294
325 #define STRUCT_ELT 295
326 #define NAME 296
327 #define END 297
328 #define DQ_STRING 298
329 #define SQ_STRING 299
330 #define FOR 300
331 #define PARFOR 301
332 #define WHILE 302
333 #define DO 303
334 #define UNTIL 304
335 #define IF 305
336 #define ELSEIF 306
337 #define ELSE 307
338 #define SWITCH 308
339 #define CASE 309
340 #define OTHERWISE 310
341 #define BREAK 311
342 #define CONTINUE 312
343 #define FUNC_RET 313
344 #define UNWIND 314
345 #define CLEANUP 315
346 #define TRY 316
347 #define CATCH 317
348 #define GLOBAL 318
349 #define PERSISTENT 319
350 #define FCN_HANDLE 320
351 #define CLASSDEF 321
352 #define PROPERTIES 322
353 #define METHODS 323
354 #define EVENTS 324
355 #define ENUMERATION 325
356 #define METAQUERY 326
357 #define SUPERCLASSREF 327
358 #define FQ_IDENT 328
359 #define GET 329
360 #define SET 330
361 #define FCN 331
362 #define LEXICAL_ERROR 332
363 #define END_OF_INPUT 333
364 #define INPUT_FILE 334
365 #define UNARY 335
366 
367 /* Value type. */
368 #if ! defined OCTAVE_STYPE && ! defined OCTAVE_STYPE_IS_DECLARED
369 
370 union OCTAVE_STYPE
371 {
372 #line 141 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:355 */
373 
374  int dummy_type;
375 
376  // The type of the basic tokens returned by the lexer.
377  token *tok_val;
378 
379  // Comment strings that we need to deal with mid-rule.
381 
382  // Types for the nonterminals we generate.
383  char punct_type;
384  tree *tree_type;
411 
429 
430 #line 431 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:355 */
431 };
432 
433 typedef union OCTAVE_STYPE OCTAVE_STYPE;
434 # define OCTAVE_STYPE_IS_TRIVIAL 1
435 # define OCTAVE_STYPE_IS_DECLARED 1
436 #endif
437 
438 
439 
440 #ifndef YYPUSH_MORE_DEFINED
441 # define YYPUSH_MORE_DEFINED
442 enum { YYPUSH_MORE = 4 };
443 #endif
444 
446 
448 int octave_push_parse (octave_pstate *ps, int pushed_char, OCTAVE_STYPE const *pushed_val, octave::base_parser& parser);
452 
453 #endif /* !YY_OCTAVE_LIBINTERP_PARSE_TREE_OCT_PARSE_H_INCLUDED */
454 
455 /* Copy the second part of user declarations. */
456 
457 #line 458 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:358 */
458 
459 #ifdef short
460 # undef short
461 #endif
462 
463 #ifdef YYTYPE_UINT8
464 typedef YYTYPE_UINT8 yytype_uint8;
465 #else
466 typedef unsigned char yytype_uint8;
467 #endif
468 
469 #ifdef YYTYPE_INT8
470 typedef YYTYPE_INT8 yytype_int8;
471 #else
472 typedef signed char yytype_int8;
473 #endif
474 
475 #ifdef YYTYPE_UINT16
476 typedef YYTYPE_UINT16 yytype_uint16;
477 #else
478 typedef unsigned short int yytype_uint16;
479 #endif
480 
481 #ifdef YYTYPE_INT16
482 typedef YYTYPE_INT16 yytype_int16;
483 #else
484 typedef short int yytype_int16;
485 #endif
486 
487 #ifndef YYSIZE_T
488 # ifdef __SIZE_TYPE__
489 # define YYSIZE_T __SIZE_TYPE__
490 # elif defined size_t
491 # define YYSIZE_T size_t
492 # elif ! defined YYSIZE_T
493 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
494 # define YYSIZE_T size_t
495 # else
496 # define YYSIZE_T unsigned int
497 # endif
498 #endif
499 
500 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
501 
502 #ifndef YY_
503 # if defined YYENABLE_NLS && YYENABLE_NLS
504 # if ENABLE_NLS
505 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
506 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
507 # endif
508 # endif
509 # ifndef YY_
510 # define YY_(Msgid) Msgid
511 # endif
512 #endif
513 
514 #ifndef YY_ATTRIBUTE
515 # if (defined __GNUC__ \
516  && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
517  || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
518 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
519 # else
520 # define YY_ATTRIBUTE(Spec) /* empty */
521 # endif
522 #endif
523 
524 #ifndef YY_ATTRIBUTE_PURE
525 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
526 #endif
527 
528 #ifndef YY_ATTRIBUTE_UNUSED
529 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
530 #endif
531 
532 #if !defined _Noreturn \
533  && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
534 # if defined _MSC_VER && 1200 <= _MSC_VER
535 # define _Noreturn __declspec (noreturn)
536 # else
537 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
538 # endif
539 #endif
540 
541 /* Suppress unused-variable warnings by "using" E. */
542 #if ! defined lint || defined __GNUC__
543 # define YYUSE(E) ((void) (E))
544 #else
545 # define YYUSE(E) /* empty */
546 #endif
547 
548 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
549 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
550 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
551  _Pragma ("GCC diagnostic push") \
552  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
553  _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
554 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
555  _Pragma ("GCC diagnostic pop")
556 #else
557 # define YY_INITIAL_VALUE(Value) Value
558 #endif
559 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
560 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
561 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
562 #endif
563 #ifndef YY_INITIAL_VALUE
564 # define YY_INITIAL_VALUE(Value) /* Nothing. */
565 #endif
566 
567 
568 #if ! defined yyoverflow || YYERROR_VERBOSE
569 
570 /* The parser invokes alloca or malloc; define the necessary symbols. */
571 
572 # ifdef YYSTACK_ALLOC
573  /* Pacify GCC's 'empty if-body' warning. */
574 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
575 # ifndef YYSTACK_ALLOC_MAXIMUM
576  /* The OS might guarantee only one guard page at the bottom of the stack,
577  and a page size can be as small as 4096 bytes. So we cannot safely
578  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
579  to allow for a few compiler-allocated temporary stack slots. */
580 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
581 # endif
582 # else
583 # define YYSTACK_ALLOC YYMALLOC
584 # define YYSTACK_FREE YYFREE
585 # ifndef YYSTACK_ALLOC_MAXIMUM
586 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
587 # endif
588 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
589  && ! ((defined YYMALLOC || defined malloc) \
590  && (defined YYFREE || defined free)))
591 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
592 # ifndef EXIT_SUCCESS
593 # define EXIT_SUCCESS 0
594 # endif
595 # endif
596 # ifndef YYMALLOC
597 # define YYMALLOC malloc
598 # if ! defined malloc && ! defined EXIT_SUCCESS
599 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
600 # endif
601 # endif
602 # ifndef YYFREE
603 # define YYFREE free
604 # if ! defined free && ! defined EXIT_SUCCESS
605 void free (void *); /* INFRINGES ON USER NAME SPACE */
606 # endif
607 # endif
608 # endif
609 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
610 
611 
612 #if (! defined yyoverflow \
613  && (! defined __cplusplus \
614  || (defined OCTAVE_STYPE_IS_TRIVIAL && OCTAVE_STYPE_IS_TRIVIAL)))
615 
616 /* A type that is properly aligned for any stack member. */
617 union yyalloc
618 {
621 };
622 
623 /* The size of the maximum gap between one aligned stack and the next. */
624 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
625 
626 /* The size of an array large to enough to hold all stacks, each with
627  N elements. */
628 # define YYSTACK_BYTES(N) \
629  ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
630  + YYSTACK_GAP_MAXIMUM)
631 
632 # define YYCOPY_NEEDED 1
633 
634 /* Relocate STACK from its old location to the new one. The
635  local variables YYSIZE and YYSTACKSIZE give the old and new number of
636  elements in the stack, and YYPTR gives the new location of the
637  stack. Advance YYPTR to a properly aligned location for the next
638  stack. */
639 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
640  do \
641  { \
642  YYSIZE_T yynewbytes; \
643  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
644  Stack = &yyptr->Stack_alloc; \
645  yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
646  yyptr += yynewbytes / sizeof (*yyptr); \
647  } \
648  while (0)
649 
650 #endif
651 
652 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
653 /* Copy COUNT objects from SRC to DST. The source and destination do
654  not overlap. */
655 # ifndef YYCOPY
656 # if defined __GNUC__ && 1 < __GNUC__
657 # define YYCOPY(Dst, Src, Count) \
658  __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
659 # else
660 # define YYCOPY(Dst, Src, Count) \
661  do \
662  { \
663  YYSIZE_T yyi; \
664  for (yyi = 0; yyi < (Count); yyi++) \
665  (Dst)[yyi] = (Src)[yyi]; \
666  } \
667  while (0)
668 # endif
669 # endif
670 #endif /* !YYCOPY_NEEDED */
671 
672 /* YYFINAL -- State number of the termination state. */
673 #define YYFINAL 110
674 /* YYLAST -- Last index in YYTABLE. */
675 #define YYLAST 1508
676 
677 /* YYNTOKENS -- Number of terminals. */
678 #define YYNTOKENS 98
679 /* YYNNTS -- Number of nonterminals. */
680 #define YYNNTS 105
681 /* YYNRULES -- Number of rules. */
682 #define YYNRULES 278
683 /* YYNSTATES -- Number of states. */
684 #define YYNSTATES 516
685 
686 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
687  by yylex, with out-of-bounds checking. */
688 #define YYUNDEFTOK 2
689 #define YYMAXUTOK 335
690 
691 #define YYTRANSLATE(YYX) \
692  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
693 
694 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
695  as returned by yylex, without out-of-bounds checking. */
696 static const yytype_uint8 yytranslate[] =
697 {
698  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
699  96, 2, 2, 2, 2, 2, 2, 2, 2, 2,
700  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
701  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
702  86, 87, 7, 6, 93, 5, 92, 8, 2, 2,
703  2, 2, 2, 2, 2, 2, 2, 2, 4, 94,
704  2, 3, 2, 2, 95, 2, 2, 2, 2, 2,
705  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
706  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
707  2, 88, 2, 89, 2, 2, 2, 2, 2, 2,
708  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
709  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
710  2, 2, 2, 90, 2, 91, 2, 2, 2, 2,
711  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
712  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
713  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
714  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
715  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
716  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
717  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
718  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
719  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
720  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
721  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
722  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
723  2, 2, 2, 2, 2, 2, 1, 2, 9, 10,
724  11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
725  21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
726  31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
727  41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
728  51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
729  61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
730  71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
731  81, 82, 83, 84, 85, 97
732 };
733 
734 #if OCTAVE_DEBUG
735  /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
736 static const yytype_uint16 yyrline[] =
737 {
738  0, 389, 389, 395, 402, 409, 415, 419, 421, 426,
739  427, 431, 435, 437, 441, 443, 445, 457, 468, 470,
740  481, 489, 498, 506, 508, 512, 514, 516, 520, 524,
741  526, 540, 544, 546, 565, 566, 568, 570, 572, 574,
742  578, 585, 592, 594, 596, 598, 603, 605, 607, 609,
743  613, 622, 630, 632, 634, 636, 641, 646, 653, 660,
744  662, 664, 666, 675, 684, 693, 702, 704, 706, 708,
745  710, 712, 714, 716, 718, 720, 722, 724, 726, 728,
746  730, 732, 734, 736, 738, 740, 742, 746, 748, 750,
747  752, 761, 770, 779, 788, 790, 792, 794, 796, 798,
748  800, 804, 808, 810, 823, 825, 827, 829, 831, 833,
749  835, 837, 839, 841, 843, 847, 861, 863, 865, 867,
750  869, 871, 873, 875, 877, 879, 881, 883, 885, 889,
751  904, 911, 919, 921, 923, 925, 927, 929, 931, 939,
752  944, 951, 953, 961, 966, 968, 981, 983, 991, 1001,
753  1003, 1010, 1018, 1025, 1036, 1049, 1062, 1063, 1065, 1067,
754  1074, 1076, 1083, 1092, 1105, 1117, 1124, 1136, 1148, 1160,
755  1178, 1180, 1182, 1190, 1203, 1216, 1233, 1265, 1279, 1287,
756  1294, 1303, 1304, 1320, 1322, 1329, 1331, 1339, 1345, 1363,
757  1380, 1382, 1393, 1419, 1435, 1444, 1450, 1460, 1469, 1478,
758  1489, 1507, 1513, 1521, 1534, 1574, 1587, 1600, 1615, 1616,
759  1620, 1622, 1629, 1631, 1638, 1648, 1649, 1654, 1653, 1662,
760  1661, 1674, 1678, 1680, 1682, 1684, 1686, 1693, 1700, 1707,
761  1717, 1729, 1743, 1745, 1754, 1756, 1765, 1777, 1791, 1796,
762  1803, 1806, 1805, 1820, 1822, 1826, 1834, 1848, 1860, 1873,
763  1875, 1884, 1888, 1900, 1913, 1915, 1924, 1933, 1940, 1943,
764  1949, 1953, 1955, 1957, 1959, 1964, 1965, 1970, 1971, 1975,
765  1977, 1981, 1983, 1985, 1987, 1989, 1991, 1996, 1997
766 };
767 #endif
768 
769 #if OCTAVE_DEBUG || YYERROR_VERBOSE || 0
770 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
771  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
772 static const char *const yytname[] =
773 {
774  "$end", "error", "$undefined", "'='", "':'", "'-'", "'+'", "'*'", "'/'",
775  "ADD_EQ", "SUB_EQ", "MUL_EQ", "DIV_EQ", "LEFTDIV_EQ", "POW_EQ",
776  "EMUL_EQ", "EDIV_EQ", "ELEFTDIV_EQ", "EPOW_EQ", "AND_EQ", "OR_EQ",
777  "EXPR_AND_AND", "EXPR_OR_OR", "EXPR_AND", "EXPR_OR", "EXPR_NOT",
778  "EXPR_LT", "EXPR_LE", "EXPR_EQ", "EXPR_NE", "EXPR_GE", "EXPR_GT",
779  "LEFTDIV", "EMUL", "EDIV", "ELEFTDIV", "EPLUS", "EMINUS", "HERMITIAN",
780  "TRANSPOSE", "PLUS_PLUS", "MINUS_MINUS", "POW", "EPOW", "NUM",
781  "IMAG_NUM", "STRUCT_ELT", "NAME", "END", "DQ_STRING", "SQ_STRING", "FOR",
782  "PARFOR", "WHILE", "DO", "UNTIL", "IF", "ELSEIF", "ELSE", "SWITCH",
783  "CASE", "OTHERWISE", "BREAK", "CONTINUE", "FUNC_RET", "UNWIND",
784  "CLEANUP", "TRY", "CATCH", "GLOBAL", "PERSISTENT", "FCN_HANDLE",
785  "CLASSDEF", "PROPERTIES", "METHODS", "EVENTS", "ENUMERATION",
786  "METAQUERY", "SUPERCLASSREF", "FQ_IDENT", "GET", "SET", "FCN",
787  "LEXICAL_ERROR", "END_OF_INPUT", "INPUT_FILE", "'('", "')'", "'['",
788  "']'", "'{'", "'}'", "'.'", "','", "';'", "'@'", "'\\n'", "UNARY",
789  "$accept", "input", "simple_list", "simple_list1", "opt_list", "list",
790  "list1", "statement", "word_list_cmd", "word_list", "identifier",
791  "superclass_identifier", "meta_identifier", "string", "constant",
792  "matrix", "matrix_rows", "cell", "cell_rows", "cell_or_matrix_row",
793  "fcn_handle", "anon_fcn_handle", "primary_expr", "magic_colon",
794  "magic_tilde", "arg_list", "indirect_ref_op", "oper_expr", "power_expr",
795  "colon_expr", "colon_expr1", "simple_expr", "assign_lhs", "assign_expr",
796  "expression", "command", "declaration", "decl1", "decl_param_init",
797  "decl2", "select_command", "if_command", "if_cmd_list", "if_cmd_list1",
798  "elseif_clause", "else_clause", "switch_command", "case_list",
799  "case_list1", "switch_case", "default_case", "loop_command",
800  "jump_command", "except_command", "push_fcn_symtab", "param_list_beg",
801  "param_list_end", "param_list", "param_list1", "param_list2",
802  "param_list_elt", "return_list", "return_list1", "file", "function_beg",
803  "function", "fcn_name", "function1", "function2", "function_end",
804  "classdef_beg", "classdef", "opt_attr_list", "attr_list", "attr",
805  "opt_superclass_list", "superclass_list", "$@1", "$@2", "superclass",
806  "class_body", "properties_block", "property_list", "class_property",
807  "methods_block", "method_decl1", "method_decl", "$@3", "method",
808  "methods_list", "events_block", "events_list", "class_event",
809  "enum_block", "enum_list", "class_enum", "stmt_begin", "stash_comment",
810  "parse_error", "sep_no_nl", "opt_sep_no_nl", "opt_nl", "nl", "sep",
811  "opt_sep", YY_NULLPTR
812 };
813 #endif
814 
815 # ifdef YYPRINT
816 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
817  (internal) symbol number NUM (which must be that of a token). */
818 static const yytype_uint16 yytoknum[] =
819 {
820  0, 256, 257, 61, 58, 45, 43, 42, 47, 258,
821  259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
822  269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
823  279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
824  289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
825  299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
826  309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
827  319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
828  329, 330, 331, 332, 333, 334, 40, 41, 91, 93,
829  123, 125, 46, 44, 59, 64, 10, 335
830 };
831 # endif
832 
833 #define YYPACT_NINF -413
834 
835 #define yypact_value_is_default(Yystate) \
836  (!!((Yystate) == (-413)))
837 
838 #define YYTABLE_NINF -266
839 
840 #define yytable_value_is_error(Yytable_value) \
841  0
842 
843  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
844  STATE-NUM. */
845 static const yytype_int16 yypact[] =
846 {
847  554, -413, 1173, 1173, 1173, 1173, 1173, -413, -413, -413,
848  -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
849  -413, -413, -413, 16, 16, -413, -413, -413, -5, 1194,
850  415, 415, -413, -413, 28, 72, -30, -47, -413, -413,
851  165, -413, -413, -413, -413, -413, -413, -413, -413, -413,
852  1348, -413, 89, 1432, 905, -413, -413, -413, -413, -413,
853  -413, -413, -413, -413, -413, 34, -413, -413, -413, -413,
854  110, -413, 31, -413, 127, 127, 127, 127, 127, 1250,
855  1271, 1194, 59, 1194, 1194, 59, 59, 147, 16, -413,
856  16, -413, 973, 68, 86, -413, 1173, 851, -39, -413,
857  -413, -413, 100, -413, 91, -413, -413, -413, 20, -413,
858  -413, -413, -413, 907, -413, 165, -413, 1173, 1173, 1173,
859  1173, 1173, 1173, 1173, 1173, 1173, 1173, -413, -413, -413,
860  -413, 1327, 1327, 687, 713, -413, -4, 1173, 1173, 1173,
861  1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1194, 1194,
862  1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
863  1194, -413, -10, -413, -413, 1194, 323, 193, 1194, 197,
864  -413, -413, -413, -413, 129, 1041, -413, 168, 181, 59,
865  1041, 1041, -413, -413, -413, 136, -413, 59, -413, -413,
866  59, -413, -413, 143, -413, 415, 851, -413, 415, -413,
867  -413, -413, -413, 153, 161, -413, 1107, -413, -413, 1386,
868  1386, 127, 127, 127, 127, 127, 127, 1386, 1386, 1327,
869  1327, 1327, 1327, 1327, -413, -11, -11, -413, 11, -413,
870  10, -413, 1194, 1348, 333, 221, 249, 240, -413, -413,
871  -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
872  -413, -413, -413, -413, -413, -413, -413, 173, 191, -13,
873  283, 286, 98, -413, 1470, 1194, 1488, 1194, 59, -413,
874  -413, -413, 236, 59, -413, -413, -413, -413, -413, 196,
875  229, 95, 1194, -413, 620, -413, 212, 217, 851, -413,
876  -413, -413, -413, -413, -413, -413, 36, -413, -11, -11,
877  -11, -11, -11, -413, -413, 775, 789, 3, -413, 851,
878  -413, 223, 16, 16, -413, -413, 49, -12, 59, -413,
879  1041, 1194, -413, 1194, -413, 1041, 1194, 1041, 59, 59,
880  -413, -413, 260, 196, -413, -413, -413, -413, -413, -413,
881  -413, 39, 16, -413, -413, -413, 19, -413, 116, -413,
882  1194, -413, -413, -413, -413, 16, -413, -413, 1041, -7,
883  234, 59, 230, 59, 268, -413, -413, 1194, 1041, 59,
884  59, -413, -413, -413, 59, 59, 16, 319, 108, -413,
885  298, -413, -413, 243, -413, -7, -413, -413, -413, 59,
886  1041, 1194, 1041, -413, -413, -413, 1194, 1041, 1041, 1041,
887  -413, -413, -413, 39, -413, 59, 308, -413, -413, 1041,
888  284, 248, 285, 59, -413, -413, 289, 290, 1194, -413,
889  261, 103, -413, 291, -413, 59, -413, 1041, 59, -413,
890  -413, -413, -413, -413, -413, -413, -413, -413, -413, 59,
891  -413, -413, -413, -413, 261, -413, 1041, -413, 1041, 212,
892  212, 212, 212, 154, -413, 300, -413, 59, 59, 59,
893  59, -413, -413, -413, -413, -413, -413, 246, 5, 257,
894  259, -413, 362, 59, -413, -413, -413, -413, -413, 59,
895  -14, -413, -413, 59, -413, -413, 280, 59, -413, -413,
896  1, 321, 14, 25, 367, -413, 267, 1194, 271, 1194,
897  -413, -413, -413, -413, -413, -413, -413, -413, 287, -413,
898  -413, -413, 16, -413, 292, -413
899 };
900 
901  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
902  Performed when YYTABLE does not specify something else to do. Zero
903  means the default is an error. */
904 static const yytype_uint16 yydefact[] =
905 {
906  0, 260, 0, 0, 0, 0, 0, 25, 26, 20,
907  23, 24, 258, 258, 258, 258, 258, 258, 170, 171,
908  172, 258, 258, 0, 0, 22, 21, 259, 267, 0,
909  34, 34, 261, 262, 0, 0, 0, 265, 7, 16,
910  42, 48, 47, 27, 43, 45, 46, 44, 131, 59,
911  102, 104, 101, 129, 0, 130, 14, 15, 132, 133,
912  146, 147, 134, 135, 136, 0, 138, 258, 137, 4,
913  266, 5, 0, 42, 74, 73, 72, 70, 71, 0,
914  0, 0, 277, 0, 0, 277, 277, 144, 139, 141,
915  140, 269, 9, 268, 0, 50, 51, 35, 0, 29,
916  53, 54, 36, 52, 0, 32, 40, 177, 0, 257,
917  1, 3, 2, 266, 6, 17, 18, 0, 0, 0,
918  0, 0, 0, 0, 0, 0, 0, 66, 67, 60,
919  61, 0, 0, 0, 0, 58, 0, 0, 0, 0,
920  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
922  0, 194, 0, 263, 264, 0, 115, 0, 0, 0,
923  257, 271, 272, 273, 278, 9, 257, 0, 149, 277,
924  9, 9, 143, 142, 205, 0, 10, 277, 12, 258,
925  277, 270, 49, 38, 28, 34, 37, 31, 34, 180,
926  51, 186, 185, 0, 182, 183, 176, 8, 19, 78,
927  77, 79, 80, 85, 83, 84, 86, 81, 82, 0,
928  0, 0, 0, 0, 87, 75, 76, 62, 0, 64,
929  0, 68, 0, 103, 113, 114, 111, 112, 105, 106,
930  107, 110, 108, 109, 116, 117, 118, 119, 120, 121,
931  122, 123, 124, 125, 126, 127, 128, 0, 0, 0,
932  197, 0, 277, 195, 0, 0, 0, 0, 277, 274,
933  275, 276, 0, 277, 148, 258, 258, 152, 150, 156,
934  0, 0, 0, 192, 278, 11, 208, 0, 39, 30,
935  55, 56, 57, 33, 178, 179, 0, 41, 100, 99,
936  98, 96, 97, 88, 89, 0, 0, 0, 63, 0,
937  65, 0, 0, 0, 187, 190, 0, 0, 277, 200,
938  9, 0, 257, 0, 257, 9, 0, 9, 277, 277,
939  258, 258, 0, 158, 160, 157, 258, 175, 258, 145,
940  13, 0, 0, 193, 184, 90, 0, 92, 0, 94,
941  0, 69, 198, 199, 189, 0, 197, 196, 9, 0,
942  0, 277, 116, 277, 0, 165, 151, 0, 9, 277,
943  277, 155, 161, 159, 277, 277, 0, 212, 0, 210,
944  215, 91, 93, 0, 191, 0, 203, 204, 202, 277,
945  9, 0, 9, 164, 257, 154, 0, 9, 9, 9,
946  214, 143, 209, 0, 217, 277, 216, 95, 201, 9,
947  0, 0, 0, 277, 257, 163, 0, 0, 0, 211,
948  0, 0, 219, 0, 166, 277, 168, 9, 277, 173,
949  174, 213, 221, 218, 207, 258, 258, 258, 258, 277,
950  222, 223, 224, 225, 0, 167, 9, 153, 9, 208,
951  208, 208, 208, 0, 220, 0, 162, 277, 277, 277,
952  277, 206, 226, 227, 228, 229, 169, 0, 258, 0,
953  0, 231, 234, 277, 232, 237, 244, 243, 245, 277,
954  0, 248, 251, 277, 249, 253, 0, 277, 254, 143,
955  278, 0, 258, 238, 0, 240, 0, 0, 0, 0,
956  233, 230, 236, 246, 239, 241, 247, 250, 0, 252,
957  255, 235, 0, 256, 238, 242
958 };
959 
960  /* YYPGOTO[NTERM-NUM]. */
961 static const yytype_int16 yypgoto[] =
962 {
963  -413, -413, -413, -413, -137, -413, -413, 4, -413, -413,
964  0, -413, -413, -15, -413, -413, -413, -413, -413, -9,
965  -413, -413, -100, -170, -91, -94, -141, 410, -74, -413,
966  -413, 601, -28, -413, -24, -413, -413, 347, -374, -72,
967  -413, -413, -413, -413, -413, -413, -413, -413, -413, 40,
968  44, -413, -413, -413, -413, -413, -413, -25, -413, -413,
969  83, -98, -413, -413, -413, -412, -413, 63, -413, -1,
970  -413, -413, -217, -413, -20, -413, -413, -413, -413, -59,
971  -413, -66, -413, -102, -64, -121, -413, -413, -99, -413,
972  -58, -413, -96, -57, -413, -97, -168, -2, -413, 365,
973  368, -413, -413, -186, 113
974 };
975 
976  /* YYDEFGOTO[NTERM-NUM]. */
977 static const yytype_int16 yydefgoto[] =
978 {
979  -1, 35, 36, 37, 185, 186, 187, 188, 39, 115,
980  73, 41, 42, 43, 44, 45, 98, 46, 104, 99,
981  47, 48, 49, 100, 101, 102, 136, 50, 225, 51,
982  52, 53, 54, 55, 56, 57, 58, 88, 282, 89,
983  59, 60, 177, 178, 277, 278, 61, 332, 333, 334,
984  335, 62, 63, 64, 65, 108, 295, 504, 203, 204,
985  205, 261, 316, 66, 67, 68, 262, 263, 319, 388,
986  189, 190, 342, 378, 379, 405, 406, 420, 444, 433,
987  439, 440, 473, 474, 441, 495, 477, 512, 478, 479,
988  442, 483, 484, 443, 487, 488, 206, 480, 69, 70,
989  71, 92, 93, 174, 175
990 };
991 
992  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
993  positive, shift that token. If negative, reduce the rule whose
994  number is the opposite. If YYTABLE_NINF, syntax error. */
995 static const yytype_int16 yytable[] =
996 {
997  40, 284, 268, 193, 38, 94, 103, 103, 273, 109,
998  79, 80, 81, 82, 83, 84, 183, 201, 183, 85,
999  86, 199, 105, 87, 87, 116, 290, 418, -188, 303,
1000  304, 224, 224, 9, 9, 9, 202, 9, 272, 228,
1001  230, 386, 231, 280, 281, 200, 32, 33, 9, 349,
1002  194, 167, 169, 475, 111, 195, 476, 170, 226, 176,
1003  179, 200, 502, 9, 376, 162, 112, 9, 257, 258,
1004  257, 258, 110, 103, 259, 305, 314, 387, 259, 306,
1005  476, 135, 232, 9, 307, 307, 9, -176, 87, 350,
1006  87, 91, 40, 137, 269, 270, -176, 271, 308, 106,
1007  208, 310, 106, 309, 309, 291, 381, -181, 87, 103,
1008  103, 107, 309, 40, 107, 499, 161, 207, 290, 224,
1009  224, 224, 224, 224, 244, 245, 246, 247, 248, 249,
1010  250, 251, 252, 253, 254, 255, 256, 264, 354, 290,
1011  266, 94, 355, 337, 94, 298, 299, 300, 301, 302,
1012  182, 434, 171, 172, 361, 173, 363, 307, 307, 307,
1013  307, 307, 260, 338, 191, 127, 128, 129, 130, 131,
1014  132, 103, 292, 192, 103, 40, 435, 436, 437, 438,
1015  40, 40, 197, 359, 107, 198, 289, 286, 364, 293,
1016  366, 171, 172, 196, 173, 402, 265, 291, 180, 181,
1017  267, 403, 461, 163, 164, 201, 40, 382, 311, 309,
1018  297, 346, 348, 133, 10, 11, 274, 134, 291, 135,
1019  283, 385, 269, 270, 202, 271, 413, 435, 436, 437,
1020  438, 395, 457, 458, 459, 460, 288, 318, 275, 276,
1021  294, 322, 138, 324, 140, 141, 428, 142, 143, 144,
1022  145, 146, 147, 410, 296, 412, 330, 331, 339, 315,
1023  415, 416, 417, 140, 292, 312, 142, 143, 144, 145,
1024  146, 147, 423, 328, 329, 142, 143, 144, 145, 146,
1025  147, 103, 103, 313, 40, 292, -188, 490, 340, 317,
1026  447, 326, 279, 9, 471, 336, 87, 360, 341, 362,
1027  285, 343, 365, 287, 9, 481, 9, 485, 371, 455,
1028  351, 456, 352, 353, 9, 506, 393, 356, 9, 509,
1029  40, 389, 401, 391, 404, 40, 383, 40, 369, 370,
1030  407, 422, 424, 426, 374, 425, 375, 429, 430, 445,
1031  432, 377, 380, 394, 138, 139, 140, 141, 466, 142,
1032  143, 144, 145, 146, 147, 384, 140, 141, 40, 142,
1033  143, 144, 145, 146, 147, 489, 497, 411, 40, 501,
1034  505, 90, 414, 372, 513, 320, 400, 373, 107, 344,
1035  357, 325, 494, 419, 408, 454, 327, 462, 500, 463,
1036  40, 515, 40, 503, 431, 464, 465, 40, 40, 40,
1037  507, 510, 113, 377, 0, 114, 0, 0, 0, 40,
1038  0, 0, 74, 75, 76, 77, 78, 0, 0, 95,
1039  2, 3, 0, 0, 0, 0, 0, 40, 0, 0,
1040  0, 358, 0, 449, 450, 451, 452, 0, 0, 0,
1041  96, 367, 368, 0, 0, 0, 40, 0, 40, 0,
1042  0, 0, 0, 0, 0, 5, 6, 0, 0, 7,
1043  8, 0, 9, 0, 10, 11, 0, 472, 0, 482,
1044  486, 0, 0, 508, 390, 511, 392, 0, 0, 0,
1045  493, 0, 396, 397, 0, 0, 0, 398, 399, 0,
1046  472, 0, 25, 26, 0, 0, 482, 0, 486, 0,
1047  0, 29, 409, 30, 0, 31, 76, 0, 97, 0,
1048  34, 0, 514, 0, 0, 0, 0, 0, 421, 0,
1049  0, 0, 0, 0, 0, 0, 427, 209, 210, 211,
1050  212, 213, 214, 215, 216, 217, 218, 0, 446, 0,
1051  0, 448, 0, 0, 0, 0, 0, 233, 0, 0,
1052  0, 0, 453, 0, 0, 1, 0, 0, 0, 2,
1053  3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1054  467, 468, 469, 470, 0, 0, 0, 0, 0, 4,
1055  0, 0, 0, 0, 0, 0, 491, 0, 0, 0,
1056  0, 0, 492, 0, 5, 6, 496, 0, 7, 8,
1057  498, 9, 0, 10, 11, 12, 13, 14, 15, 0,
1058  16, 0, 0, 17, 0, 0, 18, 19, 20, 21,
1059  0, 22, 0, 23, 24, 2, 3, 0, 0, 0,
1060  0, 25, 26, 0, 0, 0, -176, 27, -265, 28,
1061  29, 0, 30, 0, 31, 4, 0, 32, 33, 34,
1062  -265, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1063  5, 6, 0, 0, 7, 8, 0, 9, 0, 10,
1064  11, 12, 13, 14, 15, 0, 16, 0, 0, 17,
1065  166, 166, 18, 19, 20, 21, 0, 22, 0, 23,
1066  24, 95, 2, 3, 0, 0, 0, 25, 26, 0,
1067  0, 0, -176, 0, 0, 28, 29, 0, 30, 0,
1068  31, 0, 96, 269, 270, 34, 271, 95, 2, 3,
1069  0, 0, 0, 0, 0, 0, 0, 5, 6, 0,
1070  0, 7, 8, 0, 9, 0, 10, 11, 96, 234,
1071  235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
1072  0, 0, 0, 5, 6, 0, 0, 7, 8, 0,
1073  9, 0, 10, 11, 25, 26, 0, 0, 0, 0,
1074  0, 0, 0, 29, 227, 30, 0, 31, 0, 95,
1075  2, 3, 34, 0, 0, 0, 0, 0, 0, 0,
1076  25, 26, 0, 95, 2, 3, 0, 0, 0, 29,
1077  96, 30, 0, 31, 229, 0, 0, 0, 34, 0,
1078  0, 0, 0, 0, 96, 5, 6, 0, 0, 7,
1079  8, 0, 9, 0, 10, 11, 0, 0, 0, 5,
1080  6, 0, 0, 7, 8, 0, 9, 0, 10, 11,
1081  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1082  0, 0, 25, 26, 0, 95, 2, 3, 0, 0,
1083  0, 29, 345, 30, 0, 31, 25, 26, 0, 0,
1084  34, 0, 0, 0, 0, 29, 96, 30, 0, 31,
1085  347, 0, 0, 0, 34, 0, 0, 0, 0, 0,
1086  0, 5, 6, 0, 0, 7, 8, 0, 9, 0,
1087  10, 11, 0, 0, 0, 0, 0, 0, 148, 0,
1088  0, 0, 2, 3, 149, 150, 151, 152, 153, 154,
1089  155, 156, 157, 158, 159, 160, 0, 0, 25, 26,
1090  0, 0, 4, 0, 0, 0, 0, 29, 0, 30,
1091  0, 31, 0, 0, 0, 0, 34, 5, 6, 0,
1092  0, 7, 8, 0, 9, 0, 10, 11, 12, 13,
1093  14, 15, 0, 16, 0, 0, 17, 0, 0, 18,
1094  19, 20, 21, 0, 22, 0, 23, 24, 2, 3,
1095  0, 0, 0, 0, 25, 26, 0, 0, 0, -176,
1096  0, 0, 28, 29, 0, 30, 0, 31, 4, 0,
1097  163, 164, 34, 0, 0, 0, 0, 0, 0, 0,
1098  0, 0, 0, 5, 6, 0, 0, 7, 8, 0,
1099  9, 0, 10, 11, 12, 13, 14, 15, 0, 16,
1100  0, 0, 17, 0, 0, 18, 19, 20, 21, 0,
1101  22, 0, 23, 24, 0, 184, 2, 3, 0, 0,
1102  25, 26, 0, 0, 0, -176, 0, 0, 28, 29,
1103  0, 30, 0, 31, 0, 0, 4, 0, 34, 0,
1104  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1105  0, 5, 6, 0, 0, 7, 8, 0, 9, 0,
1106  10, 11, 12, 13, 14, 15, 0, 16, 0, 0,
1107  17, 0, 0, 18, 19, 20, 21, 0, 22, 0,
1108  23, 24, 2, 3, 0, 0, 0, 0, 25, 26,
1109  0, 0, 0, -176, 0, 0, 28, 29, 0, 30,
1110  0, 31, 4, 0, 0, 0, 34, 0, 0, 0,
1111  0, 0, 0, 0, 0, 0, 0, 5, 6, 0,
1112  0, 7, 8, 0, 9, 0, 10, 11, 12, 13,
1113  14, 15, 0, 16, 0, 0, 17, 0, 0, 18,
1114  19, 20, 21, 0, 22, 0, 23, 24, 2, 3,
1115  0, 0, 0, 0, 25, 26, 0, 0, 0, 0,
1116  0, 0, 28, 29, 0, 30, 0, 31, 4, 2,
1117  3, 0, 34, 0, 0, 0, 0, 0, 0, 0,
1118  0, 0, 0, 5, 6, 0, 0, 7, 8, 4,
1119  9, 0, 10, 11, 0, 0, 0, 0, 0, 0,
1120  0, 0, 0, 0, 5, 6, 0, 0, 7, 8,
1121  0, 9, 0, 10, 11, 0, 0, 0, 0, 0,
1122  25, 26, 0, 0, 0, 2, 3, 0, 0, 29,
1123  0, 30, 0, 31, 0, 0, 0, 0, 72, 0,
1124  0, 25, 26, 0, 0, 4, 2, 3, 0, 0,
1125  29, 0, 30, 0, 31, 0, 0, 0, 0, 34,
1126  5, 6, 0, 0, 7, 8, 4, 9, 0, 10,
1127  11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1128  0, 5, 6, 0, 0, 7, 8, 0, 9, 0,
1129  10, 11, 0, 0, 0, 0, 0, 25, 26, 0,
1130  0, 0, 219, 220, 0, 0, 165, 0, 30, 0,
1131  31, 0, 0, 0, 0, 72, 0, 0, 25, 26,
1132  0, 0, 221, 117, 118, 119, 120, 168, 0, 30,
1133  0, 31, 0, 0, 0, 0, 72, 222, 223, 0,
1134  0, 7, 8, 0, 9, 0, 10, 11, 0, 0,
1135  121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1136  131, 132, 0, 119, 120, 0, 0, 0, 0, 0,
1137  0, 0, 0, 0, 25, 26, 0, 0, 0, 0,
1138  0, 0, 0, 29, 0, 30, 0, 31, 121, 122,
1139  123, 124, 72, 0, 127, 128, 129, 130, 131, 132,
1140  0, 0, 0, 0, 133, -115, 0, 0, 134, 0,
1141  135, -115, -115, -115, -115, -115, -115, -115, -115, -115,
1142  -115, -115, -115, 138, 139, 140, 141, 0, 142, 143,
1143  144, 145, 146, 147, 0, 0, 0, 0, 0, 0,
1144  0, 0, 133, 321, 0, 0, 134, 0, 135, 149,
1145  150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1146  160, 323, 0, 0, 0, 0, 0, 149, 150, 151,
1147  152, 153, 154, 155, 156, 157, 158, 159, 160
1148 };
1149 
1150 static const yytype_int16 yycheck[] =
1151 {
1152  0, 187, 170, 97, 0, 29, 30, 31, 176, 34,
1153  12, 13, 14, 15, 16, 17, 88, 108, 90, 21,
1154  22, 1, 31, 23, 24, 40, 196, 401, 3, 40,
1155  41, 131, 132, 47, 47, 47, 108, 47, 175, 133,
1156  134, 48, 46, 180, 181, 25, 93, 94, 47, 46,
1157  89, 79, 80, 48, 84, 94, 468, 81, 132, 83,
1158  84, 25, 48, 47, 25, 67, 96, 47, 80, 81,
1159  80, 81, 0, 97, 88, 86, 89, 84, 88, 90,
1160  492, 92, 86, 47, 225, 226, 47, 82, 88, 86,
1161  90, 96, 92, 4, 93, 94, 82, 96, 87, 71,
1162  115, 91, 71, 93, 93, 196, 87, 87, 108, 133,
1163  134, 86, 93, 113, 86, 489, 82, 113, 288, 219,
1164  220, 221, 222, 223, 148, 149, 150, 151, 152, 153,
1165  154, 155, 156, 157, 158, 159, 160, 165, 89, 309,
1166  168, 165, 93, 48, 168, 219, 220, 221, 222, 223,
1167  3, 48, 93, 94, 322, 96, 324, 298, 299, 300,
1168  301, 302, 162, 68, 96, 38, 39, 40, 41, 42,
1169  43, 195, 196, 87, 198, 175, 73, 74, 75, 76,
1170  180, 181, 91, 320, 86, 94, 195, 189, 325, 198,
1171  327, 93, 94, 93, 96, 87, 3, 288, 85, 86,
1172  3, 93, 48, 93, 94, 296, 206, 91, 232, 93,
1173  206, 305, 306, 86, 49, 50, 48, 90, 309, 92,
1174  84, 358, 93, 94, 296, 96, 394, 73, 74, 75,
1175  76, 368, 449, 450, 451, 452, 93, 262, 57, 58,
1176  87, 265, 21, 267, 23, 24, 414, 26, 27, 28,
1177  29, 30, 31, 390, 93, 392, 60, 61, 282, 259,
1178  397, 398, 399, 23, 288, 92, 26, 27, 28, 29,
1179  30, 31, 409, 275, 276, 26, 27, 28, 29, 30,
1180  31, 305, 306, 92, 284, 309, 3, 473, 284, 3,
1181  427, 55, 179, 47, 48, 66, 296, 321, 86, 323,
1182  187, 84, 326, 190, 47, 48, 47, 48, 48, 446,
1183  87, 448, 312, 313, 47, 48, 48, 317, 47, 48,
1184  320, 87, 3, 93, 26, 325, 350, 327, 330, 331,
1185  87, 23, 48, 48, 336, 87, 338, 48, 48, 48,
1186  79, 341, 342, 367, 21, 22, 23, 24, 48, 26,
1187  27, 28, 29, 30, 31, 355, 23, 24, 358, 26,
1188  27, 28, 29, 30, 31, 3, 86, 391, 368, 48,
1189  3, 24, 396, 333, 87, 262, 376, 333, 86, 296,
1190  317, 268, 480, 403, 385, 444, 273, 453, 490, 453,
1191  390, 512, 392, 492, 418, 453, 453, 397, 398, 399,
1192  496, 498, 37, 403, -1, 37, -1, -1, -1, 409,
1193  -1, -1, 2, 3, 4, 5, 6, -1, -1, 4,
1194  5, 6, -1, -1, -1, -1, -1, 427, -1, -1,
1195  -1, 318, -1, 435, 436, 437, 438, -1, -1, -1,
1196  25, 328, 329, -1, -1, -1, 446, -1, 448, -1,
1197  -1, -1, -1, -1, -1, 40, 41, -1, -1, 44,
1198  45, -1, 47, -1, 49, 50, -1, 467, -1, 469,
1199  470, -1, -1, 497, 361, 499, 363, -1, -1, -1,
1200  480, -1, 369, 370, -1, -1, -1, 374, 375, -1,
1201  490, -1, 77, 78, -1, -1, 496, -1, 498, -1,
1202  -1, 86, 389, 88, -1, 90, 96, -1, 93, -1,
1203  95, -1, 512, -1, -1, -1, -1, -1, 405, -1,
1204  -1, -1, -1, -1, -1, -1, 413, 117, 118, 119,
1205  120, 121, 122, 123, 124, 125, 126, -1, 425, -1,
1206  -1, 428, -1, -1, -1, -1, -1, 137, -1, -1,
1207  -1, -1, 439, -1, -1, 1, -1, -1, -1, 5,
1208  6, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1209  457, 458, 459, 460, -1, -1, -1, -1, -1, 25,
1210  -1, -1, -1, -1, -1, -1, 473, -1, -1, -1,
1211  -1, -1, 479, -1, 40, 41, 483, -1, 44, 45,
1212  487, 47, -1, 49, 50, 51, 52, 53, 54, -1,
1213  56, -1, -1, 59, -1, -1, 62, 63, 64, 65,
1214  -1, 67, -1, 69, 70, 5, 6, -1, -1, -1,
1215  -1, 77, 78, -1, -1, -1, 82, 83, 84, 85,
1216  86, -1, 88, -1, 90, 25, -1, 93, 94, 95,
1217  96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1218  40, 41, -1, -1, 44, 45, -1, 47, -1, 49,
1219  50, 51, 52, 53, 54, -1, 56, -1, -1, 59,
1220  79, 80, 62, 63, 64, 65, -1, 67, -1, 69,
1221  70, 4, 5, 6, -1, -1, -1, 77, 78, -1,
1222  -1, -1, 82, -1, -1, 85, 86, -1, 88, -1,
1223  90, -1, 25, 93, 94, 95, 96, 4, 5, 6,
1224  -1, -1, -1, -1, -1, -1, -1, 40, 41, -1,
1225  -1, 44, 45, -1, 47, -1, 49, 50, 25, 138,
1226  139, 140, 141, 142, 143, 144, 145, 146, 147, -1,
1227  -1, -1, -1, 40, 41, -1, -1, 44, 45, -1,
1228  47, -1, 49, 50, 77, 78, -1, -1, -1, -1,
1229  -1, -1, -1, 86, 87, 88, -1, 90, -1, 4,
1230  5, 6, 95, -1, -1, -1, -1, -1, -1, -1,
1231  77, 78, -1, 4, 5, 6, -1, -1, -1, 86,
1232  25, 88, -1, 90, 91, -1, -1, -1, 95, -1,
1233  -1, -1, -1, -1, 25, 40, 41, -1, -1, 44,
1234  45, -1, 47, -1, 49, 50, -1, -1, -1, 40,
1235  41, -1, -1, 44, 45, -1, 47, -1, 49, 50,
1236  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1237  -1, -1, 77, 78, -1, 4, 5, 6, -1, -1,
1238  -1, 86, 87, 88, -1, 90, 77, 78, -1, -1,
1239  95, -1, -1, -1, -1, 86, 25, 88, -1, 90,
1240  91, -1, -1, -1, 95, -1, -1, -1, -1, -1,
1241  -1, 40, 41, -1, -1, 44, 45, -1, 47, -1,
1242  49, 50, -1, -1, -1, -1, -1, -1, 3, -1,
1243  -1, -1, 5, 6, 9, 10, 11, 12, 13, 14,
1244  15, 16, 17, 18, 19, 20, -1, -1, 77, 78,
1245  -1, -1, 25, -1, -1, -1, -1, 86, -1, 88,
1246  -1, 90, -1, -1, -1, -1, 95, 40, 41, -1,
1247  -1, 44, 45, -1, 47, -1, 49, 50, 51, 52,
1248  53, 54, -1, 56, -1, -1, 59, -1, -1, 62,
1249  63, 64, 65, -1, 67, -1, 69, 70, 5, 6,
1250  -1, -1, -1, -1, 77, 78, -1, -1, -1, 82,
1251  -1, -1, 85, 86, -1, 88, -1, 90, 25, -1,
1252  93, 94, 95, -1, -1, -1, -1, -1, -1, -1,
1253  -1, -1, -1, 40, 41, -1, -1, 44, 45, -1,
1254  47, -1, 49, 50, 51, 52, 53, 54, -1, 56,
1255  -1, -1, 59, -1, -1, 62, 63, 64, 65, -1,
1256  67, -1, 69, 70, -1, 72, 5, 6, -1, -1,
1257  77, 78, -1, -1, -1, 82, -1, -1, 85, 86,
1258  -1, 88, -1, 90, -1, -1, 25, -1, 95, -1,
1259  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1260  -1, 40, 41, -1, -1, 44, 45, -1, 47, -1,
1261  49, 50, 51, 52, 53, 54, -1, 56, -1, -1,
1262  59, -1, -1, 62, 63, 64, 65, -1, 67, -1,
1263  69, 70, 5, 6, -1, -1, -1, -1, 77, 78,
1264  -1, -1, -1, 82, -1, -1, 85, 86, -1, 88,
1265  -1, 90, 25, -1, -1, -1, 95, -1, -1, -1,
1266  -1, -1, -1, -1, -1, -1, -1, 40, 41, -1,
1267  -1, 44, 45, -1, 47, -1, 49, 50, 51, 52,
1268  53, 54, -1, 56, -1, -1, 59, -1, -1, 62,
1269  63, 64, 65, -1, 67, -1, 69, 70, 5, 6,
1270  -1, -1, -1, -1, 77, 78, -1, -1, -1, -1,
1271  -1, -1, 85, 86, -1, 88, -1, 90, 25, 5,
1272  6, -1, 95, -1, -1, -1, -1, -1, -1, -1,
1273  -1, -1, -1, 40, 41, -1, -1, 44, 45, 25,
1274  47, -1, 49, 50, -1, -1, -1, -1, -1, -1,
1275  -1, -1, -1, -1, 40, 41, -1, -1, 44, 45,
1276  -1, 47, -1, 49, 50, -1, -1, -1, -1, -1,
1277  77, 78, -1, -1, -1, 5, 6, -1, -1, 86,
1278  -1, 88, -1, 90, -1, -1, -1, -1, 95, -1,
1279  -1, 77, 78, -1, -1, 25, 5, 6, -1, -1,
1280  86, -1, 88, -1, 90, -1, -1, -1, -1, 95,
1281  40, 41, -1, -1, 44, 45, 25, 47, -1, 49,
1282  50, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1283  -1, 40, 41, -1, -1, 44, 45, -1, 47, -1,
1284  49, 50, -1, -1, -1, -1, -1, 77, 78, -1,
1285  -1, -1, 5, 6, -1, -1, 86, -1, 88, -1,
1286  90, -1, -1, -1, -1, 95, -1, -1, 77, 78,
1287  -1, -1, 25, 5, 6, 7, 8, 86, -1, 88,
1288  -1, 90, -1, -1, -1, -1, 95, 40, 41, -1,
1289  -1, 44, 45, -1, 47, -1, 49, 50, -1, -1,
1290  32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1291  42, 43, -1, 7, 8, -1, -1, -1, -1, -1,
1292  -1, -1, -1, -1, 77, 78, -1, -1, -1, -1,
1293  -1, -1, -1, 86, -1, 88, -1, 90, 32, 33,
1294  34, 35, 95, -1, 38, 39, 40, 41, 42, 43,
1295  -1, -1, -1, -1, 86, 3, -1, -1, 90, -1,
1296  92, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1297  18, 19, 20, 21, 22, 23, 24, -1, 26, 27,
1298  28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1299  -1, -1, 86, 3, -1, -1, 90, -1, 92, 9,
1300  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1301  20, 3, -1, -1, -1, -1, -1, 9, 10, 11,
1302  12, 13, 14, 15, 16, 17, 18, 19, 20
1303 };
1304 
1305  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1306  symbol of state STATE-NUM. */
1307 static const yytype_uint8 yystos[] =
1308 {
1309  0, 1, 5, 6, 25, 40, 41, 44, 45, 47,
1310  49, 50, 51, 52, 53, 54, 56, 59, 62, 63,
1311  64, 65, 67, 69, 70, 77, 78, 83, 85, 86,
1312  88, 90, 93, 94, 95, 99, 100, 101, 105, 106,
1313  108, 109, 110, 111, 112, 113, 115, 118, 119, 120,
1314  125, 127, 128, 129, 130, 131, 132, 133, 134, 138,
1315  139, 144, 149, 150, 151, 152, 161, 162, 163, 196,
1316  197, 198, 95, 108, 125, 125, 125, 125, 125, 195,
1317  195, 195, 195, 195, 195, 195, 195, 108, 135, 137,
1318  135, 96, 199, 200, 132, 4, 25, 93, 114, 117,
1319  121, 122, 123, 132, 116, 117, 71, 86, 153, 155,
1320  0, 84, 96, 197, 198, 107, 111, 5, 6, 7,
1321  8, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1322  41, 42, 43, 86, 90, 92, 124, 4, 21, 22,
1323  23, 24, 26, 27, 28, 29, 30, 31, 3, 9,
1324  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1325  20, 82, 195, 93, 94, 86, 129, 130, 86, 130,
1326  132, 93, 94, 96, 201, 202, 132, 140, 141, 132,
1327  202, 202, 3, 137, 72, 102, 103, 104, 105, 168,
1328  169, 96, 87, 123, 89, 94, 93, 91, 94, 1,
1329  25, 122, 137, 156, 157, 158, 194, 105, 111, 125,
1330  125, 125, 125, 125, 125, 125, 125, 125, 125, 5,
1331  6, 25, 40, 41, 120, 126, 126, 87, 123, 91,
1332  123, 46, 86, 125, 129, 129, 129, 129, 129, 129,
1333  129, 129, 129, 129, 132, 132, 132, 132, 132, 132,
1334  132, 132, 132, 132, 132, 132, 132, 80, 81, 88,
1335  108, 159, 164, 165, 130, 3, 130, 3, 194, 93,
1336  94, 96, 102, 194, 48, 57, 58, 142, 143, 202,
1337  102, 102, 136, 84, 201, 202, 195, 202, 93, 117,
1338  121, 122, 132, 117, 87, 154, 93, 105, 126, 126,
1339  126, 126, 126, 40, 41, 86, 90, 124, 87, 93,
1340  91, 132, 92, 92, 89, 108, 160, 3, 155, 166,
1341  202, 3, 132, 3, 132, 202, 55, 202, 195, 195,
1342  60, 61, 145, 146, 147, 148, 66, 48, 68, 132,
1343  105, 86, 170, 84, 158, 87, 123, 91, 123, 46,
1344  86, 87, 108, 108, 89, 93, 108, 165, 202, 102,
1345  132, 194, 132, 194, 102, 132, 102, 202, 202, 195,
1346  195, 48, 147, 148, 195, 195, 25, 108, 171, 172,
1347  108, 87, 91, 132, 108, 102, 48, 84, 167, 87,
1348  202, 93, 202, 48, 132, 102, 202, 202, 202, 202,
1349  108, 3, 87, 93, 26, 173, 174, 87, 167, 202,
1350  102, 132, 102, 194, 132, 102, 102, 102, 136, 172,
1351  175, 202, 23, 102, 48, 87, 48, 202, 194, 48,
1352  48, 132, 79, 177, 48, 73, 74, 75, 76, 178,
1353  179, 182, 188, 191, 176, 48, 202, 102, 202, 195,
1354  195, 195, 195, 202, 177, 102, 102, 170, 170, 170,
1355  170, 48, 179, 182, 188, 191, 48, 202, 202, 202,
1356  202, 48, 108, 180, 181, 48, 163, 184, 186, 187,
1357  195, 48, 108, 189, 190, 48, 108, 192, 193, 3,
1358  201, 202, 202, 108, 159, 183, 202, 86, 202, 136,
1359  181, 48, 48, 186, 155, 3, 48, 190, 132, 48,
1360  193, 132, 185, 87, 108, 183
1361 };
1362 
1363  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1364 static const yytype_uint8 yyr1[] =
1365 {
1366  0, 98, 99, 99, 99, 100, 100, 101, 101, 102,
1367  102, 103, 104, 104, 105, 105, 105, 106, 107, 107,
1368  108, 109, 110, 111, 111, 112, 112, 112, 113, 114,
1369  114, 115, 116, 116, 117, 117, 117, 117, 117, 117,
1370  118, 119, 120, 120, 120, 120, 120, 120, 120, 120,
1371  121, 122, 123, 123, 123, 123, 123, 123, 124, 125,
1372  125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
1373  125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
1374  125, 125, 125, 125, 125, 125, 125, 126, 126, 126,
1375  126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
1376  126, 127, 128, 128, 129, 129, 129, 129, 129, 129,
1377  129, 129, 129, 129, 129, 130, 131, 131, 131, 131,
1378  131, 131, 131, 131, 131, 131, 131, 131, 131, 132,
1379  132, 132, 133, 133, 133, 133, 133, 133, 133, 134,
1380  134, 135, 135, 136, 137, 137, 138, 138, 139, 140,
1381  140, 141, 141, 142, 143, 144, 145, 145, 145, 145,
1382  146, 146, 147, 148, 149, 149, 149, 149, 149, 149,
1383  150, 150, 150, 151, 151, 151, 152, 153, 154, 155,
1384  155, 156, 156, 157, 157, 158, 158, 159, 159, 159,
1385  160, 160, 161, 161, 162, 163, 163, 164, 164, 164,
1386  165, 166, 166, 167, 167, 168, 169, 169, 170, 170,
1387  171, 171, 172, 172, 172, 173, 173, 175, 174, 176,
1388  174, 177, 178, 178, 178, 178, 178, 178, 178, 178,
1389  179, 179, 180, 180, 181, 181, 182, 182, 183, 183,
1390  184, 185, 184, 186, 186, 187, 187, 188, 188, 189,
1391  189, 190, 191, 191, 192, 192, 193, 194, 195, 196,
1392  196, 197, 197, 197, 197, 198, 198, 199, 199, 200,
1393  200, 201, 201, 201, 201, 201, 201, 202, 202
1394 };
1395 
1396  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1397 static const yytype_uint8 yyr2[] =
1398 {
1399  0, 2, 2, 2, 1, 1, 2, 1, 3, 0,
1400  1, 2, 1, 3, 1, 1, 1, 2, 1, 2,
1401  1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
1402  3, 3, 1, 3, 0, 1, 1, 2, 2, 3,
1403  2, 4, 1, 1, 1, 1, 1, 1, 1, 3,
1404  1, 1, 1, 1, 1, 3, 3, 3, 1, 1,
1405  2, 2, 3, 4, 3, 4, 2, 2, 3, 5,
1406  2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
1407  3, 3, 3, 3, 3, 3, 3, 1, 2, 2,
1408  3, 4, 3, 4, 3, 5, 2, 2, 2, 2,
1409  2, 1, 1, 3, 1, 3, 3, 3, 3, 3,
1410  3, 3, 3, 3, 3, 1, 3, 3, 3, 3,
1411  3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
1412  1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1413  2, 1, 2, 0, 1, 4, 1, 1, 4, 1,
1414  2, 4, 2, 7, 4, 6, 0, 1, 1, 2,
1415  1, 2, 7, 4, 7, 6, 9, 10, 9, 12,
1416  1, 1, 1, 9, 9, 5, 0, 1, 1, 3,
1417  2, 0, 1, 1, 3, 1, 1, 2, 1, 3,
1418  1, 3, 4, 5, 2, 3, 5, 1, 3, 3,
1419  2, 4, 3, 1, 1, 1, 9, 7, 0, 3,
1420  1, 3, 1, 4, 2, 0, 1, 0, 3, 0,
1421  4, 1, 1, 1, 1, 1, 3, 3, 3, 3,
1422  7, 5, 1, 3, 1, 4, 7, 5, 1, 2,
1423  2, 0, 5, 1, 1, 1, 3, 7, 5, 1,
1424  3, 1, 7, 5, 1, 3, 4, 0, 0, 1,
1425  1, 1, 1, 2, 2, 0, 1, 0, 1, 1,
1426  2, 1, 1, 1, 2, 2, 2, 0, 1
1427 };
1428 
1429 
1430 #define yyerrok (yyerrstatus = 0)
1431 #define yyclearin (yychar = YYEMPTY)
1432 #define YYEMPTY (-2)
1433 #define YYEOF 0
1434 
1435 #define YYACCEPT goto yyacceptlab
1436 #define YYABORT goto yyabortlab
1437 #define YYERROR goto yyerrorlab
1438 
1439 
1440 #define YYRECOVERING() (!!yyerrstatus)
1441 
1442 #define YYBACKUP(Token, Value) \
1443 do \
1444  if (yychar == YYEMPTY) \
1445  { \
1446  yychar = (Token); \
1447  yylval = (Value); \
1448  YYPOPSTACK (yylen); \
1449  yystate = *yyssp; \
1450  goto yybackup; \
1451  } \
1452  else \
1453  { \
1454  yyerror (parser, YY_("syntax error: cannot back up")); \
1455  YYERROR; \
1456  } \
1457 while (0)
1458 
1459 /* Error token number */
1460 #define YYTERROR 1
1461 #define YYERRCODE 256
1462 
1463 
1464 
1465 /* Enable debugging if requested. */
1466 #if OCTAVE_DEBUG
1467 
1468 # ifndef YYFPRINTF
1469 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1470 # define YYFPRINTF fprintf
1471 # endif
1472 
1473 # define YYDPRINTF(Args) \
1474 do { \
1475  if (yydebug) \
1476  YYFPRINTF Args; \
1477 } while (0)
1478 
1479 /* This macro is provided for backward compatibility. */
1480 #ifndef YY_LOCATION_PRINT
1481 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1482 #endif
1483 
1484 
1485 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1486 do { \
1487  if (yydebug) \
1488  { \
1489  YYFPRINTF (stderr, "%s ", Title); \
1490  yy_symbol_print (stderr, \
1491  Type, Value, parser); \
1492  YYFPRINTF (stderr, "\n"); \
1493  } \
1494 } while (0)
1495 
1496 
1497 /*----------------------------------------.
1498 | Print this symbol's value on YYOUTPUT. |
1499 `----------------------------------------*/
1500 
1501 static void
1502 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, octave::base_parser& parser)
1503 {
1504  FILE *yyo = yyoutput;
1505  YYUSE (yyo);
1506  YYUSE (parser);
1507  if (!yyvaluep)
1508  return;
1509 # ifdef YYPRINT
1510  if (yytype < YYNTOKENS)
1511  YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1512 # endif
1513  YYUSE (yytype);
1514 }
1515 
1516 
1517 /*--------------------------------.
1518 | Print this symbol on YYOUTPUT. |
1519 `--------------------------------*/
1520 
1521 static void
1522 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, octave::base_parser& parser)
1523 {
1524  YYFPRINTF (yyoutput, "%s %s (",
1525  yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1526 
1527  yy_symbol_value_print (yyoutput, yytype, yyvaluep, parser);
1528  YYFPRINTF (yyoutput, ")");
1529 }
1530 
1531 /*------------------------------------------------------------------.
1532 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1533 | TOP (included). |
1534 `------------------------------------------------------------------*/
1535 
1536 static void
1537 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1538 {
1539  YYFPRINTF (stderr, "Stack now");
1540  for (; yybottom <= yytop; yybottom++)
1541  {
1542  int yybot = *yybottom;
1543  YYFPRINTF (stderr, " %d", yybot);
1544  }
1545  YYFPRINTF (stderr, "\n");
1546 }
1547 
1548 # define YY_STACK_PRINT(Bottom, Top) \
1549 do { \
1550  if (yydebug) \
1551  yy_stack_print ((Bottom), (Top)); \
1552 } while (0)
1553 
1554 
1555 /*------------------------------------------------.
1556 | Report that the YYRULE is going to be reduced. |
1557 `------------------------------------------------*/
1558 
1559 static void
1560 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, octave::base_parser& parser)
1561 {
1562  unsigned long int yylno = yyrline[yyrule];
1563  int yynrhs = yyr2[yyrule];
1564  int yyi;
1565  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1566  yyrule - 1, yylno);
1567  /* The symbols being reduced. */
1568  for (yyi = 0; yyi < yynrhs; yyi++)
1569  {
1570  YYFPRINTF (stderr, " $%d = ", yyi + 1);
1571  yy_symbol_print (stderr,
1572  yystos[yyssp[yyi + 1 - yynrhs]],
1573  &(yyvsp[(yyi + 1) - (yynrhs)])
1574  , parser);
1575  YYFPRINTF (stderr, "\n");
1576  }
1577 }
1578 
1579 # define YY_REDUCE_PRINT(Rule) \
1580 do { \
1581  if (yydebug) \
1582  yy_reduce_print (yyssp, yyvsp, Rule, parser); \
1583 } while (0)
1584 
1585 /* Nonzero means print parse trace. It is left uninitialized so that
1586  multiple parsers can coexist. */
1587 int yydebug;
1588 #else /* !OCTAVE_DEBUG */
1589 # define YYDPRINTF(Args)
1590 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1591 # define YY_STACK_PRINT(Bottom, Top)
1592 # define YY_REDUCE_PRINT(Rule)
1593 #endif /* !OCTAVE_DEBUG */
1594 
1595 
1596 /* YYINITDEPTH -- initial size of the parser's stacks. */
1597 #ifndef YYINITDEPTH
1598 # define YYINITDEPTH 200
1599 #endif
1600 
1601 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1602  if the built-in stack extension method is used).
1603 
1604  Do not make this value too large; the results are undefined if
1605  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1606  evaluated with infinite-precision integer arithmetic. */
1607 
1608 #ifndef YYMAXDEPTH
1609 # define YYMAXDEPTH 10000
1610 #endif
1611 
1612 
1613 #if YYERROR_VERBOSE
1614 
1615 # ifndef yystrlen
1616 # if defined __GLIBC__ && defined _STRING_H
1617 # define yystrlen strlen
1618 # else
1619 /* Return the length of YYSTR. */
1620 static YYSIZE_T
1621 yystrlen (const char *yystr)
1622 {
1623  YYSIZE_T yylen;
1624  for (yylen = 0; yystr[yylen]; yylen++)
1625  continue;
1626  return yylen;
1627 }
1628 # endif
1629 # endif
1630 
1631 # ifndef yystpcpy
1632 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1633 # define yystpcpy stpcpy
1634 # else
1635 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1636  YYDEST. */
1637 static char *
1638 yystpcpy (char *yydest, const char *yysrc)
1639 {
1640  char *yyd = yydest;
1641  const char *yys = yysrc;
1642 
1643  while ((*yyd++ = *yys++) != '\0')
1644  continue;
1645 
1646  return yyd - 1;
1647 }
1648 # endif
1649 # endif
1650 
1651 # ifndef yytnamerr
1652 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1653  quotes and backslashes, so that it's suitable for yyerror. The
1654  heuristic is that double-quoting is unnecessary unless the string
1655  contains an apostrophe, a comma, or backslash (other than
1656  backslash-backslash). YYSTR is taken from yytname. If YYRES is
1657  null, do not copy; instead, return the length of what the result
1658  would have been. */
1659 static YYSIZE_T
1660 yytnamerr (char *yyres, const char *yystr)
1661 {
1662  if (*yystr == '"')
1663  {
1664  YYSIZE_T yyn = 0;
1665  char const *yyp = yystr;
1666 
1667  for (;;)
1668  switch (*++yyp)
1669  {
1670  case '\'':
1671  case ',':
1672  goto do_not_strip_quotes;
1673 
1674  case '\\':
1675  if (*++yyp != '\\')
1676  goto do_not_strip_quotes;
1677  /* Fall through. */
1678  default:
1679  if (yyres)
1680  yyres[yyn] = *yyp;
1681  yyn++;
1682  break;
1683 
1684  case '"':
1685  if (yyres)
1686  yyres[yyn] = '\0';
1687  return yyn;
1688  }
1689  do_not_strip_quotes: ;
1690  }
1691 
1692  if (! yyres)
1693  return yystrlen (yystr);
1694 
1695  return yystpcpy (yyres, yystr) - yyres;
1696 }
1697 # endif
1698 
1699 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1700  about the unexpected token YYTOKEN for the state stack whose top is
1701  YYSSP.
1702 
1703  Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1704  not large enough to hold the message. In that case, also set
1705  *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1706  required number of bytes is too large to store. */
1707 static int
1708 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1709  yytype_int16 *yyssp, int yytoken)
1710 {
1711  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1712  YYSIZE_T yysize = yysize0;
1713  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1714  /* Internationalized format string. */
1715  const char *yyformat = YY_NULLPTR;
1716  /* Arguments of yyformat. */
1717  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1718  /* Number of reported tokens (one for the "unexpected", one per
1719  "expected"). */
1720  int yycount = 0;
1721 
1722  /* There are many possibilities here to consider:
1723  - If this state is a consistent state with a default action, then
1724  the only way this function was invoked is if the default action
1725  is an error action. In that case, don't check for expected
1726  tokens because there are none.
1727  - The only way there can be no lookahead present (in yychar) is if
1728  this state is a consistent state with a default action. Thus,
1729  detecting the absence of a lookahead is sufficient to determine
1730  that there is no unexpected or expected token to report. In that
1731  case, just report a simple "syntax error".
1732  - Don't assume there isn't a lookahead just because this state is a
1733  consistent state with a default action. There might have been a
1734  previous inconsistent state, consistent state with a non-default
1735  action, or user semantic action that manipulated yychar.
1736  - Of course, the expected token list depends on states to have
1737  correct lookahead information, and it depends on the parser not
1738  to perform extra reductions after fetching a lookahead from the
1739  scanner and before detecting a syntax error. Thus, state merging
1740  (from LALR or IELR) and default reductions corrupt the expected
1741  token list. However, the list is correct for canonical LR with
1742  one exception: it will still contain any token that will not be
1743  accepted due to an error action in a later state.
1744  */
1745  if (yytoken != YYEMPTY)
1746  {
1747  int yyn = yypact[*yyssp];
1748  yyarg[yycount++] = yytname[yytoken];
1749  if (!yypact_value_is_default (yyn))
1750  {
1751  /* Start YYX at -YYN if negative to avoid negative indexes in
1752  YYCHECK. In other words, skip the first -YYN actions for
1753  this state because they are default actions. */
1754  int yyxbegin = yyn < 0 ? -yyn : 0;
1755  /* Stay within bounds of both yycheck and yytname. */
1756  int yychecklim = YYLAST - yyn + 1;
1757  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1758  int yyx;
1759 
1760  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1761  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1762  && !yytable_value_is_error (yytable[yyx + yyn]))
1763  {
1764  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1765  {
1766  yycount = 1;
1767  yysize = yysize0;
1768  break;
1769  }
1770  yyarg[yycount++] = yytname[yyx];
1771  {
1772  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1773  if (! (yysize <= yysize1
1774  && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1775  return 2;
1776  yysize = yysize1;
1777  }
1778  }
1779  }
1780  }
1781 
1782  switch (yycount)
1783  {
1784 # define YYCASE_(N, S) \
1785  case N: \
1786  yyformat = S; \
1787  break
1788  YYCASE_(0, YY_("syntax error"));
1789  YYCASE_(1, YY_("syntax error, unexpected %s"));
1790  YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1791  YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1792  YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1793  YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1794 # undef YYCASE_
1795  }
1796 
1797  {
1798  YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1799  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1800  return 2;
1801  yysize = yysize1;
1802  }
1803 
1804  if (*yymsg_alloc < yysize)
1805  {
1806  *yymsg_alloc = 2 * yysize;
1807  if (! (yysize <= *yymsg_alloc
1808  && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1809  *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1810  return 1;
1811  }
1812 
1813  /* Avoid sprintf, as that infringes on the user's name space.
1814  Don't have undefined behavior even if the translation
1815  produced a string with the wrong number of "%s"s. */
1816  {
1817  char *yyp = *yymsg;
1818  int yyi = 0;
1819  while ((*yyp = *yyformat) != '\0')
1820  if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1821  {
1822  yyp += yytnamerr (yyp, yyarg[yyi++]);
1823  yyformat += 2;
1824  }
1825  else
1826  {
1827  yyp++;
1828  yyformat++;
1829  }
1830  }
1831  return 0;
1832 }
1833 #endif /* YYERROR_VERBOSE */
1834 
1835 /*-----------------------------------------------.
1836 | Release the memory associated to this symbol. |
1837 `-----------------------------------------------*/
1838 
1839 static void
1840 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, octave::base_parser& parser)
1841 {
1842  YYUSE (yyvaluep);
1843  YYUSE (parser);
1844  if (!yymsg)
1845  yymsg = "Deleting";
1846  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1847 
1849  switch (yytype)
1850  {
1851  case 3: /* '=' */
1852 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1853  { }
1854 #line 1855 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1855  break;
1856 
1857  case 4: /* ':' */
1858 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1859  { }
1860 #line 1861 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1861  break;
1862 
1863  case 5: /* '-' */
1864 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1865  { }
1866 #line 1867 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1867  break;
1868 
1869  case 6: /* '+' */
1870 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1871  { }
1872 #line 1873 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1873  break;
1874 
1875  case 7: /* '*' */
1876 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1877  { }
1878 #line 1879 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1879  break;
1880 
1881  case 8: /* '/' */
1882 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1883  { }
1884 #line 1885 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1885  break;
1886 
1887  case 9: /* ADD_EQ */
1888 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1889  { }
1890 #line 1891 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1891  break;
1892 
1893  case 10: /* SUB_EQ */
1894 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1895  { }
1896 #line 1897 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1897  break;
1898 
1899  case 11: /* MUL_EQ */
1900 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1901  { }
1902 #line 1903 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1903  break;
1904 
1905  case 12: /* DIV_EQ */
1906 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1907  { }
1908 #line 1909 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1909  break;
1910 
1911  case 13: /* LEFTDIV_EQ */
1912 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1913  { }
1914 #line 1915 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1915  break;
1916 
1917  case 14: /* POW_EQ */
1918 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1919  { }
1920 #line 1921 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1921  break;
1922 
1923  case 15: /* EMUL_EQ */
1924 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1925  { }
1926 #line 1927 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1927  break;
1928 
1929  case 16: /* EDIV_EQ */
1930 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1931  { }
1932 #line 1933 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1933  break;
1934 
1935  case 17: /* ELEFTDIV_EQ */
1936 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1937  { }
1938 #line 1939 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1939  break;
1940 
1941  case 18: /* EPOW_EQ */
1942 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1943  { }
1944 #line 1945 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1945  break;
1946 
1947  case 19: /* AND_EQ */
1948 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1949  { }
1950 #line 1951 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1951  break;
1952 
1953  case 20: /* OR_EQ */
1954 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1955  { }
1956 #line 1957 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1957  break;
1958 
1959  case 21: /* EXPR_AND_AND */
1960 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1961  { }
1962 #line 1963 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1963  break;
1964 
1965  case 22: /* EXPR_OR_OR */
1966 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1967  { }
1968 #line 1969 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1969  break;
1970 
1971  case 23: /* EXPR_AND */
1972 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1973  { }
1974 #line 1975 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1975  break;
1976 
1977  case 24: /* EXPR_OR */
1978 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1979  { }
1980 #line 1981 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1981  break;
1982 
1983  case 25: /* EXPR_NOT */
1984 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1985  { }
1986 #line 1987 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1987  break;
1988 
1989  case 26: /* EXPR_LT */
1990 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1991  { }
1992 #line 1993 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1993  break;
1994 
1995  case 27: /* EXPR_LE */
1996 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
1997  { }
1998 #line 1999 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
1999  break;
2000 
2001  case 28: /* EXPR_EQ */
2002 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2003  { }
2004 #line 2005 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2005  break;
2006 
2007  case 29: /* EXPR_NE */
2008 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2009  { }
2010 #line 2011 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2011  break;
2012 
2013  case 30: /* EXPR_GE */
2014 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2015  { }
2016 #line 2017 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2017  break;
2018 
2019  case 31: /* EXPR_GT */
2020 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2021  { }
2022 #line 2023 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2023  break;
2024 
2025  case 32: /* LEFTDIV */
2026 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2027  { }
2028 #line 2029 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2029  break;
2030 
2031  case 33: /* EMUL */
2032 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2033  { }
2034 #line 2035 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2035  break;
2036 
2037  case 34: /* EDIV */
2038 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2039  { }
2040 #line 2041 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2041  break;
2042 
2043  case 35: /* ELEFTDIV */
2044 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2045  { }
2046 #line 2047 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2047  break;
2048 
2049  case 36: /* EPLUS */
2050 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2051  { }
2052 #line 2053 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2053  break;
2054 
2055  case 37: /* EMINUS */
2056 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2057  { }
2058 #line 2059 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2059  break;
2060 
2061  case 38: /* HERMITIAN */
2062 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2063  { }
2064 #line 2065 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2065  break;
2066 
2067  case 39: /* TRANSPOSE */
2068 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2069  { }
2070 #line 2071 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2071  break;
2072 
2073  case 40: /* PLUS_PLUS */
2074 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2075  { }
2076 #line 2077 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2077  break;
2078 
2079  case 41: /* MINUS_MINUS */
2080 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2081  { }
2082 #line 2083 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2083  break;
2084 
2085  case 42: /* POW */
2086 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2087  { }
2088 #line 2089 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2089  break;
2090 
2091  case 43: /* EPOW */
2092 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2093  { }
2094 #line 2095 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2095  break;
2096 
2097  case 44: /* NUM */
2098 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2099  { }
2100 #line 2101 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2101  break;
2102 
2103  case 45: /* IMAG_NUM */
2104 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2105  { }
2106 #line 2107 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2107  break;
2108 
2109  case 46: /* STRUCT_ELT */
2110 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2111  { }
2112 #line 2113 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2113  break;
2114 
2115  case 47: /* NAME */
2116 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2117  { }
2118 #line 2119 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2119  break;
2120 
2121  case 48: /* END */
2122 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2123  { }
2124 #line 2125 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2125  break;
2126 
2127  case 49: /* DQ_STRING */
2128 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2129  { }
2130 #line 2131 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2131  break;
2132 
2133  case 50: /* SQ_STRING */
2134 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2135  { }
2136 #line 2137 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2137  break;
2138 
2139  case 51: /* FOR */
2140 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2141  { }
2142 #line 2143 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2143  break;
2144 
2145  case 52: /* PARFOR */
2146 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2147  { }
2148 #line 2149 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2149  break;
2150 
2151  case 53: /* WHILE */
2152 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2153  { }
2154 #line 2155 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2155  break;
2156 
2157  case 54: /* DO */
2158 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2159  { }
2160 #line 2161 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2161  break;
2162 
2163  case 55: /* UNTIL */
2164 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2165  { }
2166 #line 2167 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2167  break;
2168 
2169  case 56: /* IF */
2170 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2171  { }
2172 #line 2173 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2173  break;
2174 
2175  case 57: /* ELSEIF */
2176 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2177  { }
2178 #line 2179 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2179  break;
2180 
2181  case 58: /* ELSE */
2182 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2183  { }
2184 #line 2185 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2185  break;
2186 
2187  case 59: /* SWITCH */
2188 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2189  { }
2190 #line 2191 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2191  break;
2192 
2193  case 60: /* CASE */
2194 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2195  { }
2196 #line 2197 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2197  break;
2198 
2199  case 61: /* OTHERWISE */
2200 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2201  { }
2202 #line 2203 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2203  break;
2204 
2205  case 62: /* BREAK */
2206 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2207  { }
2208 #line 2209 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2209  break;
2210 
2211  case 63: /* CONTINUE */
2212 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2213  { }
2214 #line 2215 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2215  break;
2216 
2217  case 64: /* FUNC_RET */
2218 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2219  { }
2220 #line 2221 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2221  break;
2222 
2223  case 65: /* UNWIND */
2224 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2225  { }
2226 #line 2227 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2227  break;
2228 
2229  case 66: /* CLEANUP */
2230 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2231  { }
2232 #line 2233 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2233  break;
2234 
2235  case 67: /* TRY */
2236 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2237  { }
2238 #line 2239 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2239  break;
2240 
2241  case 68: /* CATCH */
2242 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2243  { }
2244 #line 2245 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2245  break;
2246 
2247  case 69: /* GLOBAL */
2248 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2249  { }
2250 #line 2251 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2251  break;
2252 
2253  case 70: /* PERSISTENT */
2254 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2255  { }
2256 #line 2257 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2257  break;
2258 
2259  case 71: /* FCN_HANDLE */
2260 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2261  { }
2262 #line 2263 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2263  break;
2264 
2265  case 72: /* CLASSDEF */
2266 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2267  { }
2268 #line 2269 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2269  break;
2270 
2271  case 73: /* PROPERTIES */
2272 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2273  { }
2274 #line 2275 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2275  break;
2276 
2277  case 74: /* METHODS */
2278 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2279  { }
2280 #line 2281 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2281  break;
2282 
2283  case 75: /* EVENTS */
2284 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2285  { }
2286 #line 2287 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2287  break;
2288 
2289  case 76: /* ENUMERATION */
2290 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2291  { }
2292 #line 2293 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2293  break;
2294 
2295  case 77: /* METAQUERY */
2296 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2297  { }
2298 #line 2299 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2299  break;
2300 
2301  case 78: /* SUPERCLASSREF */
2302 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2303  { }
2304 #line 2305 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2305  break;
2306 
2307  case 79: /* FQ_IDENT */
2308 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2309  { }
2310 #line 2311 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2311  break;
2312 
2313  case 80: /* GET */
2314 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2315  { }
2316 #line 2317 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2317  break;
2318 
2319  case 81: /* SET */
2320 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2321  { }
2322 #line 2323 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2323  break;
2324 
2325  case 82: /* FCN */
2326 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2327  { }
2328 #line 2329 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2329  break;
2330 
2331  case 83: /* LEXICAL_ERROR */
2332 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2333  { }
2334 #line 2335 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2335  break;
2336 
2337  case 97: /* UNARY */
2338 #line 323 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2339  { }
2340 #line 2341 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2341  break;
2342 
2343  case 99: /* input */
2344 #line 325 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2345  { delete ((*yyvaluep).tree_type); }
2346 #line 2347 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2347  break;
2348 
2349  case 100: /* simple_list */
2350 #line 350 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2351  { delete ((*yyvaluep).tree_statement_list_type); }
2352 #line 2353 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2353  break;
2354 
2355  case 101: /* simple_list1 */
2356 #line 350 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2357  { delete ((*yyvaluep).tree_statement_list_type); }
2358 #line 2359 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2359  break;
2360 
2361  case 102: /* opt_list */
2362 #line 350 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2363  { delete ((*yyvaluep).tree_statement_list_type); }
2364 #line 2365 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2365  break;
2366 
2367  case 103: /* list */
2368 #line 350 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2369  { delete ((*yyvaluep).tree_statement_list_type); }
2370 #line 2371 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2371  break;
2372 
2373  case 104: /* list1 */
2374 #line 350 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2375  { delete ((*yyvaluep).tree_statement_list_type); }
2376 #line 2377 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2377  break;
2378 
2379  case 105: /* statement */
2380 #line 349 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2381  { delete ((*yyvaluep).tree_statement_type); }
2382 #line 2383 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2383  break;
2384 
2385  case 106: /* word_list_cmd */
2386 #line 335 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2387  { delete ((*yyvaluep).tree_index_expression_type); }
2388 #line 2389 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2389  break;
2390 
2391  case 107: /* word_list */
2392 #line 337 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2393  { delete ((*yyvaluep).tree_argument_list_type); }
2394 #line 2395 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2395  break;
2396 
2397  case 108: /* identifier */
2398 #line 334 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2399  { delete ((*yyvaluep).tree_identifier_type); }
2400 #line 2401 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2401  break;
2402 
2403  case 109: /* superclass_identifier */
2404 #line 331 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2405  { delete ((*yyvaluep).tree_funcall_type); }
2406 #line 2407 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2407  break;
2408 
2409  case 110: /* meta_identifier */
2410 #line 331 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2411  { delete ((*yyvaluep).tree_funcall_type); }
2412 #line 2413 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2413  break;
2414 
2415  case 111: /* string */
2416 #line 329 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2417  { delete ((*yyvaluep).tree_constant_type); }
2418 #line 2419 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2419  break;
2420 
2421  case 112: /* constant */
2422 #line 329 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2423  { delete ((*yyvaluep).tree_constant_type); }
2424 #line 2425 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2425  break;
2426 
2427  case 113: /* matrix */
2428 #line 328 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2429  { delete ((*yyvaluep).tree_expression_type); }
2430 #line 2431 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2431  break;
2432 
2433  case 114: /* matrix_rows */
2434 #line 326 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2435  { delete ((*yyvaluep).tree_matrix_type); }
2436 #line 2437 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2437  break;
2438 
2439  case 115: /* cell */
2440 #line 328 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2441  { delete ((*yyvaluep).tree_expression_type); }
2442 #line 2443 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2443  break;
2444 
2445  case 116: /* cell_rows */
2446 #line 327 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2447  { delete ((*yyvaluep).tree_cell_type); }
2448 #line 2449 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2449  break;
2450 
2451  case 117: /* cell_or_matrix_row */
2452 #line 337 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2453  { delete ((*yyvaluep).tree_argument_list_type); }
2454 #line 2455 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2455  break;
2456 
2457  case 118: /* fcn_handle */
2458 #line 330 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2459  { delete ((*yyvaluep).tree_fcn_handle_type); }
2460 #line 2461 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2461  break;
2462 
2463  case 119: /* anon_fcn_handle */
2464 #line 333 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2465  { delete ((*yyvaluep).tree_anon_fcn_handle_type); }
2466 #line 2467 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2467  break;
2468 
2469  case 120: /* primary_expr */
2470 #line 328 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2471  { delete ((*yyvaluep).tree_expression_type); }
2472 #line 2473 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2473  break;
2474 
2475  case 121: /* magic_colon */
2476 #line 329 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2477  { delete ((*yyvaluep).tree_constant_type); }
2478 #line 2479 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2479  break;
2480 
2481  case 122: /* magic_tilde */
2482 #line 334 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2483  { delete ((*yyvaluep).tree_identifier_type); }
2484 #line 2485 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2485  break;
2486 
2487  case 123: /* arg_list */
2488 #line 337 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2489  { delete ((*yyvaluep).tree_argument_list_type); }
2490 #line 2491 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2491  break;
2492 
2493  case 125: /* oper_expr */
2494 #line 328 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2495  { delete ((*yyvaluep).tree_expression_type); }
2496 #line 2497 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2497  break;
2498 
2499  case 126: /* power_expr */
2500 #line 328 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2501  { delete ((*yyvaluep).tree_expression_type); }
2502 #line 2503 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2503  break;
2504 
2505  case 127: /* colon_expr */
2506 #line 328 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2507  { delete ((*yyvaluep).tree_expression_type); }
2508 #line 2509 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2509  break;
2510 
2511  case 128: /* colon_expr1 */
2512 #line 336 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2513  { delete ((*yyvaluep).tree_colon_expression_type); }
2514 #line 2515 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2515  break;
2516 
2517  case 129: /* simple_expr */
2518 #line 328 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2519  { delete ((*yyvaluep).tree_expression_type); }
2520 #line 2521 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2521  break;
2522 
2523  case 130: /* assign_lhs */
2524 #line 337 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2525  { delete ((*yyvaluep).tree_argument_list_type); }
2526 #line 2527 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2527  break;
2528 
2529  case 131: /* assign_expr */
2530 #line 328 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2531  { delete ((*yyvaluep).tree_expression_type); }
2532 #line 2533 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2533  break;
2534 
2535  case 132: /* expression */
2536 #line 328 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2537  { delete ((*yyvaluep).tree_expression_type); }
2538 #line 2539 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2539  break;
2540 
2541  case 133: /* command */
2542 #line 339 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2543  { delete ((*yyvaluep).tree_command_type); }
2544 #line 2545 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2545  break;
2546 
2547  case 134: /* declaration */
2548 #line 348 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2549  { delete ((*yyvaluep).tree_decl_command_type); }
2550 #line 2551 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2551  break;
2552 
2553  case 135: /* decl1 */
2554 #line 347 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2555  { delete ((*yyvaluep).tree_decl_init_list_type); }
2556 #line 2557 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2557  break;
2558 
2559  case 137: /* decl2 */
2560 #line 346 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2561  { delete ((*yyvaluep).tree_decl_elt_type); }
2562 #line 2563 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2563  break;
2564 
2565  case 138: /* select_command */
2566 #line 339 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2567  { delete ((*yyvaluep).tree_command_type); }
2568 #line 2569 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2569  break;
2570 
2571  case 139: /* if_command */
2572 #line 340 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2573  { delete ((*yyvaluep).tree_if_command_type); }
2574 #line 2575 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2575  break;
2576 
2577  case 140: /* if_cmd_list */
2578 #line 342 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2579  { delete ((*yyvaluep).tree_if_command_list_type); }
2580 #line 2581 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2581  break;
2582 
2583  case 141: /* if_cmd_list1 */
2584 #line 342 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2585  { delete ((*yyvaluep).tree_if_command_list_type); }
2586 #line 2587 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2587  break;
2588 
2589  case 142: /* elseif_clause */
2590 #line 341 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2591  { delete ((*yyvaluep).tree_if_clause_type); }
2592 #line 2593 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2593  break;
2594 
2595  case 143: /* else_clause */
2596 #line 341 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2597  { delete ((*yyvaluep).tree_if_clause_type); }
2598 #line 2599 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2599  break;
2600 
2601  case 144: /* switch_command */
2602 #line 343 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2603  { delete ((*yyvaluep).tree_switch_command_type); }
2604 #line 2605 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2605  break;
2606 
2607  case 145: /* case_list */
2608 #line 345 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2609  { delete ((*yyvaluep).tree_switch_case_list_type); }
2610 #line 2611 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2611  break;
2612 
2613  case 146: /* case_list1 */
2614 #line 345 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2615  { delete ((*yyvaluep).tree_switch_case_list_type); }
2616 #line 2617 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2617  break;
2618 
2619  case 147: /* switch_case */
2620 #line 344 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2621  { delete ((*yyvaluep).tree_switch_case_type); }
2622 #line 2623 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2623  break;
2624 
2625  case 148: /* default_case */
2626 #line 344 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2627  { delete ((*yyvaluep).tree_switch_case_type); }
2628 #line 2629 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2629  break;
2630 
2631  case 149: /* loop_command */
2632 #line 339 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2633  { delete ((*yyvaluep).tree_command_type); }
2634 #line 2635 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2635  break;
2636 
2637  case 150: /* jump_command */
2638 #line 339 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2639  { delete ((*yyvaluep).tree_command_type); }
2640 #line 2641 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2641  break;
2642 
2643  case 151: /* except_command */
2644 #line 339 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2645  { delete ((*yyvaluep).tree_command_type); }
2646 #line 2647 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2647  break;
2648 
2649  case 155: /* param_list */
2650 #line 338 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2651  { delete ((*yyvaluep).tree_parameter_list_type); }
2652 #line 2653 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2653  break;
2654 
2655  case 156: /* param_list1 */
2656 #line 338 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2657  { delete ((*yyvaluep).tree_parameter_list_type); }
2658 #line 2659 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2659  break;
2660 
2661  case 157: /* param_list2 */
2662 #line 338 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2663  { delete ((*yyvaluep).tree_parameter_list_type); }
2664 #line 2665 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2665  break;
2666 
2667  case 158: /* param_list_elt */
2668 #line 346 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2669  { delete ((*yyvaluep).tree_decl_elt_type); }
2670 #line 2671 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2671  break;
2672 
2673  case 159: /* return_list */
2674 #line 338 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2675  { delete ((*yyvaluep).tree_parameter_list_type); }
2676 #line 2677 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2677  break;
2678 
2679  case 160: /* return_list1 */
2680 #line 338 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2681  { delete ((*yyvaluep).tree_parameter_list_type); }
2682 #line 2683 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2683  break;
2684 
2685  case 161: /* file */
2686 #line 339 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2687  { delete ((*yyvaluep).tree_command_type); }
2688 #line 2689 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2689  break;
2690 
2691  case 162: /* function_beg */
2692 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2693  { }
2694 #line 2695 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2695  break;
2696 
2697  case 163: /* function */
2698 #line 332 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2699  { delete ((*yyvaluep).tree_function_def_type); }
2700 #line 2701 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2701  break;
2702 
2703  case 164: /* fcn_name */
2704 #line 334 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2705  { delete ((*yyvaluep).tree_identifier_type); }
2706 #line 2707 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2707  break;
2708 
2709  case 165: /* function1 */
2710 #line 351 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2711  { delete ((*yyvaluep).octave_user_function_type); }
2712 #line 2713 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2713  break;
2714 
2715  case 166: /* function2 */
2716 #line 351 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2717  { delete ((*yyvaluep).octave_user_function_type); }
2718 #line 2719 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2719  break;
2720 
2721  case 167: /* function_end */
2722 #line 349 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2723  { delete ((*yyvaluep).tree_statement_type); }
2724 #line 2725 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2725  break;
2726 
2727  case 168: /* classdef_beg */
2728 #line 320 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2729  { }
2730 #line 2731 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2731  break;
2732 
2733  case 169: /* classdef */
2734 #line 353 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2735  { delete ((*yyvaluep).tree_classdef_type); }
2736 #line 2737 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2737  break;
2738 
2739  case 170: /* opt_attr_list */
2740 #line 355 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2741  { delete ((*yyvaluep).tree_classdef_attribute_list_type); }
2742 #line 2743 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2743  break;
2744 
2745  case 171: /* attr_list */
2746 #line 355 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2747  { delete ((*yyvaluep).tree_classdef_attribute_list_type); }
2748 #line 2749 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2749  break;
2750 
2751  case 172: /* attr */
2752 #line 354 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2753  { delete ((*yyvaluep).tree_classdef_attribute_type); }
2754 #line 2755 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2755  break;
2756 
2757  case 173: /* opt_superclass_list */
2758 #line 357 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2759  { delete ((*yyvaluep).tree_classdef_superclass_list_type); }
2760 #line 2761 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2761  break;
2762 
2763  case 174: /* superclass_list */
2764 #line 357 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2765  { delete ((*yyvaluep).tree_classdef_superclass_list_type); }
2766 #line 2767 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2767  break;
2768 
2769  case 177: /* superclass */
2770 #line 356 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2771  { delete ((*yyvaluep).tree_classdef_superclass_type); }
2772 #line 2773 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2773  break;
2774 
2775  case 178: /* class_body */
2776 #line 358 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2777  { delete ((*yyvaluep).tree_classdef_body_type); }
2778 #line 2779 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2779  break;
2780 
2781  case 179: /* properties_block */
2782 #line 361 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2783  { delete ((*yyvaluep).tree_classdef_properties_block_type); }
2784 #line 2785 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2785  break;
2786 
2787  case 180: /* property_list */
2788 #line 360 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2789  { delete ((*yyvaluep).tree_classdef_property_list_type); }
2790 #line 2791 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2791  break;
2792 
2793  case 181: /* class_property */
2794 #line 359 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2795  { delete ((*yyvaluep).tree_classdef_property_type); }
2796 #line 2797 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2797  break;
2798 
2799  case 182: /* methods_block */
2800 #line 363 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2801  { delete ((*yyvaluep).tree_classdef_methods_block_type); }
2802 #line 2803 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2803  break;
2804 
2805  case 183: /* method_decl1 */
2806 #line 351 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2807  { delete ((*yyvaluep).octave_user_function_type); }
2808 #line 2809 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2809  break;
2810 
2811  case 184: /* method_decl */
2812 #line 332 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2813  { delete ((*yyvaluep).tree_function_def_type); }
2814 #line 2815 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2815  break;
2816 
2817  case 186: /* method */
2818 #line 332 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2819  { delete ((*yyvaluep).tree_function_def_type); }
2820 #line 2821 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2821  break;
2822 
2823  case 187: /* methods_list */
2824 #line 362 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2825  { delete ((*yyvaluep).tree_classdef_methods_list_type); }
2826 #line 2827 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2827  break;
2828 
2829  case 188: /* events_block */
2830 #line 366 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2831  { delete ((*yyvaluep).tree_classdef_events_block_type); }
2832 #line 2833 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2833  break;
2834 
2835  case 189: /* events_list */
2836 #line 365 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2837  { delete ((*yyvaluep).tree_classdef_events_list_type); }
2838 #line 2839 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2839  break;
2840 
2841  case 190: /* class_event */
2842 #line 364 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2843  { delete ((*yyvaluep).tree_classdef_event_type); }
2844 #line 2845 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2845  break;
2846 
2847  case 191: /* enum_block */
2848 #line 369 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2849  { delete ((*yyvaluep).tree_classdef_enum_block_type); }
2850 #line 2851 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2851  break;
2852 
2853  case 192: /* enum_list */
2854 #line 368 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2855  { delete ((*yyvaluep).tree_classdef_enum_list_type); }
2856 #line 2857 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2857  break;
2858 
2859  case 193: /* class_enum */
2860 #line 367 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2861  { delete ((*yyvaluep).tree_classdef_enum_type); }
2862 #line 2863 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2863  break;
2864 
2865  case 195: /* stash_comment */
2866 #line 322 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2867  { }
2868 #line 2869 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2869  break;
2870 
2871  case 197: /* sep_no_nl */
2872 #line 321 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2873  { }
2874 #line 2875 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2875  break;
2876 
2877  case 198: /* opt_sep_no_nl */
2878 #line 321 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2879  { }
2880 #line 2881 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2881  break;
2882 
2883  case 199: /* opt_nl */
2884 #line 321 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2885  { }
2886 #line 2887 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2887  break;
2888 
2889  case 200: /* nl */
2890 #line 321 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2891  { }
2892 #line 2893 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2893  break;
2894 
2895  case 201: /* sep */
2896 #line 321 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2897  { }
2898 #line 2899 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2899  break;
2900 
2901  case 202: /* opt_sep */
2902 #line 321 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1257 */
2903  { }
2904 #line 2905 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1257 */
2905  break;
2906 
2907 
2908  default:
2909  break;
2910  }
2912 }
2913 
2914 
2915 
2916 struct yypstate
2917  {
2918  /* Number of syntax errors so far. */
2919  int yynerrs;
2920 
2921  int yystate;
2922  /* Number of tokens to shift before error messages enabled. */
2924 
2925  /* The stacks and their tools:
2926  'yyss': related to states.
2927  'yyvs': related to semantic values.
2928 
2929  Refer to the stacks through separate pointers, to allow yyoverflow
2930  to reallocate them elsewhere. */
2931 
2932  /* The state stack. */
2936 
2937  /* The semantic value stack. */
2941 
2943  /* Used to determine if this is the first time this instance has
2944  been used. */
2945  int yynew;
2946  };
2947 
2948 int
2950 {
2951  return yypull_parse (YY_NULLPTR, parser);
2952 }
2953 
2954 int
2956 {
2957  int yystatus;
2958  yypstate *yyps_local;
2959  int yychar;
2960  YYSTYPE yylval;
2961  if (yyps)
2962  yyps_local = yyps;
2963  else
2964  {
2965  yyps_local = yypstate_new ();
2966  if (!yyps_local)
2967  {
2968  yyerror (parser, YY_("memory exhausted"));
2969  return 2;
2970  }
2971  }
2972  do {
2973  yychar = yylex (&yylval, scanner);
2974  yystatus =
2975  yypush_parse (yyps_local, yychar, &yylval, parser);
2976  } while (yystatus == YYPUSH_MORE);
2977  if (!yyps)
2978  yypstate_delete (yyps_local);
2979  return yystatus;
2980 }
2981 
2982 /* Initialize the parser data structure. */
2983 yypstate *
2985 {
2986  yypstate *yyps;
2987  yyps = (yypstate *) malloc (sizeof *yyps);
2988  if (!yyps)
2989  return YY_NULLPTR;
2990  yyps->yynew = 1;
2991  return yyps;
2992 }
2993 
2994 void
2996 {
2997 #ifndef yyoverflow
2998  /* If the stack was reallocated but the parse did not complete, then the
2999  stack still needs to be freed. */
3000  if (!yyps->yynew && yyps->yyss != yyps->yyssa)
3001  YYSTACK_FREE (yyps->yyss);
3002 #endif
3003  free (yyps);
3004 }
3005 
3006 #define octave_nerrs yyps->octave_nerrs
3007 #define yystate yyps->yystate
3008 #define yyerrstatus yyps->yyerrstatus
3009 #define yyssa yyps->yyssa
3010 #define yyss yyps->yyss
3011 #define yyssp yyps->yyssp
3012 #define yyvsa yyps->yyvsa
3013 #define yyvs yyps->yyvs
3014 #define yyvsp yyps->yyvsp
3015 #define yystacksize yyps->yystacksize
3016 
3017 
3018 /*---------------.
3019 | yypush_parse. |
3020 `---------------*/
3021 
3022 int
3023 yypush_parse (yypstate *yyps, int yypushed_char, YYSTYPE const *yypushed_val, octave::base_parser& parser)
3024 {
3025 /* The lookahead symbol. */
3026 int yychar;
3027 
3028 
3029 /* The semantic value of the lookahead symbol. */
3030 /* Default value used for initialization, for pacifying older GCCs
3031  or non-GCC compilers. */
3032 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3033 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3034 
3035  int yyn;
3036  int yyresult;
3037  /* Lookahead token as an internal (translated) token number. */
3038  int yytoken = 0;
3039  /* The variables used to return semantic value and location from the
3040  action routines. */
3041  YYSTYPE yyval;
3042 
3043 #if YYERROR_VERBOSE
3044  /* Buffer for error messages, and its allocated size. */
3045  char yymsgbuf[128];
3046  char *yymsg = yymsgbuf;
3047  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3048 #endif
3049 
3050 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3051 
3052  /* The number of symbols on the RHS of the reduced rule.
3053  Keep to zero when no symbol should be popped. */
3054  int yylen = 0;
3055 
3056  if (!yyps->yynew)
3057  {
3058  yyn = yypact[yystate];
3059  goto yyread_pushed_token;
3060  }
3061 
3062  yyssp = yyss = yyssa;
3063  yyvsp = yyvs = yyvsa;
3065 
3066  YYDPRINTF ((stderr, "Starting parse\n"));
3067 
3068  yystate = 0;
3069  yyerrstatus = 0;
3070  yynerrs = 0;
3071  yychar = YYEMPTY; /* Cause a token to be read. */
3072  goto yysetstate;
3073 
3074 /*------------------------------------------------------------.
3075 | yynewstate -- Push a new state, which is found in yystate. |
3076 `------------------------------------------------------------*/
3077  yynewstate:
3078  /* In all cases, when you get here, the value and location stacks
3079  have just been pushed. So pushing a state here evens the stacks. */
3080  yyssp++;
3081 
3082  yysetstate:
3083  *yyssp = yystate;
3084 
3085  if (yyss + yystacksize - 1 <= yyssp)
3086  {
3087  /* Get the current used size of the three stacks, in elements. */
3088  YYSIZE_T yysize = yyssp - yyss + 1;
3089 
3090 #ifdef yyoverflow
3091  {
3092  /* Give user a chance to reallocate the stack. Use copies of
3093  these so that the &'s don't force the real ones into
3094  memory. */
3095  YYSTYPE *yyvs1 = yyvs;
3096  yytype_int16 *yyss1 = yyss;
3097 
3098  /* Each stack pointer address is followed by the size of the
3099  data in use in that stack, in bytes. This used to be a
3100  conditional around just the two extra args, but that might
3101  be undefined if yyoverflow is a macro. */
3102  yyoverflow (YY_("memory exhausted"),
3103  &yyss1, yysize * sizeof (*yyssp),
3104  &yyvs1, yysize * sizeof (*yyvsp),
3105  &yystacksize);
3106 
3107  yyss = yyss1;
3108  yyvs = yyvs1;
3109  }
3110 #else /* no yyoverflow */
3111 # ifndef YYSTACK_RELOCATE
3112  goto yyexhaustedlab;
3113 # else
3114  /* Extend the stack our own way. */
3115  if (YYMAXDEPTH <= yystacksize)
3116  goto yyexhaustedlab;
3117  yystacksize *= 2;
3118  if (YYMAXDEPTH < yystacksize)
3120 
3121  {
3122  yytype_int16 *yyss1 = yyss;
3123  union yyalloc *yyptr =
3125  if (! yyptr)
3126  goto yyexhaustedlab;
3127  YYSTACK_RELOCATE (yyss_alloc, yyss);
3129 # undef YYSTACK_RELOCATE
3130  if (yyss1 != yyssa)
3131  YYSTACK_FREE (yyss1);
3132  }
3133 # endif
3134 #endif /* no yyoverflow */
3135 
3136  yyssp = yyss + yysize - 1;
3137  yyvsp = yyvs + yysize - 1;
3138 
3139  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3140  (unsigned long int) yystacksize));
3141 
3142  if (yyss + yystacksize - 1 <= yyssp)
3143  YYABORT;
3144  }
3145 
3146  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3147 
3148  if (yystate == YYFINAL)
3149  YYACCEPT;
3150 
3151  goto yybackup;
3152 
3153 /*-----------.
3154 | yybackup. |
3155 `-----------*/
3156 yybackup:
3157 
3158  /* Do appropriate processing given the current state. Read a
3159  lookahead token if we need one and don't already have one. */
3160 
3161  /* First try to decide what to do without reference to lookahead token. */
3162  yyn = yypact[yystate];
3163  if (yypact_value_is_default (yyn))
3164  goto yydefault;
3165 
3166  /* Not known => get a lookahead token if don't already have one. */
3167 
3168  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3169  if (yychar == YYEMPTY)
3170  {
3171  if (!yyps->yynew)
3172  {
3173  YYDPRINTF ((stderr, "Return for a new token:\n"));
3174  yyresult = YYPUSH_MORE;
3175  goto yypushreturn;
3176  }
3177  yyps->yynew = 0;
3178 yyread_pushed_token:
3179  YYDPRINTF ((stderr, "Reading a token: "));
3180  yychar = yypushed_char;
3181  if (yypushed_val)
3182  yylval = *yypushed_val;
3183  }
3184 
3185  if (yychar <= YYEOF)
3186  {
3187  yychar = yytoken = YYEOF;
3188  YYDPRINTF ((stderr, "Now at end of input.\n"));
3189  }
3190  else
3191  {
3192  yytoken = YYTRANSLATE (yychar);
3193  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3194  }
3195 
3196  /* If the proper action on seeing token YYTOKEN is to reduce or to
3197  detect an error, take that action. */
3198  yyn += yytoken;
3199  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3200  goto yydefault;
3201  yyn = yytable[yyn];
3202  if (yyn <= 0)
3203  {
3204  if (yytable_value_is_error (yyn))
3205  goto yyerrlab;
3206  yyn = -yyn;
3207  goto yyreduce;
3208  }
3209 
3210  /* Count tokens shifted since error; after three, turn off error
3211  status. */
3212  if (yyerrstatus)
3213  yyerrstatus--;
3214 
3215  /* Shift the lookahead token. */
3216  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3217 
3218  /* Discard the shifted token. */
3219  yychar = YYEMPTY;
3220 
3221  yystate = yyn;
3223  *++yyvsp = yylval;
3225 
3226  goto yynewstate;
3227 
3228 
3229 /*-----------------------------------------------------------.
3230 | yydefault -- do the default action for the current state. |
3231 `-----------------------------------------------------------*/
3232 yydefault:
3233  yyn = yydefact[yystate];
3234  if (yyn == 0)
3235  goto yyerrlab;
3236  goto yyreduce;
3237 
3238 
3239 /*-----------------------------.
3240 | yyreduce -- Do a reduction. |
3241 `-----------------------------*/
3242 yyreduce:
3243  /* yyn is the number of a rule to reduce with. */
3244  yylen = yyr2[yyn];
3245 
3246  /* If YYLEN is nonzero, implement the default value of the action:
3247  '$$ = $1'.
3248 
3249  Otherwise, the following line sets YYVAL to garbage.
3250  This behavior is undocumented and Bison
3251  users should not rely upon it. Assigning to YYVAL
3252  unconditionally makes the parser a bit smaller, and it avoids a
3253  GCC warning that YYVAL may be used uninitialized. */
3254  yyval = yyvsp[1-yylen];
3255 
3256 
3257  YY_REDUCE_PRINT (yyn);
3258  switch (yyn)
3259  {
3260  case 2:
3261 #line 390 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3262  {
3263  (yyval.tree_type) = 0;
3264  parser.stmt_list = (yyvsp[-1].tree_statement_list_type);
3265  YYACCEPT;
3266  }
3267 #line 3268 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3268  break;
3269 
3270  case 3:
3271 #line 396 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3272  {
3273  (yyval.tree_type) = 0;
3274  lexer.end_of_input = true;
3275  parser.stmt_list = (yyvsp[-1].tree_statement_list_type);
3276  YYACCEPT;
3277  }
3278 #line 3279 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3279  break;
3280 
3281  case 4:
3282 #line 403 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3283  {
3284  (yyval.tree_type) = 0;
3285  YYABORT;
3286  }
3287 #line 3288 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3288  break;
3289 
3290  case 5:
3291 #line 410 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3292  {
3293  YYUSE ((yyvsp[0].punct_type));
3294 
3295  (yyval.tree_statement_list_type) = 0;
3296  }
3297 #line 3298 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3298  break;
3299 
3300  case 6:
3301 #line 416 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3302  { (yyval.tree_statement_list_type) = parser.set_stmt_print_flag ((yyvsp[-1].tree_statement_list_type), (yyvsp[0].punct_type), false); }
3303 #line 3304 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3304  break;
3305 
3306  case 7:
3307 #line 420 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3308  { (yyval.tree_statement_list_type) = parser.make_statement_list ((yyvsp[0].tree_statement_type)); }
3309 #line 3310 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3310  break;
3311 
3312  case 8:
3313 #line 422 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3314  { (yyval.tree_statement_list_type) = parser.append_statement_list ((yyvsp[-2].tree_statement_list_type), (yyvsp[-1].punct_type), (yyvsp[0].tree_statement_type), false); }
3315 #line 3316 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3316  break;
3317 
3318  case 9:
3319 #line 426 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3320  { (yyval.tree_statement_list_type) = new tree_statement_list (); }
3321 #line 3322 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3322  break;
3323 
3324  case 10:
3325 #line 428 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3326  { (yyval.tree_statement_list_type) = (yyvsp[0].tree_statement_list_type); }
3327 #line 3328 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3328  break;
3329 
3330  case 11:
3331 #line 432 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3332  { (yyval.tree_statement_list_type) = parser.set_stmt_print_flag ((yyvsp[-1].tree_statement_list_type), (yyvsp[0].punct_type), true); }
3333 #line 3334 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3334  break;
3335 
3336  case 12:
3337 #line 436 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3338  { (yyval.tree_statement_list_type) = parser.make_statement_list ((yyvsp[0].tree_statement_type)); }
3339 #line 3340 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3340  break;
3341 
3342  case 13:
3343 #line 438 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3344  { (yyval.tree_statement_list_type) = parser.append_statement_list ((yyvsp[-2].tree_statement_list_type), (yyvsp[-1].punct_type), (yyvsp[0].tree_statement_type), true); }
3345 #line 3346 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3346  break;
3347 
3348  case 14:
3349 #line 442 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3350  { (yyval.tree_statement_type) = parser.make_statement ((yyvsp[0].tree_expression_type)); }
3351 #line 3352 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3352  break;
3353 
3354  case 15:
3355 #line 444 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3356  { (yyval.tree_statement_type) = parser.make_statement ((yyvsp[0].tree_command_type)); }
3357 #line 3358 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3358  break;
3359 
3360  case 16:
3361 #line 446 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3362  { (yyval.tree_statement_type) = parser.make_statement ((yyvsp[0].tree_index_expression_type)); }
3363 #line 3364 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3364  break;
3365 
3366  case 17:
3367 #line 458 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3368  {
3369  (yyval.tree_index_expression_type) = parser.make_index_expression ((yyvsp[-1].tree_identifier_type), (yyvsp[0].tree_argument_list_type), '(');
3370  if (! (yyval.tree_index_expression_type))
3371  {
3372  // make_index_expression deleted $1 and $2.
3373  YYABORT;
3374  }
3375  }
3376 #line 3377 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3377  break;
3378 
3379  case 18:
3380 #line 469 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3381  { (yyval.tree_argument_list_type) = new tree_argument_list ((yyvsp[0].tree_constant_type)); }
3382 #line 3383 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3383  break;
3384 
3385  case 19:
3386 #line 471 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3387  {
3388  (yyvsp[-1].tree_argument_list_type)->append ((yyvsp[0].tree_constant_type));
3389  (yyval.tree_argument_list_type) = (yyvsp[-1].tree_argument_list_type);
3390  }
3391 #line 3392 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3392  break;
3393 
3394  case 20:
3395 #line 482 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3396  {
3397  symbol_table::symbol_record *sr = (yyvsp[0].tok_val)->sym_rec ();
3398  (yyval.tree_identifier_type) = new tree_identifier (*sr, (yyvsp[0].tok_val)->line (), (yyvsp[0].tok_val)->column ());
3399  }
3400 #line 3401 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3401  break;
3402 
3403  case 21:
3404 #line 490 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3405  {
3406  std::string method_nm = (yyvsp[0].tok_val)->superclass_method_name ();
3407  std::string class_nm = (yyvsp[0].tok_val)->superclass_class_name ();
3408 
3409  (yyval.tree_funcall_type) = parser.make_superclass_ref (method_nm, class_nm);
3410  }
3411 #line 3412 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3412  break;
3413 
3414  case 22:
3415 #line 499 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3416  {
3417  std::string class_nm = (yyvsp[0].tok_val)->text ();
3418 
3419  (yyval.tree_funcall_type) = parser.make_meta_class_query (class_nm);
3420  }
3421 #line 3422 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3422  break;
3423 
3424  case 23:
3425 #line 507 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3426  { (yyval.tree_constant_type) = parser.make_constant (DQ_STRING, (yyvsp[0].tok_val)); }
3427 #line 3428 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3428  break;
3429 
3430  case 24:
3431 #line 509 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3432  { (yyval.tree_constant_type) = parser.make_constant (SQ_STRING, (yyvsp[0].tok_val)); }
3433 #line 3434 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3434  break;
3435 
3436  case 25:
3437 #line 513 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3438  { (yyval.tree_constant_type) = parser.make_constant (NUM, (yyvsp[0].tok_val)); }
3439 #line 3440 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3440  break;
3441 
3442  case 26:
3443 #line 515 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3444  { (yyval.tree_constant_type) = parser.make_constant (IMAG_NUM, (yyvsp[0].tok_val)); }
3445 #line 3446 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3446  break;
3447 
3448  case 27:
3449 #line 517 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3450  { (yyval.tree_constant_type) = (yyvsp[0].tree_constant_type); }
3451 #line 3452 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3452  break;
3453 
3454  case 28:
3455 #line 521 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3456  { (yyval.tree_expression_type) = parser.finish_matrix ((yyvsp[-1].tree_matrix_type)); }
3457 #line 3458 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3458  break;
3459 
3460  case 29:
3461 #line 525 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3462  { (yyval.tree_matrix_type) = (yyvsp[0].tree_argument_list_type) ? new tree_matrix ((yyvsp[0].tree_argument_list_type)) : 0; }
3463 #line 3464 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3464  break;
3465 
3466  case 30:
3467 #line 527 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3468  {
3469  if ((yyvsp[-2].tree_matrix_type))
3470  {
3471  if ((yyvsp[0].tree_argument_list_type))
3472  (yyvsp[-2].tree_matrix_type)->append ((yyvsp[0].tree_argument_list_type));
3473 
3474  (yyval.tree_matrix_type) = (yyvsp[-2].tree_matrix_type);
3475  }
3476  else
3477  (yyval.tree_matrix_type) = (yyvsp[0].tree_argument_list_type) ? new tree_matrix ((yyvsp[0].tree_argument_list_type)) : 0;
3478  }
3479 #line 3480 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3480  break;
3481 
3482  case 31:
3483 #line 541 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3484  { (yyval.tree_expression_type) = parser.finish_cell ((yyvsp[-1].tree_cell_type)); }
3485 #line 3486 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3486  break;
3487 
3488  case 32:
3489 #line 545 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3490  { (yyval.tree_cell_type) = (yyvsp[0].tree_argument_list_type) ? new tree_cell ((yyvsp[0].tree_argument_list_type)) : 0; }
3491 #line 3492 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3492  break;
3493 
3494  case 33:
3495 #line 547 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3496  {
3497  if ((yyvsp[-2].tree_cell_type))
3498  {
3499  if ((yyvsp[0].tree_argument_list_type))
3500  (yyvsp[-2].tree_cell_type)->append ((yyvsp[0].tree_argument_list_type));
3501 
3502  (yyval.tree_cell_type) = (yyvsp[-2].tree_cell_type);
3503  }
3504  else
3505  (yyval.tree_cell_type) = (yyvsp[0].tree_argument_list_type) ? new tree_cell ((yyvsp[0].tree_argument_list_type)) : 0;
3506  }
3507 #line 3508 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3508  break;
3509 
3510  case 34:
3511 #line 565 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3512  { (yyval.tree_argument_list_type) = 0; }
3513 #line 3514 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3514  break;
3515 
3516  case 35:
3517 #line 567 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3518  { (yyval.tree_argument_list_type) = 0; }
3519 #line 3520 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3520  break;
3521 
3522  case 36:
3523 #line 569 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3524  { (yyval.tree_argument_list_type) = (yyvsp[0].tree_argument_list_type); }
3525 #line 3526 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3526  break;
3527 
3528  case 37:
3529 #line 571 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3530  { (yyval.tree_argument_list_type) = (yyvsp[-1].tree_argument_list_type); }
3531 #line 3532 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3532  break;
3533 
3534  case 38:
3535 #line 573 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3536  { (yyval.tree_argument_list_type) = (yyvsp[0].tree_argument_list_type); }
3537 #line 3538 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3538  break;
3539 
3540  case 39:
3541 #line 575 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3542  { (yyval.tree_argument_list_type) = (yyvsp[-1].tree_argument_list_type); }
3543 #line 3544 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3544  break;
3545 
3546  case 40:
3547 #line 579 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3548  {
3549  (yyval.tree_fcn_handle_type) = parser.make_fcn_handle ((yyvsp[0].tok_val));
3550  lexer.looking_at_function_handle--;
3551  }
3552 #line 3553 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3553  break;
3554 
3555  case 41:
3556 #line 586 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3557  {
3558  (yyval.tree_anon_fcn_handle_type) = parser.make_anon_fcn_handle ((yyvsp[-2].tree_parameter_list_type), (yyvsp[0].tree_statement_type));
3559  lexer.nesting_level.remove ();
3560  }
3561 #line 3562 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3562  break;
3563 
3564  case 42:
3565 #line 593 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3566  { (yyval.tree_expression_type) = (yyvsp[0].tree_identifier_type); }
3567 #line 3568 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3568  break;
3569 
3570  case 43:
3571 #line 595 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3572  { (yyval.tree_expression_type) = (yyvsp[0].tree_constant_type); }
3573 #line 3574 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3574  break;
3575 
3576  case 44:
3577 #line 597 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3578  { (yyval.tree_expression_type) = (yyvsp[0].tree_fcn_handle_type); }
3579 #line 3580 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3580  break;
3581 
3582  case 45:
3583 #line 599 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3584  {
3585  lexer.looking_at_matrix_or_assign_lhs = false;
3586  (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
3587  }
3588 #line 3589 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3589  break;
3590 
3591  case 46:
3592 #line 604 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3593  { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
3594 #line 3595 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3595  break;
3596 
3597  case 47:
3598 #line 606 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3599  { (yyval.tree_expression_type) = (yyvsp[0].tree_funcall_type); }
3600 #line 3601 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3601  break;
3602 
3603  case 48:
3604 #line 608 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3605  { (yyval.tree_expression_type) = (yyvsp[0].tree_funcall_type); }
3606 #line 3607 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3607  break;
3608 
3609  case 49:
3610 #line 610 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3611  { (yyval.tree_expression_type) = (yyvsp[-1].tree_expression_type)->mark_in_parens (); }
3612 #line 3613 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3613  break;
3614 
3615  case 50:
3616 #line 614 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3617  {
3618  YYUSE ((yyvsp[0].tok_val));
3619 
3621  (yyval.tree_constant_type) = new tree_constant (tmp);
3622  }
3623 #line 3624 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3624  break;
3625 
3626  case 51:
3627 #line 623 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3628  {
3629  YYUSE ((yyvsp[0].tok_val));
3630 
3631  (yyval.tree_identifier_type) = new tree_black_hole ();
3632  }
3633 #line 3634 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3634  break;
3635 
3636  case 52:
3637 #line 631 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3638  { (yyval.tree_argument_list_type) = new tree_argument_list ((yyvsp[0].tree_expression_type)); }
3639 #line 3640 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3640  break;
3641 
3642  case 53:
3643 #line 633 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3644  { (yyval.tree_argument_list_type) = new tree_argument_list ((yyvsp[0].tree_constant_type)); }
3645 #line 3646 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3646  break;
3647 
3648  case 54:
3649 #line 635 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3650  { (yyval.tree_argument_list_type) = new tree_argument_list ((yyvsp[0].tree_identifier_type)); }
3651 #line 3652 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3652  break;
3653 
3654  case 55:
3655 #line 637 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3656  {
3657  (yyvsp[-2].tree_argument_list_type)->append ((yyvsp[0].tree_constant_type));
3658  (yyval.tree_argument_list_type) = (yyvsp[-2].tree_argument_list_type);
3659  }
3660 #line 3661 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3661  break;
3662 
3663  case 56:
3664 #line 642 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3665  {
3666  (yyvsp[-2].tree_argument_list_type)->append ((yyvsp[0].tree_identifier_type));
3667  (yyval.tree_argument_list_type) = (yyvsp[-2].tree_argument_list_type);
3668  }
3669 #line 3670 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3670  break;
3671 
3672  case 57:
3673 #line 647 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3674  {
3675  (yyvsp[-2].tree_argument_list_type)->append ((yyvsp[0].tree_expression_type));
3676  (yyval.tree_argument_list_type) = (yyvsp[-2].tree_argument_list_type);
3677  }
3678 #line 3679 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3679  break;
3680 
3681  case 58:
3682 #line 654 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3683  {
3684  (yyval.dummy_type) = 0;
3685  lexer.looking_at_indirect_ref = true;
3686  }
3687 #line 3688 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3688  break;
3689 
3690  case 59:
3691 #line 661 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3692  { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
3693 #line 3694 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3694  break;
3695 
3696  case 60:
3697 #line 663 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3698  { (yyval.tree_expression_type) = parser.make_postfix_op (PLUS_PLUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3699 #line 3700 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3700  break;
3701 
3702  case 61:
3703 #line 665 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3704  { (yyval.tree_expression_type) = parser.make_postfix_op (MINUS_MINUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3705 #line 3706 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3706  break;
3707 
3708  case 62:
3709 #line 667 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3710  {
3711  (yyval.tree_expression_type) = parser.make_index_expression ((yyvsp[-2].tree_expression_type), 0, '(');
3712  if (! (yyval.tree_expression_type))
3713  {
3714  // make_index_expression deleted $1.
3715  YYABORT;
3716  }
3717  }
3718 #line 3719 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3719  break;
3720 
3721  case 63:
3722 #line 676 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3723  {
3724  (yyval.tree_expression_type) = parser.make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type), '(');
3725  if (! (yyval.tree_expression_type))
3726  {
3727  // make_index_expression deleted $1 and $3.
3728  YYABORT;
3729  }
3730  }
3731 #line 3732 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3732  break;
3733 
3734  case 64:
3735 #line 685 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3736  {
3737  (yyval.tree_expression_type) = parser.make_index_expression ((yyvsp[-2].tree_expression_type), 0, '{');
3738  if (! (yyval.tree_expression_type))
3739  {
3740  // make_index_expression deleted $1.
3741  YYABORT;
3742  }
3743  }
3744 #line 3745 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3745  break;
3746 
3747  case 65:
3748 #line 694 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3749  {
3750  (yyval.tree_expression_type) = parser.make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type), '{');
3751  if (! (yyval.tree_expression_type))
3752  {
3753  // make_index_expression deleted $1 and $3.
3754  YYABORT;
3755  }
3756  }
3757 #line 3758 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3758  break;
3759 
3760  case 66:
3761 #line 703 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3762  { (yyval.tree_expression_type) = parser.make_postfix_op (HERMITIAN, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3763 #line 3764 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3764  break;
3765 
3766  case 67:
3767 #line 705 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3768  { (yyval.tree_expression_type) = parser.make_postfix_op (TRANSPOSE, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3769 #line 3770 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3770  break;
3771 
3772  case 68:
3773 #line 707 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3774  { (yyval.tree_expression_type) = parser.make_indirect_ref ((yyvsp[-2].tree_expression_type), (yyvsp[0].tok_val)->text ()); }
3775 #line 3776 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3776  break;
3777 
3778  case 69:
3779 #line 709 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3780  { (yyval.tree_expression_type) = parser.make_indirect_ref ((yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_expression_type)); }
3781 #line 3782 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3782  break;
3783 
3784  case 70:
3785 #line 711 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3786  { (yyval.tree_expression_type) = parser.make_prefix_op (PLUS_PLUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3787 #line 3788 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3788  break;
3789 
3790  case 71:
3791 #line 713 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3792  { (yyval.tree_expression_type) = parser.make_prefix_op (MINUS_MINUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3793 #line 3794 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3794  break;
3795 
3796  case 72:
3797 #line 715 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3798  { (yyval.tree_expression_type) = parser.make_prefix_op (EXPR_NOT, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3799 #line 3800 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3800  break;
3801 
3802  case 73:
3803 #line 717 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3804  { (yyval.tree_expression_type) = parser.make_prefix_op ('+', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3805 #line 3806 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3806  break;
3807 
3808  case 74:
3809 #line 719 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3810  { (yyval.tree_expression_type) = parser.make_prefix_op ('-', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3811 #line 3812 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3812  break;
3813 
3814  case 75:
3815 #line 721 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3816  { (yyval.tree_expression_type) = parser.make_binary_op (POW, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3817 #line 3818 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3818  break;
3819 
3820  case 76:
3821 #line 723 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3822  { (yyval.tree_expression_type) = parser.make_binary_op (EPOW, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3823 #line 3824 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3824  break;
3825 
3826  case 77:
3827 #line 725 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3828  { (yyval.tree_expression_type) = parser.make_binary_op ('+', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3829 #line 3830 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3830  break;
3831 
3832  case 78:
3833 #line 727 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3834  { (yyval.tree_expression_type) = parser.make_binary_op ('-', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3835 #line 3836 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3836  break;
3837 
3838  case 79:
3839 #line 729 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3840  { (yyval.tree_expression_type) = parser.make_binary_op ('*', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3841 #line 3842 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3842  break;
3843 
3844  case 80:
3845 #line 731 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3846  { (yyval.tree_expression_type) = parser.make_binary_op ('/', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3847 #line 3848 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3848  break;
3849 
3850  case 81:
3851 #line 733 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3852  { (yyval.tree_expression_type) = parser.make_binary_op ('+', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3853 #line 3854 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3854  break;
3855 
3856  case 82:
3857 #line 735 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3858  { (yyval.tree_expression_type) = parser.make_binary_op ('-', (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3859 #line 3860 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3860  break;
3861 
3862  case 83:
3863 #line 737 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3864  { (yyval.tree_expression_type) = parser.make_binary_op (EMUL, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3865 #line 3866 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3866  break;
3867 
3868  case 84:
3869 #line 739 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3870  { (yyval.tree_expression_type) = parser.make_binary_op (EDIV, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3871 #line 3872 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3872  break;
3873 
3874  case 85:
3875 #line 741 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3876  { (yyval.tree_expression_type) = parser.make_binary_op (LEFTDIV, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3877 #line 3878 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3878  break;
3879 
3880  case 86:
3881 #line 743 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3882  { (yyval.tree_expression_type) = parser.make_binary_op (ELEFTDIV, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
3883 #line 3884 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3884  break;
3885 
3886  case 87:
3887 #line 747 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3888  { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
3889 #line 3890 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3890  break;
3891 
3892  case 88:
3893 #line 749 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3894  { (yyval.tree_expression_type) = parser.make_postfix_op (PLUS_PLUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3895 #line 3896 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3896  break;
3897 
3898  case 89:
3899 #line 751 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3900  { (yyval.tree_expression_type) = parser.make_postfix_op (MINUS_MINUS, (yyvsp[-1].tree_expression_type), (yyvsp[0].tok_val)); }
3901 #line 3902 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3902  break;
3903 
3904  case 90:
3905 #line 753 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3906  {
3907  (yyval.tree_expression_type) = parser.make_index_expression ((yyvsp[-2].tree_expression_type), 0, '(');
3908  if (! (yyval.tree_expression_type))
3909  {
3910  // make_index_expression deleted $1.
3911  YYABORT;
3912  }
3913  }
3914 #line 3915 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3915  break;
3916 
3917  case 91:
3918 #line 762 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3919  {
3920  (yyval.tree_expression_type) = parser.make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type), '(');
3921  if (! (yyval.tree_expression_type))
3922  {
3923  // make_index_expression deleted $1 and $3.
3924  YYABORT;
3925  }
3926  }
3927 #line 3928 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3928  break;
3929 
3930  case 92:
3931 #line 771 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3932  {
3933  (yyval.tree_expression_type) = parser.make_index_expression ((yyvsp[-2].tree_expression_type), 0, '{');
3934  if (! (yyval.tree_expression_type))
3935  {
3936  // make_index_expression deleted $1.
3937  YYABORT;
3938  }
3939  }
3940 #line 3941 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3941  break;
3942 
3943  case 93:
3944 #line 780 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3945  {
3946  (yyval.tree_expression_type) = parser.make_index_expression ((yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_argument_list_type), '{');
3947  if (! (yyval.tree_expression_type))
3948  {
3949  // make_index_expression deleted $1 and $3.
3950  YYABORT;
3951  }
3952  }
3953 #line 3954 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3954  break;
3955 
3956  case 94:
3957 #line 789 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3958  { (yyval.tree_expression_type) = parser.make_indirect_ref ((yyvsp[-2].tree_expression_type), (yyvsp[0].tok_val)->text ()); }
3959 #line 3960 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3960  break;
3961 
3962  case 95:
3963 #line 791 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3964  { (yyval.tree_expression_type) = parser.make_indirect_ref ((yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_expression_type)); }
3965 #line 3966 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3966  break;
3967 
3968  case 96:
3969 #line 793 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3970  { (yyval.tree_expression_type) = parser.make_prefix_op (PLUS_PLUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3971 #line 3972 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3972  break;
3973 
3974  case 97:
3975 #line 795 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3976  { (yyval.tree_expression_type) = parser.make_prefix_op (MINUS_MINUS, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3977 #line 3978 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3978  break;
3979 
3980  case 98:
3981 #line 797 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3982  { (yyval.tree_expression_type) = parser.make_prefix_op (EXPR_NOT, (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3983 #line 3984 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3984  break;
3985 
3986  case 99:
3987 #line 799 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3988  { (yyval.tree_expression_type) = parser.make_prefix_op ('+', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3989 #line 3990 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3990  break;
3991 
3992  case 100:
3993 #line 801 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
3994  { (yyval.tree_expression_type) = parser.make_prefix_op ('-', (yyvsp[0].tree_expression_type), (yyvsp[-1].tok_val)); }
3995 #line 3996 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
3996  break;
3997 
3998  case 101:
3999 #line 805 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4000  { (yyval.tree_expression_type) = parser.finish_colon_expression ((yyvsp[0].tree_colon_expression_type)); }
4001 #line 4002 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4002  break;
4003 
4004  case 102:
4005 #line 809 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4006  { (yyval.tree_colon_expression_type) = new tree_colon_expression ((yyvsp[0].tree_expression_type)); }
4007 #line 4008 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4008  break;
4009 
4010  case 103:
4011 #line 811 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4012  {
4013  YYUSE ((yyvsp[-1].tok_val));
4014 
4015  if (! ((yyval.tree_colon_expression_type) = (yyvsp[-2].tree_colon_expression_type)->append ((yyvsp[0].tree_expression_type))))
4016  {
4017  delete (yyvsp[-2].tree_colon_expression_type);
4018  delete (yyvsp[0].tree_expression_type);
4019  YYABORT;
4020  }
4021  }
4022 #line 4023 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4023  break;
4024 
4025  case 104:
4026 #line 824 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4027  { (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type); }
4028 #line 4029 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4029  break;
4030 
4031  case 105:
4032 #line 826 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4033  { (yyval.tree_expression_type) = parser.make_binary_op (EXPR_LT, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4034 #line 4035 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4035  break;
4036 
4037  case 106:
4038 #line 828 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4039  { (yyval.tree_expression_type) = parser.make_binary_op (EXPR_LE, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4040 #line 4041 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4041  break;
4042 
4043  case 107:
4044 #line 830 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4045  { (yyval.tree_expression_type) = parser.make_binary_op (EXPR_EQ, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4046 #line 4047 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4047  break;
4048 
4049  case 108:
4050 #line 832 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4051  { (yyval.tree_expression_type) = parser.make_binary_op (EXPR_GE, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4052 #line 4053 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4053  break;
4054 
4055  case 109:
4056 #line 834 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4057  { (yyval.tree_expression_type) = parser.make_binary_op (EXPR_GT, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4058 #line 4059 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4059  break;
4060 
4061  case 110:
4062 #line 836 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4063  { (yyval.tree_expression_type) = parser.make_binary_op (EXPR_NE, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4064 #line 4065 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4065  break;
4066 
4067  case 111:
4068 #line 838 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4069  { (yyval.tree_expression_type) = parser.make_binary_op (EXPR_AND, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4070 #line 4071 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4071  break;
4072 
4073  case 112:
4074 #line 840 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4075  { (yyval.tree_expression_type) = parser.make_binary_op (EXPR_OR, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4076 #line 4077 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4077  break;
4078 
4079  case 113:
4080 #line 842 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4081  { (yyval.tree_expression_type) = parser.make_boolean_op (EXPR_AND_AND, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4082 #line 4083 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4083  break;
4084 
4085  case 114:
4086 #line 844 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4087  { (yyval.tree_expression_type) = parser.make_boolean_op (EXPR_OR_OR, (yyvsp[-2].tree_expression_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4088 #line 4089 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4089  break;
4090 
4091  case 115:
4092 #line 848 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4093  {
4094  (yyval.tree_argument_list_type) = parser.validate_matrix_for_assignment ((yyvsp[0].tree_expression_type));
4095 
4096  if ((yyval.tree_argument_list_type))
4097  { lexer.looking_at_matrix_or_assign_lhs = false; }
4098  else
4099  {
4100  // validate_matrix_for_assignment deleted $1.
4101  YYABORT;
4102  }
4103  }
4104 #line 4105 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4105  break;
4106 
4107  case 116:
4108 #line 862 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4109  { (yyval.tree_expression_type) = parser.make_assign_op ('=', (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4110 #line 4111 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4111  break;
4112 
4113  case 117:
4114 #line 864 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4115  { (yyval.tree_expression_type) = parser.make_assign_op (ADD_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4116 #line 4117 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4117  break;
4118 
4119  case 118:
4120 #line 866 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4121  { (yyval.tree_expression_type) = parser.make_assign_op (SUB_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4122 #line 4123 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4123  break;
4124 
4125  case 119:
4126 #line 868 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4127  { (yyval.tree_expression_type) = parser.make_assign_op (MUL_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4128 #line 4129 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4129  break;
4130 
4131  case 120:
4132 #line 870 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4133  { (yyval.tree_expression_type) = parser.make_assign_op (DIV_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4134 #line 4135 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4135  break;
4136 
4137  case 121:
4138 #line 872 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4139  { (yyval.tree_expression_type) = parser.make_assign_op (LEFTDIV_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4140 #line 4141 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4141  break;
4142 
4143  case 122:
4144 #line 874 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4145  { (yyval.tree_expression_type) = parser.make_assign_op (POW_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4146 #line 4147 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4147  break;
4148 
4149  case 123:
4150 #line 876 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4151  { (yyval.tree_expression_type) = parser.make_assign_op (EMUL_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4152 #line 4153 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4153  break;
4154 
4155  case 124:
4156 #line 878 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4157  { (yyval.tree_expression_type) = parser.make_assign_op (EDIV_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4158 #line 4159 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4159  break;
4160 
4161  case 125:
4162 #line 880 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4163  { (yyval.tree_expression_type) = parser.make_assign_op (ELEFTDIV_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4164 #line 4165 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4165  break;
4166 
4167  case 126:
4168 #line 882 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4169  { (yyval.tree_expression_type) = parser.make_assign_op (EPOW_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4170 #line 4171 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4171  break;
4172 
4173  case 127:
4174 #line 884 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4175  { (yyval.tree_expression_type) = parser.make_assign_op (AND_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4176 #line 4177 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4177  break;
4178 
4179  case 128:
4180 #line 886 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4181  { (yyval.tree_expression_type) = parser.make_assign_op (OR_EQ, (yyvsp[-2].tree_argument_list_type), (yyvsp[-1].tok_val), (yyvsp[0].tree_expression_type)); }
4182 #line 4183 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4183  break;
4184 
4185  case 129:
4186 #line 890 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4187  {
4188  if ((yyvsp[0].tree_expression_type) && ((yyvsp[0].tree_expression_type)->is_matrix () || (yyvsp[0].tree_expression_type)->is_cell ()))
4189  {
4190  if (parser.validate_array_list ((yyvsp[0].tree_expression_type)))
4191  (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
4192  else
4193  {
4194  delete (yyvsp[0].tree_expression_type);
4195  YYABORT;
4196  }
4197  }
4198  else
4199  (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
4200  }
4201 #line 4202 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4202  break;
4203 
4204  case 130:
4205 #line 905 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4206  {
4207  if (! (yyvsp[0].tree_expression_type))
4208  YYABORT;
4209 
4210  (yyval.tree_expression_type) = (yyvsp[0].tree_expression_type);
4211  }
4212 #line 4213 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4213  break;
4214 
4215  case 131:
4216 #line 912 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4217  { (yyval.tree_expression_type) = (yyvsp[0].tree_anon_fcn_handle_type); }
4218 #line 4219 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4219  break;
4220 
4221  case 132:
4222 #line 920 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4223  { (yyval.tree_command_type) = (yyvsp[0].tree_decl_command_type); }
4224 #line 4225 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4225  break;
4226 
4227  case 133:
4228 #line 922 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4229  { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4230 #line 4231 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4231  break;
4232 
4233  case 134:
4234 #line 924 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4235  { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4236 #line 4237 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4237  break;
4238 
4239  case 135:
4240 #line 926 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4241  { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4242 #line 4243 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4243  break;
4244 
4245  case 136:
4246 #line 928 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4247  { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4248 #line 4249 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4249  break;
4250 
4251  case 137:
4252 #line 930 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4253  { (yyval.tree_command_type) = (yyvsp[0].tree_function_def_type); }
4254 #line 4255 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4255  break;
4256 
4257  case 138:
4258 #line 932 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4259  { (yyval.tree_command_type) = (yyvsp[0].tree_command_type); }
4260 #line 4261 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4261  break;
4262 
4263  case 139:
4264 #line 940 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4265  {
4266  (yyval.tree_decl_command_type) = parser.make_decl_command (GLOBAL, (yyvsp[-1].tok_val), (yyvsp[0].tree_decl_init_list_type));
4267  lexer.looking_at_decl_list = false;
4268  }
4269 #line 4270 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4270  break;
4271 
4272  case 140:
4273 #line 945 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4274  {
4275  (yyval.tree_decl_command_type) = parser.make_decl_command (PERSISTENT, (yyvsp[-1].tok_val), (yyvsp[0].tree_decl_init_list_type));
4276  lexer.looking_at_decl_list = false;
4277  }
4278 #line 4279 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4279  break;
4280 
4281  case 141:
4282 #line 952 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4283  { (yyval.tree_decl_init_list_type) = new tree_decl_init_list ((yyvsp[0].tree_decl_elt_type)); }
4284 #line 4285 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4285  break;
4286 
4287  case 142:
4288 #line 954 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4289  {
4290  (yyvsp[-1].tree_decl_init_list_type)->append ((yyvsp[0].tree_decl_elt_type));
4291  (yyval.tree_decl_init_list_type) = (yyvsp[-1].tree_decl_init_list_type);
4292  }
4293 #line 4294 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4294  break;
4295 
4296  case 143:
4297 #line 961 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4298  {
4299  (yyval.dummy_type) = 0;
4300  lexer.looking_at_initializer_expression = true;
4301  }
4302 #line 4303 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4303  break;
4304 
4305  case 144:
4306 #line 967 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4307  { (yyval.tree_decl_elt_type) = new tree_decl_elt ((yyvsp[0].tree_identifier_type)); }
4308 #line 4309 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4309  break;
4310 
4311  case 145:
4312 #line 969 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4313  {
4314  YYUSE ((yyvsp[-2].tok_val));
4315 
4316  lexer.looking_at_initializer_expression = false;
4317  (yyval.tree_decl_elt_type) = new tree_decl_elt ((yyvsp[-3].tree_identifier_type), (yyvsp[0].tree_expression_type));
4318  }
4319 #line 4320 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4320  break;
4321 
4322  case 146:
4323 #line 982 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4324  { (yyval.tree_command_type) = (yyvsp[0].tree_if_command_type); }
4325 #line 4326 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4326  break;
4327 
4328  case 147:
4329 #line 984 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4330  { (yyval.tree_command_type) = (yyvsp[0].tree_switch_command_type); }
4331 #line 4332 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4332  break;
4333 
4334  case 148:
4335 #line 992 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4336  {
4337  if (! ((yyval.tree_if_command_type) = parser.finish_if_command ((yyvsp[-3].tok_val), (yyvsp[-1].tree_if_command_list_type), (yyvsp[0].tok_val), (yyvsp[-2].comment_type))))
4338  {
4339  // finish_if_command deleted $3.
4340  YYABORT;
4341  }
4342  }
4343 #line 4344 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4344  break;
4345 
4346  case 149:
4347 #line 1002 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4348  { (yyval.tree_if_command_list_type) = (yyvsp[0].tree_if_command_list_type); }
4349 #line 4350 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4350  break;
4351 
4352  case 150:
4353 #line 1004 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4354  {
4355  (yyvsp[-1].tree_if_command_list_type)->append ((yyvsp[0].tree_if_clause_type));
4356  (yyval.tree_if_command_list_type) = (yyvsp[-1].tree_if_command_list_type);
4357  }
4358 #line 4359 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4359  break;
4360 
4361  case 151:
4362 #line 1011 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4363  {
4364  YYUSE ((yyvsp[-1].punct_type));
4365 
4366  (yyvsp[-3].tree_expression_type)->mark_braindead_shortcircuit ();
4367 
4368  (yyval.tree_if_command_list_type) = parser.start_if_command ((yyvsp[-3].tree_expression_type), (yyvsp[0].tree_statement_list_type));
4369  }
4370 #line 4371 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4371  break;
4372 
4373  case 152:
4374 #line 1019 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4375  {
4376  (yyvsp[-1].tree_if_command_list_type)->append ((yyvsp[0].tree_if_clause_type));
4377  (yyval.tree_if_command_list_type) = (yyvsp[-1].tree_if_command_list_type);
4378  }
4379 #line 4380 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4380  break;
4381 
4382  case 153:
4383 #line 1026 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4384  {
4385  YYUSE ((yyvsp[-4].punct_type));
4386  YYUSE ((yyvsp[-1].punct_type));
4387 
4388  (yyvsp[-3].tree_expression_type)->mark_braindead_shortcircuit ();
4389 
4390  (yyval.tree_if_clause_type) = parser.make_elseif_clause ((yyvsp[-6].tok_val), (yyvsp[-3].tree_expression_type), (yyvsp[0].tree_statement_list_type), (yyvsp[-5].comment_type));
4391  }
4392 #line 4393 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4393  break;
4394 
4395  case 154:
4396 #line 1037 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4397  {
4398  YYUSE ((yyvsp[-3].tok_val));
4399  YYUSE ((yyvsp[-1].punct_type));
4400 
4401  (yyval.tree_if_clause_type) = new tree_if_clause ((yyvsp[0].tree_statement_list_type), (yyvsp[-2].comment_type));
4402  }
4403 #line 4404 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4404  break;
4405 
4406  case 155:
4407 #line 1050 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4408  {
4409  YYUSE ((yyvsp[-2].punct_type));
4410 
4411  if (! ((yyval.tree_switch_command_type) = parser.finish_switch_command ((yyvsp[-5].tok_val), (yyvsp[-3].tree_expression_type), (yyvsp[-1].tree_switch_case_list_type), (yyvsp[0].tok_val), (yyvsp[-4].comment_type))))
4412  {
4413  // finish_switch_command deleted $3 adn $5.
4414  YYABORT;
4415  }
4416  }
4417 #line 4418 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4418  break;
4419 
4420  case 156:
4421 #line 1062 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4422  { (yyval.tree_switch_case_list_type) = new tree_switch_case_list (); }
4423 #line 4424 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4424  break;
4425 
4426  case 157:
4427 #line 1064 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4428  { (yyval.tree_switch_case_list_type) = new tree_switch_case_list ((yyvsp[0].tree_switch_case_type)); }
4429 #line 4430 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4430  break;
4431 
4432  case 158:
4433 #line 1066 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4434  { (yyval.tree_switch_case_list_type) = (yyvsp[0].tree_switch_case_list_type); }
4435 #line 4436 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4436  break;
4437 
4438  case 159:
4439 #line 1068 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4440  {
4441  (yyvsp[-1].tree_switch_case_list_type)->append ((yyvsp[0].tree_switch_case_type));
4442  (yyval.tree_switch_case_list_type) = (yyvsp[-1].tree_switch_case_list_type);
4443  }
4444 #line 4445 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4445  break;
4446 
4447  case 160:
4448 #line 1075 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4449  { (yyval.tree_switch_case_list_type) = new tree_switch_case_list ((yyvsp[0].tree_switch_case_type)); }
4450 #line 4451 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4451  break;
4452 
4453  case 161:
4454 #line 1077 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4455  {
4456  (yyvsp[-1].tree_switch_case_list_type)->append ((yyvsp[0].tree_switch_case_type));
4457  (yyval.tree_switch_case_list_type) = (yyvsp[-1].tree_switch_case_list_type);
4458  }
4459 #line 4460 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4460  break;
4461 
4462  case 162:
4463 #line 1084 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4464  {
4465  YYUSE ((yyvsp[-4].punct_type));
4466  YYUSE ((yyvsp[-1].punct_type));
4467 
4468  (yyval.tree_switch_case_type) = parser.make_switch_case ((yyvsp[-6].tok_val), (yyvsp[-3].tree_expression_type), (yyvsp[0].tree_statement_list_type), (yyvsp[-5].comment_type));
4469  }
4470 #line 4471 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4471  break;
4472 
4473  case 163:
4474 #line 1093 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4475  {
4476  YYUSE ((yyvsp[-3].tok_val));
4477  YYUSE ((yyvsp[-1].punct_type));
4478 
4479  (yyval.tree_switch_case_type) = new tree_switch_case ((yyvsp[0].tree_statement_list_type), (yyvsp[-2].comment_type));
4480  }
4481 #line 4482 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4482  break;
4483 
4484  case 164:
4485 #line 1106 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4486  {
4487  YYUSE ((yyvsp[-2].punct_type));
4488 
4489  (yyvsp[-4].tree_expression_type)->mark_braindead_shortcircuit ();
4490 
4491  if (! ((yyval.tree_command_type) = parser.make_while_command ((yyvsp[-6].tok_val), (yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
4492  {
4493  // make_while_command deleted $3 and $6.
4494  YYABORT;
4495  }
4496  }
4497 #line 4498 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4498  break;
4499 
4500  case 165:
4501 #line 1118 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4502  {
4503  YYUSE ((yyvsp[-5].tok_val));
4504  YYUSE ((yyvsp[-3].punct_type));
4505 
4506  (yyval.tree_command_type) = parser.make_do_until_command ((yyvsp[-1].tok_val), (yyvsp[-2].tree_statement_list_type), (yyvsp[0].tree_expression_type), (yyvsp[-4].comment_type));
4507  }
4508 #line 4509 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4509  break;
4510 
4511  case 166:
4512 #line 1125 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4513  {
4514  YYUSE ((yyvsp[-5].tok_val));
4515  YYUSE ((yyvsp[-2].punct_type));
4516 
4517  if (! ((yyval.tree_command_type) = parser.make_for_command (FOR, (yyvsp[-8].tok_val), (yyvsp[-6].tree_argument_list_type), (yyvsp[-4].tree_expression_type), 0,
4518  (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type))))
4519  {
4520  // make_for_command deleted $3, $5, and $8.
4521  YYABORT;
4522  }
4523  }
4524 #line 4525 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4525  break;
4526 
4527  case 167:
4528 #line 1137 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4529  {
4530  YYUSE ((yyvsp[-5].tok_val));
4531  YYUSE ((yyvsp[-2].punct_type));
4532 
4533  if (! ((yyval.tree_command_type) = parser.make_for_command (FOR, (yyvsp[-9].tok_val), (yyvsp[-6].tree_argument_list_type), (yyvsp[-4].tree_expression_type), 0,
4534  (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-8].comment_type))))
4535  {
4536  // make_for_command deleted $4, $6, and $9.
4537  YYABORT;
4538  }
4539  }
4540 #line 4541 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4541  break;
4542 
4543  case 168:
4544 #line 1149 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4545  {
4546  YYUSE ((yyvsp[-5].tok_val));
4547  YYUSE ((yyvsp[-2].punct_type));
4548 
4549  if (! ((yyval.tree_command_type) = parser.make_for_command (PARFOR, (yyvsp[-8].tok_val), (yyvsp[-6].tree_argument_list_type), (yyvsp[-4].tree_expression_type),
4550  0, (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type))))
4551  {
4552  // make_for_command deleted $3, $5, and $8.
4553  YYABORT;
4554  }
4555  }
4556 #line 4557 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4557  break;
4558 
4559  case 169:
4560 #line 1161 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4561  {
4562  YYUSE ((yyvsp[-7].tok_val));
4563  YYUSE ((yyvsp[-2].punct_type));
4564 
4565  if (! ((yyval.tree_command_type) = parser.make_for_command (PARFOR, (yyvsp[-11].tok_val), (yyvsp[-8].tree_argument_list_type), (yyvsp[-6].tree_expression_type),
4566  (yyvsp[-4].tree_expression_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-10].comment_type))))
4567  {
4568  // make_for_command deleted $4, $6, $8, and $11.
4569  YYABORT;
4570  }
4571  }
4572 #line 4573 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4573  break;
4574 
4575  case 170:
4576 #line 1179 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4577  { (yyval.tree_command_type) = parser.make_break_command ((yyvsp[0].tok_val)); }
4578 #line 4579 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4579  break;
4580 
4581  case 171:
4582 #line 1181 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4583  { (yyval.tree_command_type) = parser.make_continue_command ((yyvsp[0].tok_val)); }
4584 #line 4585 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4585  break;
4586 
4587  case 172:
4588 #line 1183 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4589  { (yyval.tree_command_type) = parser.make_return_command ((yyvsp[0].tok_val)); }
4590 #line 4591 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4591  break;
4592 
4593  case 173:
4594 #line 1192 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4595  {
4596  YYUSE ((yyvsp[-6].punct_type));
4597  YYUSE ((yyvsp[-4].tok_val));
4598  YYUSE ((yyvsp[-2].punct_type));
4599 
4600  if (! ((yyval.tree_command_type) = parser.make_unwind_command ((yyvsp[-8].tok_val), (yyvsp[-5].tree_statement_list_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type), (yyvsp[-3].comment_type))))
4601  {
4602  // make_unwind_command deleted $4 and $8.
4603  YYABORT;
4604  }
4605  }
4606 #line 4607 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4607  break;
4608 
4609  case 174:
4610 #line 1205 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4611  {
4612  YYUSE ((yyvsp[-6].punct_type));
4613  YYUSE ((yyvsp[-4].tok_val));
4614  YYUSE ((yyvsp[-2].punct_type));
4615 
4616  if (! ((yyval.tree_command_type) = parser.make_try_command ((yyvsp[-8].tok_val), (yyvsp[-5].tree_statement_list_type), (yyvsp[-2].punct_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type), (yyvsp[-3].comment_type))))
4617  {
4618  // make_try_command deleted $4 and $8.
4619  YYABORT;
4620  }
4621  }
4622 #line 4623 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4623  break;
4624 
4625  case 175:
4626 #line 1217 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4627  {
4628  YYUSE ((yyvsp[-2].punct_type));
4629 
4630  if (! ((yyval.tree_command_type) = parser.make_try_command ((yyvsp[-4].tok_val), (yyvsp[-1].tree_statement_list_type), 0, 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type), 0)))
4631  {
4632  // make_try_command deleted $4.
4633  YYABORT;
4634  }
4635  }
4636 #line 4637 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4637  break;
4638 
4639  case 176:
4640 #line 1233 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4641  {
4642  (yyval.dummy_type) = 0;
4643 
4644  parser.curr_fcn_depth++;
4645 
4646  if (parser.max_fcn_depth < parser.curr_fcn_depth)
4647  parser.max_fcn_depth = parser.curr_fcn_depth;
4648 
4649  lexer.symtab_context.push (symbol_table::alloc_scope ());
4650 
4651  parser.function_scopes.push_back
4652  (lexer.symtab_context.curr_scope ());
4653 
4654  if (! lexer.reading_script_file
4655  && parser.curr_fcn_depth == 1
4656  && ! parser.parsing_subfunctions)
4657  parser.primary_fcn_scope
4658  = lexer.symtab_context.curr_scope ();
4659 
4660  if (lexer.reading_script_file
4661  && parser.curr_fcn_depth > 1)
4662  {
4663  parser.bison_error ("nested functions not implemented in this context");
4664  YYABORT;
4665  }
4666  }
4667 #line 4668 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4668  break;
4669 
4670  case 177:
4671 #line 1266 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4672  {
4673  (yyval.dummy_type) = 0;
4674  lexer.looking_at_parameter_list = true;
4675 
4676  if (lexer.looking_at_function_handle)
4677  {
4678  lexer.symtab_context.push (symbol_table::alloc_scope ());
4679  lexer.looking_at_function_handle--;
4680  lexer.looking_at_anon_fcn_args = true;
4681  }
4682  }
4683 #line 4684 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4684  break;
4685 
4686  case 178:
4687 #line 1280 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4688  {
4689  (yyval.dummy_type) = 0;
4690  lexer.looking_at_parameter_list = false;
4691  lexer.looking_for_object_index = false;
4692  }
4693 #line 4694 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4694  break;
4695 
4696  case 179:
4697 #line 1288 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4698  {
4699  if ((yyvsp[-1].tree_parameter_list_type))
4700  lexer.mark_as_variables ((yyvsp[-1].tree_parameter_list_type)->variable_names ());
4701 
4702  (yyval.tree_parameter_list_type) = (yyvsp[-1].tree_parameter_list_type);
4703  }
4704 #line 4705 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4705  break;
4706 
4707  case 180:
4708 #line 1295 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4709  {
4710  (yyval.tree_parameter_list_type) = 0;
4711  parser.bison_error ("invalid parameter list");
4712  YYABORT;
4713  }
4714 #line 4715 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4715  break;
4716 
4717  case 181:
4718 #line 1303 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4719  { (yyval.tree_parameter_list_type) = 0; }
4720 #line 4721 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4721  break;
4722 
4723  case 182:
4724 #line 1305 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4725  {
4726  (yyvsp[0].tree_parameter_list_type)->mark_as_formal_parameters ();
4727  if ((yyvsp[0].tree_parameter_list_type)->validate (tree_parameter_list::in))
4728  {
4729  lexer.mark_as_variables ((yyvsp[0].tree_parameter_list_type)->variable_names ());
4730  (yyval.tree_parameter_list_type) = (yyvsp[0].tree_parameter_list_type);
4731  }
4732  else
4733  {
4734  delete (yyvsp[0].tree_parameter_list_type);
4735  YYABORT;
4736  }
4737  }
4738 #line 4739 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4739  break;
4740 
4741  case 183:
4742 #line 1321 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4743  { (yyval.tree_parameter_list_type) = new tree_parameter_list ((yyvsp[0].tree_decl_elt_type)); }
4744 #line 4745 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4745  break;
4746 
4747  case 184:
4748 #line 1323 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4749  {
4750  (yyvsp[-2].tree_parameter_list_type)->append ((yyvsp[0].tree_decl_elt_type));
4751  (yyval.tree_parameter_list_type) = (yyvsp[-2].tree_parameter_list_type);
4752  }
4753 #line 4754 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4754  break;
4755 
4756  case 185:
4757 #line 1330 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4758  { (yyval.tree_decl_elt_type) = (yyvsp[0].tree_decl_elt_type); }
4759 #line 4760 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4760  break;
4761 
4762  case 186:
4763 #line 1332 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4764  { (yyval.tree_decl_elt_type) = new tree_decl_elt ((yyvsp[0].tree_identifier_type)); }
4765 #line 4766 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4766  break;
4767 
4768  case 187:
4769 #line 1340 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4770  {
4771  lexer.looking_at_return_list = false;
4772 
4773  (yyval.tree_parameter_list_type) = new tree_parameter_list ();
4774  }
4775 #line 4776 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4776  break;
4777 
4778  case 188:
4779 #line 1346 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4780  {
4781  lexer.looking_at_return_list = false;
4782 
4783  tree_parameter_list *tmp = new tree_parameter_list ((yyvsp[0].tree_identifier_type));
4784 
4785  // Even though this parameter list can contain only
4786  // a single identifier, we still need to validate it
4787  // to check for varargin or varargout.
4788 
4790  (yyval.tree_parameter_list_type) = tmp;
4791  else
4792  {
4793  delete tmp;
4794  YYABORT;
4795  }
4796  }
4797 #line 4798 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4798  break;
4799 
4800  case 189:
4801 #line 1364 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4802  {
4803  lexer.looking_at_return_list = false;
4804 
4805  // Check for duplicate parameter names, varargin,
4806  // or varargout.
4807 
4808  if ((yyvsp[-1].tree_parameter_list_type)->validate (tree_parameter_list::out))
4809  (yyval.tree_parameter_list_type) = (yyvsp[-1].tree_parameter_list_type);
4810  else
4811  {
4812  delete (yyvsp[-1].tree_parameter_list_type);
4813  YYABORT;
4814  }
4815  }
4816 #line 4817 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4817  break;
4818 
4819  case 190:
4820 #line 1381 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4821  { (yyval.tree_parameter_list_type) = new tree_parameter_list (new tree_decl_elt ((yyvsp[0].tree_identifier_type))); }
4822 #line 4823 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4823  break;
4824 
4825  case 191:
4826 #line 1383 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4827  {
4828  (yyvsp[-2].tree_parameter_list_type)->append (new tree_decl_elt ((yyvsp[0].tree_identifier_type)));
4829  (yyval.tree_parameter_list_type) = (yyvsp[-2].tree_parameter_list_type);
4830  }
4831 #line 4832 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4832  break;
4833 
4834  case 192:
4835 #line 1394 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4836  {
4837  YYUSE ((yyvsp[-2].punct_type));
4838 
4839  if (lexer.reading_fcn_file)
4840  {
4841  // Delete the dummy statement_list we created
4842  // after parsing the function. Any function
4843  // definitions found in the file have already
4844  // been stored in the symbol table or in
4845  // base_parser::primary_fcn_ptr.
4846 
4847  delete (yyvsp[-1].tree_statement_list_type);
4848  }
4849  else
4850  {
4851  tree_statement *end_of_script
4852  = parser.make_end ("endscript", true,
4853  lexer.input_line_number,
4854  lexer.current_input_column);
4855 
4856  parser.make_script ((yyvsp[-1].tree_statement_list_type), end_of_script);
4857  }
4858 
4859  (yyval.tree_command_type) = 0;
4860  }
4861 #line 4862 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4862  break;
4863 
4864  case 193:
4865 #line 1420 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4866  {
4867  YYUSE ((yyvsp[-3].punct_type));
4868  YYUSE ((yyvsp[-1].punct_type));
4869 
4870  if (lexer.reading_classdef_file)
4871  parser.classdef_object = (yyvsp[-2].tree_classdef_type);
4872 
4873  (yyval.tree_command_type) = 0;
4874  }
4875 #line 4876 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4876  break;
4877 
4878  case 194:
4879 #line 1436 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4880  {
4881  (yyval.tok_val) = (yyvsp[0].tok_val);
4882  if (lexer.reading_classdef_file
4883  || lexer.parsing_classdef)
4884  lexer.maybe_classdef_get_set_method = true;
4885  }
4886 #line 4887 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4887  break;
4888 
4889  case 195:
4890 #line 1445 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4891  {
4892  (yyval.tree_function_def_type) = parser.finish_function (0, (yyvsp[0].octave_user_function_type), (yyvsp[-1].comment_type), (yyvsp[-2].tok_val)->line (),
4893  (yyvsp[-2].tok_val)->column ());
4895  }
4896 #line 4897 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4897  break;
4898 
4899  case 196:
4900 #line 1451 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4901  {
4902  YYUSE ((yyvsp[-1].tok_val));
4903 
4904  (yyval.tree_function_def_type) = parser.finish_function ((yyvsp[-2].tree_parameter_list_type), (yyvsp[0].octave_user_function_type), (yyvsp[-3].comment_type), (yyvsp[-4].tok_val)->line (),
4905  (yyvsp[-4].tok_val)->column ());
4907  }
4908 #line 4909 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4909  break;
4910 
4911  case 197:
4912 #line 1461 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4913  {
4914  std::string id_name = (yyvsp[0].tree_identifier_type)->name ();
4915 
4916  lexer.parsed_function_name.top () = true;
4917  lexer.maybe_classdef_get_set_method = false;
4918 
4919  (yyval.tree_identifier_type) = (yyvsp[0].tree_identifier_type);
4920  }
4921 #line 4922 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4922  break;
4923 
4924  case 198:
4925 #line 1470 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4926  {
4927  YYUSE ((yyvsp[-2].tok_val));
4928 
4929  lexer.parsed_function_name.top () = true;
4930  lexer.maybe_classdef_get_set_method = false;
4931  lexer.parsing_classdef_get_method = true;
4932  (yyval.tree_identifier_type) = (yyvsp[0].tree_identifier_type);
4933  }
4934 #line 4935 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4935  break;
4936 
4937  case 199:
4938 #line 1479 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4939  {
4940  YYUSE ((yyvsp[-2].tok_val));
4941 
4942  lexer.parsed_function_name.top () = true;
4943  lexer.maybe_classdef_get_set_method = false;
4944  lexer.parsing_classdef_set_method = true;
4945  (yyval.tree_identifier_type) = (yyvsp[0].tree_identifier_type);
4946  }
4947 #line 4948 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4948  break;
4949 
4950  case 200:
4951 #line 1490 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4952  {
4953  std::string fname = (yyvsp[-1].tree_identifier_type)->name ();
4954 
4955  delete (yyvsp[-1].tree_identifier_type);
4956 
4957  if (lexer.parsing_classdef_get_method)
4958  fname.insert (0, "get.");
4959  else if (lexer.parsing_classdef_set_method)
4960  fname.insert (0, "set.");
4961 
4962  lexer.parsing_classdef_get_method = false;
4963  lexer.parsing_classdef_set_method = false;
4964 
4965  (yyval.octave_user_function_type) = parser.frob_function (fname, (yyvsp[0].octave_user_function_type));
4966  }
4967 #line 4968 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4968  break;
4969 
4970  case 201:
4971 #line 1508 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4972  {
4973  YYUSE ((yyvsp[-2].punct_type));
4974 
4975  (yyval.octave_user_function_type) = parser.start_function ((yyvsp[-3].tree_parameter_list_type), (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tree_statement_type));
4976  }
4977 #line 4978 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4978  break;
4979 
4980  case 202:
4981 #line 1514 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4982  {
4983  YYUSE ((yyvsp[-2].punct_type));
4984 
4985  (yyval.octave_user_function_type) = parser.start_function (0, (yyvsp[-1].tree_statement_list_type), (yyvsp[0].tree_statement_type));
4986  }
4987 #line 4988 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
4988  break;
4989 
4990  case 203:
4991 #line 1522 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
4992  {
4993  parser.endfunction_found = true;
4994 
4995  if (parser.end_token_ok ((yyvsp[0].tok_val), token::function_end))
4996  (yyval.tree_statement_type) = parser.make_end ("endfunction", false,
4997  (yyvsp[0].tok_val)->line (), (yyvsp[0].tok_val)->column ());
4998  else
4999  {
5000  parser.end_token_error ((yyvsp[0].tok_val), token::function_end);
5001  YYABORT;
5002  }
5003  }
5004 #line 5005 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5005  break;
5006 
5007  case 204:
5008 #line 1535 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5009  {
5010 // A lot of tests are based on the assumption that this is OK
5011 // if (lexer.reading_script_file)
5012 // {
5013 // parser.bison_error ("function body open at end of script");
5014 // YYABORT;
5015 // }
5016 
5017  if (parser.endfunction_found)
5018  {
5019  parser.bison_error ("inconsistent function endings -- "
5020  "if one function is explicitly ended, "
5021  "so must all the others");
5022  YYABORT;
5023  }
5024 
5025  if (! (lexer.reading_fcn_file || lexer.reading_script_file
5026  || lexer.input_from_eval_string ()))
5027  {
5028  parser.bison_error ("function body open at end of input");
5029  YYABORT;
5030  }
5031 
5032  if (lexer.reading_classdef_file)
5033  {
5034  parser.bison_error ("classdef body open at end of input");
5035  YYABORT;
5036  }
5037 
5038  (yyval.tree_statement_type) = parser.make_end ("endfunction", true,
5039  lexer.input_line_number,
5040  lexer.current_input_column);
5041  }
5042 #line 5043 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5043  break;
5044 
5045  case 205:
5046 #line 1575 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5047  {
5048  if (! lexer.reading_classdef_file)
5049  {
5050  parser.bison_error ("classdef must appear inside a file containing only a class definition");
5051  YYABORT;
5052  }
5053 
5054  lexer.parsing_classdef = true;
5055  (yyval.tok_val) = (yyvsp[0].tok_val);
5056  }
5057 #line 5058 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5058  break;
5059 
5060  case 206:
5061 #line 1588 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5062  {
5063  YYUSE ((yyvsp[-3].punct_type));
5064  YYUSE ((yyvsp[-1].punct_type));
5065 
5066  lexer.parsing_classdef = false;
5067 
5068  if (! ((yyval.tree_classdef_type) = parser.make_classdef ((yyvsp[-8].tok_val), (yyvsp[-6].tree_classdef_attribute_list_type), (yyvsp[-5].tree_identifier_type), (yyvsp[-4].tree_classdef_superclass_list_type), (yyvsp[-2].tree_classdef_body_type), (yyvsp[0].tok_val), (yyvsp[-7].comment_type))))
5069  {
5070  // make_classdef deleted $3, $4, $5, and $7.
5071  YYABORT;
5072  }
5073  }
5074 #line 5075 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5075  break;
5076 
5077  case 207:
5078 #line 1601 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5079  {
5080  YYUSE ((yyvsp[-1].punct_type));
5081 
5082  lexer.parsing_classdef = false;
5083 
5084  if (! ((yyval.tree_classdef_type) = parser.make_classdef ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-3].tree_identifier_type), (yyvsp[-2].tree_classdef_superclass_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5085  {
5086  // make_classdef deleted $3, $4, and $5.
5087  YYABORT;
5088  }
5089  }
5090 #line 5091 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5091  break;
5092 
5093  case 208:
5094 #line 1615 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5095  { (yyval.tree_classdef_attribute_list_type) = 0; }
5096 #line 5097 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5097  break;
5098 
5099  case 209:
5100 #line 1617 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5101  { (yyval.tree_classdef_attribute_list_type) = (yyvsp[-1].tree_classdef_attribute_list_type); }
5102 #line 5103 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5103  break;
5104 
5105  case 210:
5106 #line 1621 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5107  { (yyval.tree_classdef_attribute_list_type) = new tree_classdef_attribute_list ((yyvsp[0].tree_classdef_attribute_type)); }
5108 #line 5109 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5109  break;
5110 
5111  case 211:
5112 #line 1623 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5113  {
5114  (yyvsp[-2].tree_classdef_attribute_list_type)->append ((yyvsp[0].tree_classdef_attribute_type));
5115  (yyval.tree_classdef_attribute_list_type) = (yyvsp[-2].tree_classdef_attribute_list_type);
5116  }
5117 #line 5118 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5118  break;
5119 
5120  case 212:
5121 #line 1630 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5122  { (yyval.tree_classdef_attribute_type) = new tree_classdef_attribute ((yyvsp[0].tree_identifier_type)); }
5123 #line 5124 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5124  break;
5125 
5126  case 213:
5127 #line 1632 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5128  {
5129  YYUSE ((yyvsp[-2].tok_val));
5130 
5131  lexer.looking_at_initializer_expression = false;
5132  (yyval.tree_classdef_attribute_type) = new tree_classdef_attribute ((yyvsp[-3].tree_identifier_type), (yyvsp[0].tree_expression_type));
5133  }
5134 #line 5135 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5135  break;
5136 
5137  case 214:
5138 #line 1639 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5139  {
5140  YYUSE ((yyvsp[-1].tok_val));
5141 
5142  (yyval.tree_classdef_attribute_type) = new tree_classdef_attribute ((yyvsp[0].tree_identifier_type), false);
5143  }
5144 #line 5145 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5145  break;
5146 
5147  case 215:
5148 #line 1648 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5149  { (yyval.tree_classdef_superclass_list_type) = 0; }
5150 #line 5151 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5151  break;
5152 
5153  case 216:
5154 #line 1650 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5155  { (yyval.tree_classdef_superclass_list_type) = (yyvsp[0].tree_classdef_superclass_list_type); }
5156 #line 5157 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5157  break;
5158 
5159  case 217:
5160 #line 1654 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5161  {
5162  YYUSE ((yyvsp[0].tok_val));
5163 
5164  lexer.enable_fq_identifier ();
5165  }
5166 #line 5167 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5167  break;
5168 
5169  case 218:
5170 #line 1660 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5171  { (yyval.tree_classdef_superclass_list_type) = new tree_classdef_superclass_list ((yyvsp[0].tree_classdef_superclass_type)); }
5172 #line 5173 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5173  break;
5174 
5175  case 219:
5176 #line 1662 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5177  {
5178  YYUSE ((yyvsp[0].tok_val));
5179 
5180  lexer.enable_fq_identifier ();
5181  }
5182 #line 5183 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5183  break;
5184 
5185  case 220:
5186 #line 1668 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5187  {
5188  (yyvsp[-3].tree_classdef_superclass_list_type)->append ((yyvsp[0].tree_classdef_superclass_type));
5189  (yyval.tree_classdef_superclass_list_type) = (yyvsp[-3].tree_classdef_superclass_list_type);
5190  }
5191 #line 5192 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5192  break;
5193 
5194  case 221:
5195 #line 1675 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5196  { (yyval.tree_classdef_superclass_type) = new tree_classdef_superclass ((yyvsp[0].tok_val)->text ()); }
5197 #line 5198 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5198  break;
5199 
5200  case 222:
5201 #line 1679 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5202  { (yyval.tree_classdef_body_type) = new tree_classdef_body ((yyvsp[0].tree_classdef_properties_block_type)); }
5203 #line 5204 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5204  break;
5205 
5206  case 223:
5207 #line 1681 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5208  { (yyval.tree_classdef_body_type) = new tree_classdef_body ((yyvsp[0].tree_classdef_methods_block_type)); }
5209 #line 5210 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5210  break;
5211 
5212  case 224:
5213 #line 1683 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5214  { (yyval.tree_classdef_body_type) = new tree_classdef_body ((yyvsp[0].tree_classdef_events_block_type)); }
5215 #line 5216 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5216  break;
5217 
5218  case 225:
5219 #line 1685 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5220  { (yyval.tree_classdef_body_type) = new tree_classdef_body ((yyvsp[0].tree_classdef_enum_block_type)); }
5221 #line 5222 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5222  break;
5223 
5224  case 226:
5225 #line 1687 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5226  {
5227  YYUSE ((yyvsp[-1].punct_type));
5228 
5229  (yyvsp[-2].tree_classdef_body_type)->append ((yyvsp[0].tree_classdef_properties_block_type));
5230  (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5231  }
5232 #line 5233 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5233  break;
5234 
5235  case 227:
5236 #line 1694 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5237  {
5238  YYUSE ((yyvsp[-1].punct_type));
5239 
5240  (yyvsp[-2].tree_classdef_body_type)->append ((yyvsp[0].tree_classdef_methods_block_type));
5241  (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5242  }
5243 #line 5244 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5244  break;
5245 
5246  case 228:
5247 #line 1701 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5248  {
5249  YYUSE ((yyvsp[-1].punct_type));
5250 
5251  (yyvsp[-2].tree_classdef_body_type)->append ((yyvsp[0].tree_classdef_events_block_type));
5252  (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5253  }
5254 #line 5255 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5255  break;
5256 
5257  case 229:
5258 #line 1708 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5259  {
5260  YYUSE ((yyvsp[-1].punct_type));
5261 
5262  (yyvsp[-2].tree_classdef_body_type)->append ((yyvsp[0].tree_classdef_enum_block_type));
5263  (yyval.tree_classdef_body_type) = (yyvsp[-2].tree_classdef_body_type);
5264  }
5265 #line 5266 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5266  break;
5267 
5268  case 230:
5269 #line 1718 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5270  {
5271  YYUSE ((yyvsp[-3].punct_type));
5272  YYUSE ((yyvsp[-1].punct_type));
5273 
5274  if (! ((yyval.tree_classdef_properties_block_type) = parser.make_classdef_properties_block
5275  ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-2].tree_classdef_property_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5276  {
5277  // make_classdef_properties_block delete $3 and $5.
5278  YYABORT;
5279  }
5280  }
5281 #line 5282 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5282  break;
5283 
5284  case 231:
5285 #line 1730 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5286  {
5287  YYUSE ((yyvsp[-1].punct_type));
5288 
5289  if (! ((yyval.tree_classdef_properties_block_type) = parser.make_classdef_properties_block
5290  ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5291  {
5292  // make_classdef_properties_block delete $3.
5293  YYABORT;
5294  }
5295  }
5296 #line 5297 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5297  break;
5298 
5299  case 232:
5300 #line 1744 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5301  { (yyval.tree_classdef_property_list_type) = new tree_classdef_property_list ((yyvsp[0].tree_classdef_property_type)); }
5302 #line 5303 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5303  break;
5304 
5305  case 233:
5306 #line 1746 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5307  {
5308  YYUSE ((yyvsp[-1].punct_type));
5309 
5310  (yyvsp[-2].tree_classdef_property_list_type)->append ((yyvsp[0].tree_classdef_property_type));
5311  (yyval.tree_classdef_property_list_type) = (yyvsp[-2].tree_classdef_property_list_type);
5312  }
5313 #line 5314 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5314  break;
5315 
5316  case 234:
5317 #line 1755 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5318  { (yyval.tree_classdef_property_type) = new tree_classdef_property ((yyvsp[0].tree_identifier_type)); }
5319 #line 5320 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5320  break;
5321 
5322  case 235:
5323 #line 1757 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5324  {
5325  YYUSE ((yyvsp[-2].tok_val));
5326 
5327  lexer.looking_at_initializer_expression = false;
5328  (yyval.tree_classdef_property_type) = new tree_classdef_property ((yyvsp[-3].tree_identifier_type), (yyvsp[0].tree_expression_type));
5329  }
5330 #line 5331 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5331  break;
5332 
5333  case 236:
5334 #line 1766 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5335  {
5336  YYUSE ((yyvsp[-3].punct_type));
5337  YYUSE ((yyvsp[-1].punct_type));
5338 
5339  if (! ((yyval.tree_classdef_methods_block_type) = parser.make_classdef_methods_block
5340  ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-2].tree_classdef_methods_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5341  {
5342  // make_classdef_methods_block deleted $3 and $5.
5343  YYABORT;
5344  }
5345  }
5346 #line 5347 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5347  break;
5348 
5349  case 237:
5350 #line 1778 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5351  {
5352  YYUSE ((yyvsp[-1].punct_type));
5353 
5354  if (! ((yyval.tree_classdef_methods_block_type) = parser.make_classdef_methods_block
5355  ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5356  {
5357  // make_classdef_methods_block deleted $3.
5358  YYABORT;
5359  }
5360  }
5361 #line 5362 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5362  break;
5363 
5364  case 238:
5365 #line 1792 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5366  {
5367  if (! ((yyval.octave_user_function_type) = parser.start_classdef_external_method ((yyvsp[0].tree_identifier_type), 0)))
5368  YYABORT;
5369  }
5370 #line 5371 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5371  break;
5372 
5373  case 239:
5374 #line 1797 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5375  {
5376  if (! ((yyval.octave_user_function_type) = parser.start_classdef_external_method ((yyvsp[-1].tree_identifier_type), (yyvsp[0].tree_parameter_list_type))))
5377  YYABORT;
5378  }
5379 #line 5380 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5380  break;
5381 
5382  case 240:
5383 #line 1804 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5384  { (yyval.tree_function_def_type) = parser.finish_classdef_external_method ((yyvsp[0].octave_user_function_type), 0, (yyvsp[-1].comment_type)); }
5385 #line 5386 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5386  break;
5387 
5388  case 241:
5389 #line 1806 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5390  {
5391  YYUSE ((yyvsp[0].tok_val));
5392 
5393  lexer.defining_func++;
5394  lexer.parsed_function_name.push (false);
5395  }
5396 #line 5397 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5397  break;
5398 
5399  case 242:
5400 #line 1813 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5401  {
5402  lexer.defining_func--;
5403  lexer.parsed_function_name.pop ();
5404  (yyval.tree_function_def_type) = parser.finish_classdef_external_method ((yyvsp[0].octave_user_function_type), (yyvsp[-3].tree_parameter_list_type), (yyvsp[-4].comment_type));
5405  }
5406 #line 5407 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5407  break;
5408 
5409  case 243:
5410 #line 1821 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5411  { (yyval.tree_function_def_type) = (yyvsp[0].tree_function_def_type); }
5412 #line 5413 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5413  break;
5414 
5415  case 244:
5416 #line 1823 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5417  { (yyval.tree_function_def_type) = (yyvsp[0].tree_function_def_type); }
5418 #line 5419 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5419  break;
5420 
5421  case 245:
5422 #line 1827 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5423  {
5424  octave_value fcn;
5425  if ((yyvsp[0].tree_function_def_type))
5426  fcn = (yyvsp[0].tree_function_def_type)->function ();
5427  delete (yyvsp[0].tree_function_def_type);
5428  (yyval.tree_classdef_methods_list_type) = new tree_classdef_methods_list (fcn);
5429  }
5430 #line 5431 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5431  break;
5432 
5433  case 246:
5434 #line 1835 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5435  {
5436  YYUSE ((yyvsp[-1].punct_type));
5437 
5438  octave_value fcn;
5439  if ((yyvsp[0].tree_function_def_type))
5440  fcn = (yyvsp[0].tree_function_def_type)->function ();
5441  delete (yyvsp[0].tree_function_def_type);
5442 
5443  (yyvsp[-2].tree_classdef_methods_list_type)->append (fcn);
5444  (yyval.tree_classdef_methods_list_type) = (yyvsp[-2].tree_classdef_methods_list_type);
5445  }
5446 #line 5447 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5447  break;
5448 
5449  case 247:
5450 #line 1849 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5451  {
5452  YYUSE ((yyvsp[-3].punct_type));
5453  YYUSE ((yyvsp[-1].punct_type));
5454 
5455  if (! ((yyval.tree_classdef_events_block_type) = parser.make_classdef_events_block
5456  ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-2].tree_classdef_events_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5457  {
5458  // make_classdef_events_block deleted $3 and $5.
5459  YYABORT;
5460  }
5461  }
5462 #line 5463 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5463  break;
5464 
5465  case 248:
5466 #line 1861 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5467  {
5468  YYUSE ((yyvsp[-1].punct_type));
5469 
5470  if (! ((yyval.tree_classdef_events_block_type) = parser.make_classdef_events_block
5471  ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5472  {
5473  // make_classdef_events_block deleted $3.
5474  YYABORT;
5475  }
5476  }
5477 #line 5478 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5478  break;
5479 
5480  case 249:
5481 #line 1874 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5482  { (yyval.tree_classdef_events_list_type) = new tree_classdef_events_list ((yyvsp[0].tree_classdef_event_type)); }
5483 #line 5484 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5484  break;
5485 
5486  case 250:
5487 #line 1876 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5488  {
5489  YYUSE ((yyvsp[-1].punct_type));
5490 
5491  (yyvsp[-2].tree_classdef_events_list_type)->append ((yyvsp[0].tree_classdef_event_type));
5492  (yyval.tree_classdef_events_list_type) = (yyvsp[-2].tree_classdef_events_list_type);
5493  }
5494 #line 5495 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5495  break;
5496 
5497  case 251:
5498 #line 1885 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5499  { (yyval.tree_classdef_event_type) = new tree_classdef_event ((yyvsp[0].tree_identifier_type)); }
5500 #line 5501 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5501  break;
5502 
5503  case 252:
5504 #line 1889 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5505  {
5506  YYUSE ((yyvsp[-3].punct_type));
5507  YYUSE ((yyvsp[-1].punct_type));
5508 
5509  if (! ((yyval.tree_classdef_enum_block_type) = parser.make_classdef_enum_block
5510  ((yyvsp[-6].tok_val), (yyvsp[-4].tree_classdef_attribute_list_type), (yyvsp[-2].tree_classdef_enum_list_type), (yyvsp[0].tok_val), (yyvsp[-5].comment_type))))
5511  {
5512  // make_classdef_enum_block deleted $3 and $5.
5513  YYABORT;
5514  }
5515  }
5516 #line 5517 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5517  break;
5518 
5519  case 253:
5520 #line 1901 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5521  {
5522  YYUSE ((yyvsp[-1].punct_type));
5523 
5524  if (! ((yyval.tree_classdef_enum_block_type) = parser.make_classdef_enum_block
5525  ((yyvsp[-4].tok_val), (yyvsp[-2].tree_classdef_attribute_list_type), 0, (yyvsp[0].tok_val), (yyvsp[-3].comment_type))))
5526  {
5527  // make_classdef_enum_block deleted $3.
5528  YYABORT;
5529  }
5530  }
5531 #line 5532 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5532  break;
5533 
5534  case 254:
5535 #line 1914 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5536  { (yyval.tree_classdef_enum_list_type) = new tree_classdef_enum_list ((yyvsp[0].tree_classdef_enum_type)); }
5537 #line 5538 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5538  break;
5539 
5540  case 255:
5541 #line 1916 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5542  {
5543  YYUSE ((yyvsp[-1].punct_type));
5544 
5545  (yyvsp[-2].tree_classdef_enum_list_type)->append ((yyvsp[0].tree_classdef_enum_type));
5546  (yyval.tree_classdef_enum_list_type) = (yyvsp[-2].tree_classdef_enum_list_type);
5547  }
5548 #line 5549 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5549  break;
5550 
5551  case 256:
5552 #line 1925 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5553  { (yyval.tree_classdef_enum_type) = new tree_classdef_enum ((yyvsp[-3].tree_identifier_type), (yyvsp[-1].tree_expression_type)); }
5554 #line 5555 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5555  break;
5556 
5557  case 257:
5558 #line 1933 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5559  {
5560  (yyval.dummy_type) = 0;
5561  lexer.at_beginning_of_statement = true;
5562  }
5563 #line 5564 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5564  break;
5565 
5566  case 258:
5567 #line 1940 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5568  { (yyval.comment_type) = lexer.get_comment (); }
5569 #line 5570 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5570  break;
5571 
5572  case 259:
5573 #line 1944 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5574  {
5575  (yyval.dummy_type) = 0;
5576  std::string msg = (yyvsp[0].tok_val)->text ();
5577  parser.bison_error (msg.c_str ());
5578  }
5579 #line 5580 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5580  break;
5581 
5582  case 260:
5583 #line 1950 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5584  { (yyval.dummy_type) = 0; }
5585 #line 5586 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5586  break;
5587 
5588  case 261:
5589 #line 1954 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5590  { (yyval.punct_type) = ','; }
5591 #line 5592 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5592  break;
5593 
5594  case 262:
5595 #line 1956 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5596  { (yyval.punct_type) = ';'; }
5597 #line 5598 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5598  break;
5599 
5600  case 263:
5601 #line 1958 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5602  { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5603 #line 5604 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5604  break;
5605 
5606  case 264:
5607 #line 1960 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5608  { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5609 #line 5610 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5610  break;
5611 
5612  case 265:
5613 #line 1964 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5614  { (yyval.punct_type) = 0; }
5615 #line 5616 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5616  break;
5617 
5618  case 266:
5619 #line 1966 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5620  { (yyval.punct_type) = (yyvsp[0].punct_type); }
5621 #line 5622 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5622  break;
5623 
5624  case 267:
5625 #line 1970 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5626  { (yyval.punct_type) = 0; }
5627 #line 5628 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5628  break;
5629 
5630  case 268:
5631 #line 1972 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5632  { (yyval.punct_type) = (yyvsp[0].punct_type); }
5633 #line 5634 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5634  break;
5635 
5636  case 269:
5637 #line 1976 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5638  { (yyval.punct_type) = '\n'; }
5639 #line 5640 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5640  break;
5641 
5642  case 270:
5643 #line 1978 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5644  { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5645 #line 5646 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5646  break;
5647 
5648  case 271:
5649 #line 1982 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5650  { (yyval.punct_type) = ','; }
5651 #line 5652 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5652  break;
5653 
5654  case 272:
5655 #line 1984 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5656  { (yyval.punct_type) = ';'; }
5657 #line 5658 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5658  break;
5659 
5660  case 273:
5661 #line 1986 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5662  { (yyval.punct_type) = '\n'; }
5663 #line 5664 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5664  break;
5665 
5666  case 274:
5667 #line 1988 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5668  { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5669 #line 5670 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5670  break;
5671 
5672  case 275:
5673 #line 1990 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5674  { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5675 #line 5676 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5676  break;
5677 
5678  case 276:
5679 #line 1992 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5680  { (yyval.punct_type) = (yyvsp[-1].punct_type); }
5681 #line 5682 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5682  break;
5683 
5684  case 277:
5685 #line 1996 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5686  { (yyval.punct_type) = 0; }
5687 #line 5688 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5688  break;
5689 
5690  case 278:
5691 #line 1998 "libinterp/parse-tree/oct-parse.yy" /* yacc.c:1646 */
5692  { (yyval.punct_type) = (yyvsp[0].punct_type); }
5693 #line 5694 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5694  break;
5695 
5696 
5697 #line 5698 "libinterp/parse-tree/oct-parse.cc" /* yacc.c:1646 */
5698  default: break;
5699  }
5700  /* User semantic actions sometimes alter yychar, and that requires
5701  that yytoken be updated with the new translation. We take the
5702  approach of translating immediately before every use of yytoken.
5703  One alternative is translating here after every semantic action,
5704  but that translation would be missed if the semantic action invokes
5705  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
5706  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
5707  incorrect destructor might then be invoked immediately. In the
5708  case of YYERROR or YYBACKUP, subsequent parser actions might lead
5709  to an incorrect destructor call or verbose syntax error message
5710  before the lookahead is translated. */
5711  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
5712 
5713  YYPOPSTACK (yylen);
5714  yylen = 0;
5715  YY_STACK_PRINT (yyss, yyssp);
5716 
5717  *++yyvsp = yyval;
5718 
5719  /* Now 'shift' the result of the reduction. Determine what state
5720  that goes to, based on the state we popped back to and the rule
5721  number reduced by. */
5722 
5723  yyn = yyr1[yyn];
5724 
5725  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5726  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5727  yystate = yytable[yystate];
5728  else
5729  yystate = yydefgoto[yyn - YYNTOKENS];
5730 
5731  goto yynewstate;
5732 
5733 
5734 /*--------------------------------------.
5735 | yyerrlab -- here on detecting error. |
5736 `--------------------------------------*/
5737 yyerrlab:
5738  /* Make sure we have latest lookahead translation. See comments at
5739  user semantic actions for why this is necessary. */
5740  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
5741 
5742  /* If not already recovering from an error, report this error. */
5743  if (!yyerrstatus)
5744  {
5745  ++yynerrs;
5746 #if ! YYERROR_VERBOSE
5747  yyerror (parser, YY_("syntax error"));
5748 #else
5749 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
5750  yyssp, yytoken)
5751  {
5752  char const *yymsgp = YY_("syntax error");
5753  int yysyntax_error_status;
5754  yysyntax_error_status = YYSYNTAX_ERROR;
5755  if (yysyntax_error_status == 0)
5756  yymsgp = yymsg;
5757  else if (yysyntax_error_status == 1)
5758  {
5759  if (yymsg != yymsgbuf)
5760  YYSTACK_FREE (yymsg);
5761  yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
5762  if (!yymsg)
5763  {
5764  yymsg = yymsgbuf;
5765  yymsg_alloc = sizeof yymsgbuf;
5766  yysyntax_error_status = 2;
5767  }
5768  else
5769  {
5770  yysyntax_error_status = YYSYNTAX_ERROR;
5771  yymsgp = yymsg;
5772  }
5773  }
5774  yyerror (parser, yymsgp);
5775  if (yysyntax_error_status == 2)
5776  goto yyexhaustedlab;
5777  }
5778 # undef YYSYNTAX_ERROR
5779 #endif
5780  }
5781 
5782 
5783 
5784  if (yyerrstatus == 3)
5785  {
5786  /* If just tried and failed to reuse lookahead token after an
5787  error, discard it. */
5788 
5789  if (yychar <= YYEOF)
5790  {
5791  /* Return failure if at end of input. */
5792  if (yychar == YYEOF)
5793  YYABORT;
5794  }
5795  else
5796  {
5797  yydestruct ("Error: discarding",
5798  yytoken, &yylval, parser);
5799  yychar = YYEMPTY;
5800  }
5801  }
5802 
5803  /* Else will try to reuse lookahead token after shifting the error
5804  token. */
5805  goto yyerrlab1;
5806 
5807 
5808 /*---------------------------------------------------.
5809 | yyerrorlab -- error raised explicitly by YYERROR. |
5810 `---------------------------------------------------*/
5811 yyerrorlab:
5812 
5813  /* Pacify compilers like GCC when the user code never invokes
5814  YYERROR and the label yyerrorlab therefore never appears in user
5815  code. */
5816  if (/*CONSTCOND*/ 0)
5817  goto yyerrorlab;
5818 
5819  /* Do not reclaim the symbols of the rule whose action triggered
5820  this YYERROR. */
5821  YYPOPSTACK (yylen);
5822  yylen = 0;
5823  YY_STACK_PRINT (yyss, yyssp);
5824  yystate = *yyssp;
5825  goto yyerrlab1;
5826 
5827 
5828 /*-------------------------------------------------------------.
5829 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5830 `-------------------------------------------------------------*/
5831 yyerrlab1:
5832  yyerrstatus = 3; /* Each real token shifted decrements this. */
5833 
5834  for (;;)
5835  {
5836  yyn = yypact[yystate];
5837  if (!yypact_value_is_default (yyn))
5838  {
5839  yyn += YYTERROR;
5840  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5841  {
5842  yyn = yytable[yyn];
5843  if (0 < yyn)
5844  break;
5845  }
5846  }
5847 
5848  /* Pop the current state because it cannot handle the error token. */
5849  if (yyssp == yyss)
5850  YYABORT;
5851 
5852 
5853  yydestruct ("Error: popping",
5854  yystos[yystate], yyvsp, parser);
5855  YYPOPSTACK (1);
5856  yystate = *yyssp;
5857  YY_STACK_PRINT (yyss, yyssp);
5858  }
5859 
5861  *++yyvsp = yylval;
5863 
5864 
5865  /* Shift the error token. */
5866  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5867 
5868  yystate = yyn;
5869  goto yynewstate;
5870 
5871 
5872 /*-------------------------------------.
5873 | yyacceptlab -- YYACCEPT comes here. |
5874 `-------------------------------------*/
5875 yyacceptlab:
5876  yyresult = 0;
5877  goto yyreturn;
5878 
5879 /*-----------------------------------.
5880 | yyabortlab -- YYABORT comes here. |
5881 `-----------------------------------*/
5882 yyabortlab:
5883  yyresult = 1;
5884  goto yyreturn;
5885 
5886 #if !defined yyoverflow || YYERROR_VERBOSE
5887 /*-------------------------------------------------.
5888 | yyexhaustedlab -- memory exhaustion comes here. |
5889 `-------------------------------------------------*/
5890 yyexhaustedlab:
5891  yyerror (parser, YY_("memory exhausted"));
5892  yyresult = 2;
5893  /* Fall through. */
5894 #endif
5895 
5896 yyreturn:
5897  if (yychar != YYEMPTY)
5898  {
5899  /* Make sure we have latest lookahead translation. See comments at
5900  user semantic actions for why this is necessary. */
5901  yytoken = YYTRANSLATE (yychar);
5902  yydestruct ("Cleanup: discarding lookahead",
5903  yytoken, &yylval, parser);
5904  }
5905  /* Do not reclaim the symbols of the rule whose action triggered
5906  this YYABORT or YYACCEPT. */
5907  YYPOPSTACK (yylen);
5908  YY_STACK_PRINT (yyss, yyssp);
5909  while (yyssp != yyss)
5910  {
5911  yydestruct ("Cleanup: popping",
5912  yystos[*yyssp], yyvsp, parser);
5913  YYPOPSTACK (1);
5914  }
5915 #ifndef yyoverflow
5916  if (yyss != yyssa)
5917  YYSTACK_FREE (