1 #line 40 "../../libinterp/parse-tree/lex.ll"
9 #line 10 "parse-tree/lex.cc"
11 #define YY_INT_ALIGNED short int
16 #define YY_FLEX_MAJOR_VERSION 2
17 #define YY_FLEX_MINOR_VERSION 5
18 #define YY_FLEX_SUBMINOR_VERSION 35
19 #if YY_FLEX_SUBMINOR_VERSION > 0
40 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
45 #ifndef __STDC_LIMIT_MACROS
46 #define __STDC_LIMIT_MACROS 1
66 #define INT8_MIN (-128)
69 #define INT16_MIN (-32767-1)
72 #define INT32_MIN (-2147483647-1)
75 #define INT8_MAX (127)
78 #define INT16_MAX (32767)
81 #define INT32_MAX (2147483647)
84 #define UINT8_MAX (255U)
87 #define UINT16_MAX (65535U)
90 #define UINT32_MAX (4294967295U)
105 #if defined (__STDC__)
113 #define yyconst const
126 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
129 #ifndef YY_TYPEDEF_YY_SCANNER_T
130 #define YY_TYPEDEF_YY_SCANNER_T
136 #define yyin yyg->yyin_r
137 #define yyout yyg->yyout_r
138 #define yyextra yyg->yyextra_r
139 #define yyleng yyg->yyleng_r
140 #define yytext yyg->yytext_r
141 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
142 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
143 #define yy_flex_debug yyg->yy_flex_debug_r
149 #define BEGIN yyg->yy_start = 1 + 2 *
155 #define YY_START ((yyg->yy_start - 1) / 2)
156 #define YYSTATE YY_START
159 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
162 #define YY_NEW_FILE octave_restart(yyin ,yyscanner )
164 #define YY_END_OF_BUFFER_CHAR 0
173 #define YY_BUF_SIZE 32768
175 #define YY_BUF_SIZE 16384
181 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
183 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
184 #define YY_TYPEDEF_YY_BUFFER_STATE
188 #define EOB_ACT_CONTINUE_SCAN 0
189 #define EOB_ACT_END_OF_FILE 1
190 #define EOB_ACT_LAST_MATCH 2
192 #define YY_LESS_LINENO(n)
199 int yyless_macro_arg = (n); \
200 YY_LESS_LINENO(yyless_macro_arg);\
201 *yy_cp = yyg->yy_hold_char; \
202 YY_RESTORE_YY_MORE_OFFSET \
203 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
204 YY_DO_BEFORE_ACTION; \
208 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
210 #ifndef YY_TYPEDEF_YY_SIZE_T
211 #define YY_TYPEDEF_YY_SIZE_T
215 #ifndef YY_STRUCT_YY_BUFFER_STATE
216 #define YY_STRUCT_YY_BUFFER_STATE
263 #define YY_BUFFER_NEW 0
264 #define YY_BUFFER_NORMAL 1
275 #define YY_BUFFER_EOF_PENDING 2
286 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
287 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
293 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
307 #define YY_FLUSH_BUFFER octave__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
317 #define yy_new_buffer octave__create_buffer
319 #define yy_set_interactive(is_interactive) \
321 if ( ! YY_CURRENT_BUFFER ){ \
322 octave_ensure_buffer_stack (yyscanner); \
323 YY_CURRENT_BUFFER_LVALUE = \
324 octave__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
326 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
329 #define yy_set_bol(at_bol) \
331 if ( ! YY_CURRENT_BUFFER ){\
332 octave_ensure_buffer_stack (yyscanner); \
333 YY_CURRENT_BUFFER_LVALUE = \
334 octave__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
336 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
339 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
343 #define octave_wrap(n) 1
344 #define YY_SKIP_YYWRAP
350 #define yytext_ptr yytext_r
360 #define YY_DO_BEFORE_ACTION \
361 yyg->yytext_ptr = yy_bp; \
362 yyleng = (size_t) (yy_cp - yy_bp); \
363 yyg->yy_hold_char = *yy_cp; \
365 yyg->yy_c_buf_p = yy_cp;
367 #define YY_NUM_RULES 119
368 #define YY_END_OF_BUFFER 120
378 0, 0, 0, 0, 6, 6, 0, 0, 0, 0,
379 0, 0, 0, 0, 0, 0, 120, 118, 46, 56,
380 56, 89, 58, 118, 50, 72, 57, 94, 95, 76,
381 86, 90, 87, 96, 77, 45, 45, 59, 85, 74,
382 97, 75, 118, 55, 10, 78, 11, 79, 116, 73,
383 117, 88, 46, 118, 5, 2, 2, 5, 4, 5,
384 5, 4, 5, 5, 5, 5, 3, 5, 5, 5,
385 5, 5, 5, 3, 5, 5, 5, 5, 5, 5,
386 5, 5, 5, 5, 5, 5, 5, 6, 7, 7,
387 8, 9, 6, 1, 1, 119, 15, 15, 119, 119,
389 18, 18, 18, 18, 37, 38, 38, 20, 36, 119,
390 41, 42, 42, 40, 46, 0, 56, 70, 0, 16,
391 16, 50, 0, 81, 112, 80, 100, 92, 98, 93,
392 99, 91, 62, 60, 61, 0, 63, 45, 64, 65,
393 101, 45, 45, 0, 43, 0, 83, 67, 68, 71,
394 84, 53, 0, 48, 48, 0, 102, 108, 113, 82,
395 69, 46, 0, 0, 5, 5, 2, 5, 5, 5,
396 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
397 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
398 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
400 5, 5, 5, 5, 5, 5, 6, 7, 6, 1,
401 0, 15, 15, 15, 0, 0, 0, 0, 0, 0,
402 18, 0, 17, 17, 37, 38, 19, 0, 35, 35,
403 34, 34, 35, 21, 23, 24, 25, 26, 27, 28,
404 29, 35, 41, 42, 39, 16, 51, 109, 66, 105,
405 103, 104, 0, 106, 0, 107, 110, 44, 45, 0,
406 45, 45, 114, 115, 53, 0, 0, 49, 49, 0,
407 12, 12, 5, 5, 5, 5, 5, 5, 5, 5,
408 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
409 5, 5, 5, 5, 0, 13, 13, 0, 14, 14,
411 17, 0, 0, 32, 32, 0, 0, 33, 33, 21,
412 22, 0, 51, 111, 0, 47, 47, 0, 45, 54,
413 49, 12, 5, 5, 5, 5, 5, 5, 5, 5,
414 5, 13, 14, 0, 30, 30, 0, 33, 21, 52,
415 51, 47, 54, 5, 5, 5, 0, 31, 31, 52,
416 51, 51, 5, 5, 5, 31, 0
421 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
422 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
423 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
424 1, 2, 5, 6, 7, 8, 7, 9, 10, 11,
425 12, 13, 14, 15, 16, 17, 18, 19, 20, 20,
426 20, 20, 20, 20, 20, 21, 21, 22, 23, 24,
427 25, 26, 27, 28, 29, 29, 29, 30, 30, 29,
428 8, 8, 31, 31, 8, 8, 8, 8, 8, 8,
429 8, 8, 8, 8, 8, 8, 8, 32, 8, 8,
430 33, 34, 35, 36, 8, 1, 37, 38, 29, 30,
432 30, 39, 8, 8, 31, 31, 8, 8, 8, 40,
433 8, 8, 8, 41, 8, 42, 8, 43, 8, 44,
434 8, 8, 45, 46, 47, 48, 1, 1, 1, 1,
435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
438 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
439 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
440 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
453 1, 1, 2, 3, 1, 4, 1, 5, 1, 6,
454 1, 1, 1, 1, 7, 1, 8, 1, 9, 9,
455 9, 1, 7, 1, 1, 1, 1, 10, 11, 11,
456 5, 5, 1, 4, 1, 1, 11, 11, 11, 5,
457 5, 5, 5, 5, 1, 1, 1, 1
462 0, 47, 54, 101, 102, 107, 809, 808, 47, 113,
463 117, 121, 123, 127, 131, 135, 811, 1250, 105, 1250,
464 807, 784, 1250, 49, 780, 123, 1250, 1250, 1250, 130,
465 122, 1250, 97, 152, 782, 172, 164, 1250, 1250, 126,
466 781, 127, 0, 1250, 1250, 172, 1250, 780, 1250, 121,
467 1250, 779, 156, 156, 801, 1250, 799, 162, 1250, 215,
468 196, 1250, 799, 798, 194, 197, 1250, 204, 258, 175,
469 293, 146, 797, 1250, 206, 207, 212, 336, 796, 795,
470 259, 794, 208, 793, 223, 783, 216, 263, 1250, 781,
471 1250, 1250, 278, 1250, 780, 209, 1250, 223, 279, 246,
473 1250, 294, 779, 236, 0, 1250, 774, 770, 757, 379,
474 0, 1250, 770, 762, 295, 284, 1250, 1250, 286, 1250,
475 295, 743, 0, 1250, 1250, 745, 1250, 1250, 1250, 1250,
476 1250, 1250, 290, 744, 743, 750, 741, 286, 737, 736,
477 1250, 414, 301, 314, 1250, 0, 735, 1250, 1250, 1250,
478 734, 741, 338, 1250, 737, 305, 1250, 1250, 1250, 1250,
479 1250, 341, 343, 347, 736, 728, 1250, 721, 0, 443,
480 709, 694, 226, 635, 616, 598, 584, 579, 560, 359,
481 302, 327, 309, 334, 383, 337, 362, 555, 486, 325,
482 391, 547, 521, 369, 545, 541, 510, 390, 553, 351,
484 426, 506, 501, 496, 492, 460, 388, 1250, 389, 1250,
485 397, 1250, 405, 1250, 435, 422, 450, 453, 429, 443,
486 1250, 455, 1250, 457, 0, 1250, 1250, 423, 1250, 461,
487 1250, 403, 467, 457, 1250, 1250, 1250, 1250, 1250, 1250,
488 1250, 0, 0, 1250, 1250, 1250, 590, 1250, 372, 1250,
489 1250, 1250, 475, 1250, 481, 1250, 1250, 1250, 494, 470,
490 490, 358, 1250, 1250, 353, 0, 489, 1250, 515, 524,
491 1250, 526, 634, 361, 441, 358, 354, 317, 529, 298,
492 585, 271, 265, 262, 535, 535, 544, 211, 222, 213,
493 0, 675, 685, 532, 564, 1250, 535, 574, 1250, 576,
495 1250, 610, 688, 1250, 179, 585, 599, 1250, 604, 596,
496 0, 0, 712, 1250, 620, 1250, 622, 665, 678, 0,
497 1250, 1250, 749, 178, 786, 154, 722, 699, 708, 744,
498 823, 1250, 1250, 732, 1250, 115, 690, 1250, 1250, 0,
499 860, 1250, 0, 897, 934, 0, 718, 1250, 744, 0,
500 0, 0, 0, 0, 0, 1250, 1250, 978, 989, 1000,
501 1011, 1022, 1033, 1040, 1047, 1058, 1069, 1080, 1091, 1102,
502 1113, 1120, 1123, 1130, 1141, 1152, 1163, 1166, 1177, 1188,
503 1195, 1206, 1213, 1220, 1231, 1238
508 357, 1, 357, 3, 1, 1, 358, 358, 359, 359,
509 360, 360, 361, 361, 362, 362, 357, 357, 357, 357,
510 357, 357, 357, 363, 364, 357, 357, 357, 357, 357,
511 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
512 357, 357, 365, 357, 357, 357, 357, 357, 357, 357,
513 357, 357, 357, 363, 366, 357, 357, 366, 357, 366,
514 366, 357, 366, 366, 366, 366, 357, 366, 366, 366,
515 366, 71, 366, 357, 366, 366, 366, 366, 366, 366,
516 366, 366, 366, 366, 366, 366, 366, 357, 357, 357,
517 357, 357, 357, 357, 357, 367, 357, 367, 367, 367,
519 357, 357, 357, 368, 369, 357, 357, 357, 357, 370,
520 371, 357, 357, 357, 357, 363, 357, 357, 363, 357,
521 363, 364, 372, 357, 357, 357, 357, 357, 357, 357,
522 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
523 357, 357, 357, 357, 357, 373, 357, 357, 357, 357,
524 357, 374, 357, 357, 357, 375, 357, 357, 357, 357,
525 357, 357, 363, 363, 366, 357, 357, 366, 60, 78,
526 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
527 366, 366, 366, 366, 366, 366, 366, 366, 366, 71,
528 366, 366, 366, 366, 366, 366, 366, 366, 193, 357,
530 376, 366, 366, 366, 366, 366, 357, 357, 357, 357,
531 367, 357, 367, 357, 367, 367, 367, 367, 357, 368,
532 357, 368, 357, 368, 369, 357, 357, 357, 357, 357,
533 357, 357, 377, 357, 357, 357, 357, 357, 357, 357,
534 357, 378, 371, 357, 357, 357, 379, 357, 357, 357,
535 357, 357, 380, 357, 357, 357, 357, 357, 357, 357,
536 357, 373, 357, 357, 374, 381, 375, 357, 375, 363,
537 357, 363, 357, 366, 366, 366, 366, 366, 382, 366,
538 366, 366, 366, 366, 189, 366, 366, 193, 366, 366,
539 199, 78, 376, 375, 367, 357, 367, 367, 357, 367,
541 357, 357, 357, 357, 357, 377, 377, 357, 377, 357,
542 378, 383, 379, 357, 380, 357, 380, 357, 357, 384,
543 357, 357, 78, 383, 273, 366, 382, 380, 366, 366,
544 78, 357, 357, 357, 357, 357, 385, 357, 357, 386,
545 379, 357, 384, 78, 273, 331, 385, 357, 385, 386,
546 341, 341, 344, 345, 345, 357, 0, 357, 357, 357,
547 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
548 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
549 357, 357, 357, 357, 357, 357
554 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
555 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
556 37, 38, 39, 40, 41, 42, 43, 44, 25, 25,
557 25, 25, 45, 46, 47, 48, 25, 25, 25, 25,
558 25, 25, 25, 25, 49, 50, 51, 52, 53, 97,
559 98, 120, 121, 54, 55, 19, 56, 57, 58, 59,
560 24, 60, 61, 62, 63, 64, 65, 66, 67, 68,
561 69, 70, 71, 72, 72, 73, 74, 75, 76, 77,
562 78, 79, 60, 60, 60, 60, 80, 81, 82, 83,
563 60, 60, 60, 60, 60, 60, 60, 60, 84, 85,
565 86, 87, 53, 88, 89, 90, 115, 54, 93, 89,
566 90, 116, 130, 54, 99, 97, 98, 335, 102, 100,
567 103, 131, 102, 104, 103, 106, 107, 104, 108, 106,
568 107, 124, 108, 112, 113, 128, 91, 112, 113, 109,
569 114, 91, 126, 109, 114, 159, 129, 125, 92, 147,
570 148, 150, 151, 92, 127, 166, 110, 162, 120, 121,
571 110, 132, 163, 166, 133, 134, 160, 135, 136, 137,
572 138, 138, 138, 153, 154, 155, 166, 165, 156, 166,
573 142, 304, 143, 143, 143, 139, 168, 140, 142, 165,
574 143, 143, 143, 144, 145, 166, 157, 166, 166, 188,
576 164, 144, 145, 146, 171, 166, 173, 166, 166, 166,
577 175, 212, 213, 166, 166, 146, 166, 166, 174, 177,
578 172, 176, 169, 166, 166, 214, 213, 166, 178, 194,
579 195, 196, 203, 169, 169, 169, 197, 198, 223, 224,
580 206, 192, 170, 169, 169, 169, 169, 204, 212, 213,
581 274, 169, 169, 169, 169, 169, 169, 169, 169, 166,
582 200, 154, 155, 166, 207, 201, 166, 179, 205, 116,
583 180, 181, 166, 182, 183, 184, 185, 185, 185, 209,
584 215, 212, 213, 202, 163, 216, 120, 121, 120, 121,
585 217, 186, 218, 187, 166, 219, 115, 246, 121, 166,
587 220, 116, 249, 166, 138, 138, 138, 268, 269, 189,
588 166, 190, 190, 190, 250, 255, 145, 142, 166, 143,
589 143, 143, 191, 192, 193, 279, 277, 260, 166, 260,
590 144, 145, 261, 261, 261, 166, 193, 166, 166, 153,
591 154, 155, 162, 199, 156, 120, 121, 163, 270, 271,
592 272, 278, 200, 154, 155, 166, 165, 156, 280, 166,
593 166, 282, 166, 166, 199, 199, 199, 199, 165, 266,
594 166, 275, 199, 199, 199, 199, 199, 199, 199, 199,
595 230, 231, 232, 276, 166, 233, 283, 164, 145, 207,
596 209, 166, 166, 289, 116, 163, 314, 234, 234, 212,
598 213, 185, 185, 185, 286, 231, 286, 214, 213, 287,
599 287, 287, 281, 192, 290, 235, 236, 237, 238, 239,
600 240, 241, 242, 258, 212, 213, 258, 294, 268, 269,
601 219, 258, 259, 259, 259, 220, 215, 212, 213, 302,
602 267, 216, 166, 144, 145, 223, 224, 258, 267, 258,
603 273, 295, 296, 297, 298, 299, 300, 223, 224, 301,
604 224, 166, 303, 304, 305, 326, 217, 306, 218, 308,
605 309, 273, 273, 273, 273, 310, 310, 316, 317, 273,
606 273, 273, 273, 273, 273, 273, 273, 166, 261, 261,
607 261, 268, 269, 166, 318, 284, 318, 166, 284, 319,
609 319, 319, 166, 284, 285, 285, 285, 166, 261, 261,
610 261, 166, 259, 259, 259, 191, 192, 321, 269, 284,
611 145, 284, 166, 144, 145, 270, 271, 272, 322, 121,
612 328, 316, 317, 294, 268, 269, 166, 332, 213, 288,
613 288, 288, 166, 315, 165, 166, 166, 165, 166, 288,
614 288, 315, 165, 287, 287, 287, 166, 288, 288, 288,
615 291, 166, 287, 287, 287, 295, 296, 297, 165, 292,
616 165, 291, 291, 291, 192, 298, 299, 300, 333, 213,
617 166, 291, 291, 291, 291, 166, 166, 308, 309, 291,
618 291, 291, 291, 291, 291, 291, 291, 313, 329, 166,
620 329, 308, 309, 330, 330, 330, 338, 309, 313, 313,
621 313, 334, 335, 336, 339, 339, 337, 166, 313, 313,
622 313, 313, 316, 317, 342, 317, 313, 313, 313, 313,
623 313, 313, 313, 313, 323, 324, 166, 312, 323, 323,
624 323, 325, 323, 323, 323, 323, 323, 323, 312, 323,
625 323, 323, 325, 325, 325, 323, 312, 323, 323, 323,
626 323, 323, 325, 325, 325, 325, 323, 323, 323, 323,
627 325, 325, 325, 325, 325, 325, 325, 325, 323, 323,
628 323, 323, 331, 319, 319, 319, 294, 268, 269, 303,
629 304, 305, 348, 349, 306, 166, 319, 319, 319, 267,
631 328, 316, 317, 331, 331, 331, 331, 267, 145, 166,
632 166, 331, 331, 331, 331, 331, 331, 331, 331, 341,
633 348, 349, 166, 328, 316, 317, 330, 330, 330, 166,
634 313, 313, 313, 334, 335, 336, 315, 166, 337, 154,
635 341, 341, 341, 341, 315, 166, 356, 349, 341, 341,
636 341, 341, 341, 341, 341, 341, 344, 266, 264, 263,
637 257, 256, 330, 330, 330, 254, 253, 252, 251, 248,
638 123, 245, 244, 228, 192, 227, 226, 344, 344, 344,
639 344, 221, 210, 208, 166, 344, 344, 344, 344, 344,
640 344, 344, 344, 345, 166, 166, 166, 166, 166, 166,
642 166, 167, 166, 161, 158, 149, 141, 123, 118, 117,
643 357, 95, 95, 357, 345, 345, 345, 345, 357, 357,
644 357, 357, 345, 345, 345, 345, 345, 345, 345, 345,
645 346, 357, 357, 357, 357, 357, 357, 357, 357, 357,
646 357, 346, 346, 346, 357, 357, 357, 357, 357, 357,
647 357, 346, 346, 346, 346, 357, 357, 357, 357, 346,
648 346, 346, 346, 346, 346, 346, 346, 351, 357, 357,
649 357, 357, 357, 357, 357, 357, 357, 357, 352, 352,
650 352, 357, 357, 357, 357, 357, 357, 357, 351, 351,
651 351, 351, 357, 357, 357, 357, 351, 351, 351, 351,
653 351, 351, 351, 351, 353, 357, 357, 357, 357, 357,
654 357, 357, 357, 357, 357, 353, 353, 353, 357, 357,
655 357, 357, 357, 357, 357, 353, 353, 353, 353, 357,
656 357, 357, 357, 353, 353, 353, 353, 353, 353, 353,
657 353, 354, 357, 357, 357, 357, 357, 357, 357, 357,
658 357, 357, 355, 355, 355, 357, 357, 357, 357, 357,
659 357, 357, 354, 354, 354, 354, 357, 357, 357, 357,
660 354, 354, 354, 354, 354, 354, 354, 354, 94, 94,
661 94, 94, 94, 94, 94, 94, 94, 94, 94, 96,
662 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
664 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
665 101, 105, 105, 105, 105, 105, 105, 105, 105, 105,
666 105, 105, 111, 111, 111, 111, 111, 111, 111, 111,
667 111, 111, 111, 119, 119, 119, 119, 119, 119, 119,
668 119, 119, 119, 119, 122, 357, 357, 357, 122, 122,
669 122, 152, 357, 357, 357, 357, 357, 152, 165, 357,
670 357, 165, 165, 165, 357, 165, 165, 165, 165, 211,
671 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
672 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
673 222, 225, 357, 357, 357, 225, 225, 225, 357, 225,
675 225, 225, 229, 229, 229, 229, 229, 229, 229, 229,
676 229, 229, 229, 243, 357, 357, 243, 243, 357, 243,
677 243, 243, 243, 243, 247, 357, 357, 357, 357, 357,
678 247, 262, 357, 262, 265, 357, 357, 265, 265, 357,
679 265, 267, 267, 267, 267, 267, 267, 267, 267, 267,
680 267, 267, 293, 293, 293, 293, 293, 293, 293, 293,
681 293, 293, 293, 307, 307, 307, 307, 307, 307, 307,
682 307, 307, 307, 307, 311, 357, 311, 312, 357, 312,
683 312, 312, 312, 312, 312, 312, 312, 312, 315, 315,
684 315, 315, 315, 315, 315, 315, 315, 315, 315, 320,
686 357, 357, 357, 357, 357, 320, 327, 327, 327, 327,
687 327, 327, 327, 327, 327, 327, 327, 340, 357, 357,
688 357, 357, 357, 340, 343, 357, 357, 357, 343, 357,
689 343, 347, 347, 347, 347, 347, 347, 347, 347, 347,
690 347, 347, 350, 357, 357, 357, 350, 357, 350, 17,
691 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
692 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
693 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
694 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
695 357, 357, 357, 357, 357, 357, 357, 357
701 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
702 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
703 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
704 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
705 1, 1, 1, 1, 1, 1, 1, 1, 2, 9,
706 9, 24, 24, 2, 3, 3, 3, 3, 3, 3,
707 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
708 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
709 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
710 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
712 3, 3, 4, 5, 5, 5, 19, 4, 6, 6,
713 6, 19, 33, 6, 10, 10, 10, 336, 11, 10,
714 11, 33, 12, 11, 12, 13, 13, 12, 13, 14,
715 14, 26, 14, 15, 15, 31, 5, 16, 16, 13,
716 15, 6, 30, 14, 16, 50, 31, 26, 5, 40,
717 40, 42, 42, 6, 30, 326, 13, 53, 54, 54,
718 14, 34, 53, 58, 34, 34, 50, 34, 34, 34,
719 34, 34, 34, 46, 46, 46, 70, 72, 46, 324,
720 37, 305, 37, 37, 37, 34, 58, 34, 36, 72,
721 36, 36, 36, 37, 37, 65, 46, 61, 66, 70,
723 54, 36, 36, 36, 61, 68, 65, 75, 76, 83,
724 66, 96, 96, 77, 290, 36, 60, 87, 65, 68,
725 61, 66, 60, 289, 85, 98, 98, 173, 68, 75,
726 75, 76, 83, 60, 60, 60, 77, 77, 104, 104,
727 87, 288, 60, 60, 60, 60, 60, 85, 100, 100,
728 173, 60, 60, 60, 60, 60, 60, 60, 60, 69,
729 81, 81, 81, 284, 88, 81, 283, 69, 85, 88,
730 69, 69, 282, 69, 69, 69, 69, 69, 69, 93,
731 99, 99, 99, 81, 93, 99, 116, 116, 119, 119,
732 100, 69, 100, 69, 71, 102, 115, 121, 121, 280,
734 102, 115, 133, 181, 138, 138, 138, 156, 156, 71,
735 183, 71, 71, 71, 133, 138, 138, 143, 278, 143,
736 143, 143, 71, 71, 71, 183, 181, 144, 182, 144,
737 143, 143, 144, 144, 144, 184, 71, 78, 186, 153,
738 153, 153, 162, 78, 153, 163, 163, 162, 164, 164,
739 164, 182, 200, 200, 200, 277, 190, 200, 184, 276,
740 180, 186, 274, 187, 78, 78, 78, 78, 190, 265,
741 194, 180, 78, 78, 78, 78, 78, 78, 78, 78,
742 110, 110, 110, 180, 185, 110, 187, 163, 262, 207,
743 209, 198, 191, 194, 207, 209, 249, 110, 110, 211,
745 211, 185, 185, 185, 191, 232, 191, 213, 213, 191,
746 191, 191, 185, 185, 198, 110, 110, 110, 110, 110,
747 110, 110, 110, 142, 216, 216, 142, 201, 201, 201,
748 219, 142, 142, 142, 142, 219, 215, 215, 215, 228,
749 201, 215, 275, 142, 142, 220, 220, 142, 201, 142,
750 170, 217, 217, 217, 218, 218, 218, 222, 222, 224,
751 224, 206, 230, 230, 230, 275, 216, 230, 216, 233,
752 233, 170, 170, 170, 170, 234, 234, 253, 253, 170,
753 170, 170, 170, 170, 170, 170, 170, 189, 260, 260,
754 260, 267, 267, 205, 255, 189, 255, 204, 189, 255,
756 255, 255, 203, 189, 189, 189, 189, 202, 261, 261,
757 261, 197, 259, 259, 259, 189, 189, 269, 269, 189,
758 261, 189, 193, 259, 259, 270, 270, 270, 272, 272,
759 279, 279, 279, 294, 294, 294, 286, 297, 297, 193,
760 193, 193, 196, 279, 285, 287, 195, 285, 192, 193,
761 193, 279, 285, 286, 286, 286, 188, 193, 193, 193,
762 199, 179, 287, 287, 287, 295, 295, 295, 285, 199,
763 285, 199, 199, 199, 287, 298, 298, 298, 300, 300,
764 178, 199, 199, 199, 199, 177, 281, 306, 306, 199,
765 199, 199, 199, 199, 199, 199, 199, 247, 281, 176,
767 281, 307, 307, 281, 281, 281, 309, 309, 247, 247,
768 247, 302, 302, 302, 310, 310, 302, 175, 247, 247,
769 247, 247, 315, 315, 317, 317, 247, 247, 247, 247,
770 247, 247, 247, 247, 273, 273, 174, 273, 273, 273,
771 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
772 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
773 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
774 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
775 273, 273, 292, 318, 318, 318, 293, 293, 293, 303,
776 303, 303, 337, 337, 303, 172, 319, 319, 319, 293,
778 328, 328, 328, 292, 292, 292, 292, 293, 319, 329,
779 171, 292, 292, 292, 292, 292, 292, 292, 292, 313,
780 347, 347, 168, 327, 327, 327, 329, 329, 329, 166,
781 313, 313, 313, 334, 334, 334, 327, 165, 334, 155,
782 313, 313, 313, 313, 327, 330, 349, 349, 313, 313,
783 313, 313, 313, 313, 313, 313, 323, 152, 151, 147,
784 140, 139, 330, 330, 330, 137, 136, 135, 134, 126,
785 122, 114, 113, 109, 330, 108, 107, 323, 323, 323,
786 323, 103, 95, 90, 86, 323, 323, 323, 323, 323,
787 323, 323, 323, 325, 84, 82, 80, 79, 73, 64,
789 63, 57, 55, 52, 48, 41, 35, 25, 22, 21,
790 17, 8, 7, 0, 325, 325, 325, 325, 0, 0,
791 0, 0, 325, 325, 325, 325, 325, 325, 325, 325,
792 331, 0, 0, 0, 0, 0, 0, 0, 0, 0,
793 0, 331, 331, 331, 0, 0, 0, 0, 0, 0,
794 0, 331, 331, 331, 331, 0, 0, 0, 0, 331,
795 331, 331, 331, 331, 331, 331, 331, 341, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0, 341, 341,
797 341, 0, 0, 0, 0, 0, 0, 0, 341, 341,
798 341, 341, 0, 0, 0, 0, 341, 341, 341, 341,
800 341, 341, 341, 341, 344, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 344, 344, 344, 0, 0,
802 0, 0, 0, 0, 0, 344, 344, 344, 344, 0,
803 0, 0, 0, 344, 344, 344, 344, 344, 344, 344,
804 344, 345, 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 0, 345, 345, 345, 0, 0, 0, 0, 0,
806 0, 0, 345, 345, 345, 345, 0, 0, 0, 0,
807 345, 345, 345, 345, 345, 345, 345, 345, 358, 358,
808 358, 358, 358, 358, 358, 358, 358, 358, 358, 359,
809 359, 359, 359, 359, 359, 359, 359, 359, 359, 359,
811 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
812 360, 361, 361, 361, 361, 361, 361, 361, 361, 361,
813 361, 361, 362, 362, 362, 362, 362, 362, 362, 362,
814 362, 362, 362, 363, 363, 363, 363, 363, 363, 363,
815 363, 363, 363, 363, 364, 0, 0, 0, 364, 364,
816 364, 365, 0, 0, 0, 0, 0, 365, 366, 0,
817 0, 366, 366, 366, 0, 366, 366, 366, 366, 367,
818 367, 367, 367, 367, 367, 367, 367, 367, 367, 367,
819 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
820 368, 369, 0, 0, 0, 369, 369, 369, 0, 369,
822 369, 369, 370, 370, 370, 370, 370, 370, 370, 370,
823 370, 370, 370, 371, 0, 0, 371, 371, 0, 371,
824 371, 371, 371, 371, 372, 0, 0, 0, 0, 0,
825 372, 373, 0, 373, 374, 0, 0, 374, 374, 0,
826 374, 375, 375, 375, 375, 375, 375, 375, 375, 375,
827 375, 375, 376, 376, 376, 376, 376, 376, 376, 376,
828 376, 376, 376, 377, 377, 377, 377, 377, 377, 377,
829 377, 377, 377, 377, 378, 0, 378, 379, 0, 379,
830 379, 379, 379, 379, 379, 379, 379, 379, 380, 380,
831 380, 380, 380, 380, 380, 380, 380, 380, 380, 381,
833 0, 0, 0, 0, 0, 381, 382, 382, 382, 382,
834 382, 382, 382, 382, 382, 382, 382, 383, 0, 0,
835 0, 0, 0, 383, 384, 0, 0, 0, 384, 0,
836 384, 385, 385, 385, 385, 385, 385, 385, 385, 385,
837 385, 385, 386, 0, 0, 0, 386, 0, 386, 357,
838 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
839 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
840 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
841 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
842 357, 357, 357, 357, 357, 357, 357, 357
849 #define REJECT reject_used_but_not_detected
850 #define yymore() yymore_used_but_not_detected
851 #define YY_MORE_ADJ 0
852 #define YY_RESTORE_YY_MORE_OFFSET
853 #line 1 "../../libinterp/parse-tree/lex.ll"
893 #line 58 "../../libinterp/parse-tree/lex.ll"
904 #include <sys/types.h>
935 #if defined (GNULIB_NAMESPACE)
939 #define fprintf GNULIB_NAMESPACE::fprintf
940 #define fwrite GNULIB_NAMESPACE::fwrite
941 #define isatty GNULIB_NAMESPACE::isatty
942 #define malloc GNULIB_NAMESPACE::malloc
943 #define realloc GNULIB_NAMESPACE::realloc
946 #if ! (defined (FLEX_SCANNER) \
947 && defined (YY_FLEX_MAJOR_VERSION) && YY_FLEX_MAJOR_VERSION >= 2 \
948 && defined (YY_FLEX_MINOR_VERSION) && YY_FLEX_MINOR_VERSION >= 5)
949 #error lex.l requires flex version 2.5.4 or later
952 #define YY_EXTRA_TYPE octave_base_lexer *
953 #define curr_lexer yyextra
960 #define YY_INPUT(buf, result, max_size) \
961 result = curr_lexer->fill_flex_buffer (buf, max_size)
965 #ifdef YY_FATAL_ERROR
966 #undef YY_FATAL_ERROR
968 #define YY_FATAL_ERROR(msg) \
969 (octave_get_extra (yyscanner))->fatal_error (msg)
971 #define CMD_OR_OP(PATTERN, TOK, COMPAT) \
975 curr_lexer->lexer_debug (PATTERN); \
977 if (curr_lexer->looks_like_command_arg ()) \
980 curr_lexer->push_start_state (COMMAND_START); \
984 return curr_lexer->handle_op_internal (TOK, false, COMPAT); \
989 #define CMD_OR_COMPUTED_ASSIGN_OP(PATTERN, TOK) \
993 curr_lexer->lexer_debug (PATTERN); \
995 if (curr_lexer->previous_token_may_be_command ()) \
998 curr_lexer->push_start_state (COMMAND_START); \
1002 return curr_lexer->handle_incompatible_op (PATTERN, TOK, false); \
1007 #define CMD_OR_UNARY_OP(PATTERN, TOK, COMPAT) \
1011 curr_lexer->lexer_debug (PATTERN); \
1013 if (curr_lexer->previous_token_may_be_command ()) \
1015 if (curr_lexer->looks_like_command_arg ()) \
1018 curr_lexer->push_start_state (COMMAND_START); \
1022 return curr_lexer->handle_op_internal (TOK, false, COMPAT); \
1029 ? curr_lexer->handle_unary_op (TOK) \
1030 : curr_lexer->handle_incompatible_unary_op (TOK)); \
1035 curr_lexer->xunput (','); \
1037 curr_lexer->current_input_column--; \
1053 #define HANDLE_STRING_CONTINUATION \
1056 curr_lexer->decrement_promptflag (); \
1057 curr_lexer->input_line_number++; \
1058 curr_lexer->current_input_column = 1; \
1060 if (curr_lexer->is_push_lexer ()) \
1062 if (curr_lexer->at_end_of_buffer ()) \
1065 if (curr_lexer->at_end_of_file ()) \
1066 return curr_lexer->handle_end_of_input (); \
1084 #line 1085 "parse-tree/lex.cc"
1087 #define COMMAND_START 1
1088 #define MATRIX_START 2
1089 #define INPUT_FILE_START 3
1090 #define BLOCK_COMMENT_START 4
1091 #define LINE_COMMENT_START 5
1092 #define DQ_STRING_START 6
1093 #define SQ_STRING_START 7
1095 #ifndef YY_NO_UNISTD_H
1103 #ifndef YY_EXTRA_TYPE
1104 #define YY_EXTRA_TYPE void *
1147 # define yylval yyg->yylval_r
1194 #ifndef YY_SKIP_YYWRAP
1205 static void yy_flex_strncpy (
char *,
yyconst char *,
int ,
yyscan_t yyscanner);
1208 #ifdef YY_NEED_STRLEN
1215 static int yyinput (
yyscan_t yyscanner );
1223 #ifndef YY_READ_BUF_SIZE
1226 #define YY_READ_BUF_SIZE 16384
1228 #define YY_READ_BUF_SIZE 8192
1237 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1244 #define YY_INPUT(buf,result,max_size) \
1245 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1249 for ( n = 0; n < max_size && \
1250 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1251 buf[n] = (char) c; \
1253 buf[n++] = (char) c; \
1254 if ( c == EOF && ferror( yyin ) ) \
1255 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1261 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1263 if( errno != EINTR) \
1265 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1281 #define yyterminate() return YY_NULL
1285 #ifndef YY_START_STACK_INCR
1286 #define YY_START_STACK_INCR 25
1290 #ifndef YY_FATAL_ERROR
1291 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1300 #define YY_DECL_IS_OURS 1
1305 #define YY_DECL int octave_lex \
1306 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1312 #ifndef YY_USER_ACTION
1313 #define YY_USER_ACTION
1318 #define YY_BREAK break;
1321 #define YY_RULE_SETUP \
1323 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1324 (yytext[yyleng - 1] == '\n'); \
1332 register char *yy_cp, *yy_bp;
1333 register int yy_act;
1336 #line 261 "../../libinterp/parse-tree/lex.ll"
1344 #line 1345 "parse-tree/lex.cc"
1397 while (
yy_chk[
yy_base[yy_current_state] + yy_c] != yy_current_state )
1399 yy_current_state = (
int)
yy_def[yy_current_state];
1400 if ( yy_current_state >= 358 )
1403 yy_current_state =
yy_nxt[
yy_base[yy_current_state] + (
unsigned int) yy_c];
1406 while (
yy_base[yy_current_state] != 1250 );
1428 goto yy_find_action;
1433 #line 268 "../../libinterp/parse-tree/lex.ll"
1435 curr_lexer->lexer_debug (
"<INPUT_FILE_START>{ANY_INCLUDING_NL}");
1454 #line 286 "../../libinterp/parse-tree/lex.ll"
1456 curr_lexer->lexer_debug (
"<COMMAND_START>{NL}");
1461 curr_lexer->looking_for_object_index =
false;
1462 curr_lexer->at_beginning_of_statement =
true;
1471 #line 300 "../../libinterp/parse-tree/lex.ll"
1473 curr_lexer->lexer_debug (
"<COMMAND_START>[\\;\\,]");
1475 curr_lexer->looking_for_object_index =
false;
1476 curr_lexer->at_beginning_of_statement =
true;
1480 if (strcmp (
yytext,
",") == 0)
1488 #line 314 "../../libinterp/parse-tree/lex.ll"
1490 curr_lexer->lexer_debug (
"<COMMAND_START>[\\\"\\']");
1492 curr_lexer->at_beginning_of_statement =
false;
1502 #line 325 "../../libinterp/parse-tree/lex.ll"
1504 curr_lexer->lexer_debug (
"<COMMAND_START>[^#% \\t\\r\\n\\;\\,\\\"\\'][^ \\t\\r\\n\\;\\,]*{S}*");
1508 curr_lexer->looking_for_object_index =
false;
1509 curr_lexer->at_beginning_of_statement =
false;
1516 #line 336 "../../libinterp/parse-tree/lex.ll"
1518 curr_lexer->lexer_debug (
"<MATRIX_START>{S}*");
1520 curr_lexer->mark_previous_token_trailing_space ();
1526 #line 342 "../../libinterp/parse-tree/lex.ll"
1528 curr_lexer->lexer_debug (
"<MATRIX_START>{NL}");
1534 curr_lexer->gripe_matlab_incompatible (
"bare newline inside parentheses");
1537 int tok =
curr_lexer->previous_token_value ();
1539 if (! (tok ==
';' || tok ==
'[' || tok ==
'{'))
1563 #line 377 "../../libinterp/parse-tree/lex.ll"
1565 curr_lexer->lexer_debug (
"<MATRIX_START>\\]");
1567 curr_lexer->looking_at_object_index.pop_front ();
1570 curr_lexer->at_beginning_of_statement =
false;
1582 #line 394 "../../libinterp/parse-tree/lex.ll"
1584 curr_lexer->lexer_debug (
"<MATRIX_START>\\}*");
1586 curr_lexer->looking_at_object_index.pop_front ();
1589 curr_lexer->at_beginning_of_statement =
false;
1598 #line 407 "../../libinterp/parse-tree/lex.ll"
1602 bool unput_comma =
false;
1605 &&
curr_lexer->space_follows_previous_token ())
1607 int tok =
curr_lexer->previous_token_value ();
1609 if (! (tok ==
'[' || tok ==
'{'
1625 curr_lexer->looking_at_object_index.push_front (
false);
1628 curr_lexer->looking_for_object_index =
false;
1629 curr_lexer->at_beginning_of_statement =
false;
1632 && !
curr_lexer->parsed_function_name.top ())
1635 curr_lexer->looking_at_matrix_or_assign_lhs =
true;
1649 #line 455 "../../libinterp/parse-tree/lex.ll"
1655 curr_lexer->looking_at_object_index.pop_front ();
1658 curr_lexer->at_beginning_of_statement =
false;
1674 #line 478 "../../libinterp/parse-tree/lex.ll"
1676 curr_lexer->lexer_debug (
"^{S}*{CCHAR}\\{{S}*{NL}");
1697 #line 497 "../../libinterp/parse-tree/lex.ll"
1699 curr_lexer->lexer_debug (
"<BLOCK_COMMENT_START>^{S}*{CCHAR}\\{{S}*{NL}");
1718 #line 515 "../../libinterp/parse-tree/lex.ll"
1720 curr_lexer->lexer_debug (
"<BLOCK_COMMENT_START>^{S}*{CCHAR}\\}{S}*{NL}");
1725 if (
curr_lexer->block_comment_nesting_level > 1)
1732 if (
curr_lexer->block_comment_nesting_level == 0)
1746 #line 540 "../../libinterp/parse-tree/lex.ll"
1748 curr_lexer->lexer_debug (
"<BLOCK_COMMENT_START>.*{NL}");
1761 #line 552 "../../libinterp/parse-tree/lex.ll"
1763 curr_lexer->lexer_debug (
"{S}*{CCHAR}.*{NL}");
1772 #line 559 "../../libinterp/parse-tree/lex.ll"
1774 curr_lexer->lexer_debug (
"<LINE_COMMENT_START>{S}*{CCHAR}.*{NL}");
1776 bool full_line_comment =
curr_lexer->current_input_column == 1;
1780 bool have_space =
false;
1786 if (c ==
' ' || c ==
'\t')
1795 size_t num_comment_chars = 0;
1800 if (c ==
'#' || c ==
'%')
1802 num_comment_chars++;
1811 if (full_line_comment)
1813 if (num_comment_chars == 1 &&
yytext[i++] ==
'{')
1815 bool looks_like_block_comment =
true;
1820 if (! (c ==
' ' || c ==
'\t' || c ==
'\n' || c ==
'\r'))
1822 looks_like_block_comment =
false;
1827 if (looks_like_block_comment)
1840 curr_lexer->mark_previous_token_trailing_space ();
1857 #line 641 "../../libinterp/parse-tree/lex.ll"
1859 curr_lexer->lexer_debug (
"<LINE_COMMENT_START>{ANY_INCLUDING_NL}");
1872 #line 655 "../../libinterp/parse-tree/lex.ll"
1874 curr_lexer->lexer_debug (
"<LINE_COMMENT_START><<EOF>>");
1886 #line 667 "../../libinterp/parse-tree/lex.ll"
1888 curr_lexer->lexer_debug (
"<DQ_STRING_START>\\\"\\\"");
1896 #line 674 "../../libinterp/parse-tree/lex.ll"
1898 curr_lexer->lexer_debug (
"<DQ_STRING_START>\\\"");
1905 curr_lexer->at_beginning_of_statement =
false;
1919 #line 694 "../../libinterp/parse-tree/lex.ll"
1921 curr_lexer->lexer_debug (
"<DQ_STRING_START>\\\\[0-7]{1,3}");
1926 sscanf (
yytext+1,
"%o", &result);
1929 error (
"invalid octal escape sequence in character string");
1931 curr_lexer->string_text +=
static_cast<unsigned char> (result);
1936 #line 708 "../../libinterp/parse-tree/lex.ll"
1938 curr_lexer->lexer_debug (
"<DQ_STRING_START>\\\\x[0-9a-fA-F]+");
1943 sscanf (
yytext+2,
"%x", &result);
1949 curr_lexer->string_text +=
static_cast<unsigned char> (result);
1954 #line 723 "../../libinterp/parse-tree/lex.ll"
1956 curr_lexer->lexer_debug (
"<DQ_STRING_START>\"\\\\a\"");
1964 #line 730 "../../libinterp/parse-tree/lex.ll"
1966 curr_lexer->lexer_debug (
"<DQ_STRING_START>\"\\\\b\"");
1974 #line 737 "../../libinterp/parse-tree/lex.ll"
1976 curr_lexer->lexer_debug (
"<DQ_STRING_START>\"\\\\f\"");
1984 #line 744 "../../libinterp/parse-tree/lex.ll"
1986 curr_lexer->lexer_debug (
"<DQ_STRING_START>\"\\\\n\"");
1994 #line 751 "../../libinterp/parse-tree/lex.ll"
1996 curr_lexer->lexer_debug (
"<DQ_STRING_START>\"\\\\r\"");
2004 #line 758 "../../libinterp/parse-tree/lex.ll"
2006 curr_lexer->lexer_debug (
"<DQ_STRING_START>\"\\\\t\"");
2014 #line 765 "../../libinterp/parse-tree/lex.ll"
2016 curr_lexer->lexer_debug (
"<DQ_STRING_START>\"\\\\v\"");
2024 #line 773 "../../libinterp/parse-tree/lex.ll"
2028 #line 773 "../../libinterp/parse-tree/lex.ll"
2030 curr_lexer->lexer_debug (
"<DQ_STRING_START>(\\.\\.\\.){S}*{NL}|<DQ_STRING_START>(\\.\\.\\.){S}*{CCHAR}.*{NL}");
2032 static const char *msg =
"'...' continuations in double-quoted character strings are obsolete and will not be allowed in a future version of Octave; please use '\\' instead";
2034 std::string nm =
curr_lexer->fcn_file_full_name;
2040 "%s; near line %d of file '%s'", msg,
2048 #line 791 "../../libinterp/parse-tree/lex.ll"
2052 #line 791 "../../libinterp/parse-tree/lex.ll"
2054 curr_lexer->lexer_debug (
"<DQ_STRING_START>\\\\{S}+{NL}|<DQ_STRING_START>\\\\{S}*{CCHAR}.*{NL}");
2056 static const char *msg =
"white space and comments after continuation markers in double-quoted character strings are obsolete and will not be allowed in a future version of Octave";
2058 std::string nm =
curr_lexer->fcn_file_full_name;
2064 "%s; near line %d of file '%s'", msg,
2073 #line 808 "../../libinterp/parse-tree/lex.ll"
2075 curr_lexer->lexer_debug (
"<DQ_STRING_START>\\\\{NL}");
2082 #line 814 "../../libinterp/parse-tree/lex.ll"
2084 curr_lexer->lexer_debug (
"<DQ_STRING_START>\\\\.");
2092 #line 821 "../../libinterp/parse-tree/lex.ll"
2094 curr_lexer->lexer_debug (
"<DQ_STRING_START>\\.");
2102 #line 828 "../../libinterp/parse-tree/lex.ll"
2104 curr_lexer->lexer_debug (
"<DQ_STRING_START>[^\\.\\\\\\r\\n\\\"]+");
2113 #line 835 "../../libinterp/parse-tree/lex.ll"
2115 curr_lexer->lexer_debug (
"<DQ_STRING_START>{NL}");
2120 error (
"unterminated character string constant");
2130 #line 850 "../../libinterp/parse-tree/lex.ll"
2132 curr_lexer->lexer_debug (
"<SQ_STRING_START>\\'\\'");
2140 #line 857 "../../libinterp/parse-tree/lex.ll"
2142 curr_lexer->lexer_debug (
"<SQ_STRING_START>\\'");
2149 curr_lexer->at_beginning_of_statement =
false;
2163 #line 877 "../../libinterp/parse-tree/lex.ll"
2165 curr_lexer->lexer_debug (
"<SQ_STRING_START>[^\\'\\n\\r]+");
2174 #line 884 "../../libinterp/parse-tree/lex.ll"
2176 curr_lexer->lexer_debug (
"<SQ_STRING_START>{NL}");
2181 error (
"unterminated character string constant");
2191 #line 899 "../../libinterp/parse-tree/lex.ll"
2195 if (
curr_lexer->previous_token_may_be_command ()
2196 &&
curr_lexer->space_follows_previous_token ())
2203 int tok =
curr_lexer->previous_token_value ();
2206 &&
curr_lexer->space_follows_previous_token ()
2207 && ! (tok ==
'[' || tok ==
'{'
2229 #line 934 "../../libinterp/parse-tree/lex.ll"
2232 #line 934 "../../libinterp/parse-tree/lex.ll"
2234 curr_lexer->lexer_debug (
"{D}+/\\.[\\*/\\\\^\\']|{NUMBER}");
2236 if (
curr_lexer->previous_token_may_be_command ()
2237 &&
curr_lexer->space_follows_previous_token ())
2244 int tok =
curr_lexer->previous_token_value ();
2247 &&
curr_lexer->space_follows_previous_token ()
2248 && ! (tok ==
'[' || tok ==
'{'
2268 #line 968 "../../libinterp/parse-tree/lex.ll"
2272 curr_lexer->mark_previous_token_trailing_space ();
2281 #line 978 "../../libinterp/parse-tree/lex.ll"
2293 #line 989 "../../libinterp/parse-tree/lex.ll"
2297 #line 989 "../../libinterp/parse-tree/lex.ll"
2299 curr_lexer->lexer_debug (
"\\\\{S}*{NL}|\\\\{S}*{CCHAR}.*{NL}");
2301 static const char *msg =
"using continuation marker \\ outside of double quoted strings is deprecated and will be removed in a future version of Octave";
2303 std::string nm =
curr_lexer->fcn_file_full_name;
2309 "%s; near line %d of file '%s'", msg,
2325 #line 1010 "../../libinterp/parse-tree/lex.ll"
2335 #line 1018 "../../libinterp/parse-tree/lex.ll"
2339 int tok =
curr_lexer->previous_token_value ();
2342 &&
curr_lexer->space_follows_previous_token ()
2343 && ! (tok ==
'[' || tok ==
'{'
2352 &&
curr_lexer->previous_token_may_be_command ())
2359 int id_tok =
curr_lexer->handle_identifier ();
2362 return curr_lexer->count_token_internal (id_tok);
2371 #line 1054 "../../libinterp/parse-tree/lex.ll"
2374 #line 1054 "../../libinterp/parse-tree/lex.ll"
2376 curr_lexer->lexer_debug (
"{IDENT}@{IDENT}|{IDENT}@{IDENT}.{IDENT}");
2378 if (
curr_lexer->previous_token_may_be_command ())
2385 int id_tok =
curr_lexer->handle_superclass_identifier ();
2400 #line 1080 "../../libinterp/parse-tree/lex.ll"
2403 #line 1080 "../../libinterp/parse-tree/lex.ll"
2405 curr_lexer->lexer_debug (
"\\?{IDENT}|\\?{IDENT}\\.{IDENT}");
2407 if (
curr_lexer->previous_token_may_be_command ()
2408 &&
curr_lexer->space_follows_previous_token ())
2415 int id_tok =
curr_lexer->handle_meta_identifier ();
2428 #line 1102 "../../libinterp/parse-tree/lex.ll"
2430 if (
curr_lexer->previous_token_may_be_command ()
2431 &&
curr_lexer->space_follows_previous_token ())
2443 curr_lexer->looking_for_object_index =
false;
2444 curr_lexer->at_beginning_of_statement =
false;
2458 #line 1129 "../../libinterp/parse-tree/lex.ll"
2467 curr_lexer->at_beginning_of_statement =
false;
2469 (
"bare newline inside parentheses");
2472 ||
curr_lexer->nesting_level.is_anon_fcn_body ())
2474 curr_lexer->at_beginning_of_statement =
true;
2477 else if (
curr_lexer->nesting_level.is_bracket_or_brace ())
2487 #line 1156 "../../libinterp/parse-tree/lex.ll"
2491 if (
curr_lexer->previous_token_may_be_command ()
2492 &&
curr_lexer->space_follows_previous_token ())
2498 else if (
curr_lexer->at_beginning_of_statement)
2505 int tok =
curr_lexer->previous_token_value ();
2507 if (
curr_lexer->whitespace_is_significant ())
2509 if (
curr_lexer->space_follows_previous_token ())
2511 if (tok ==
'[' || tok ==
'{'
2527 if (tok ==
'[' || tok ==
'{'
2540 if (! tok || tok ==
'[' || tok ==
'{' || tok ==
'('
2558 #line 1225 "../../libinterp/parse-tree/lex.ll"
2562 if (
curr_lexer->previous_token_may_be_command ()
2563 &&
curr_lexer->space_follows_previous_token ())
2571 int tok =
curr_lexer->previous_token_value ();
2573 if (
curr_lexer->whitespace_is_significant ())
2575 if (
curr_lexer->space_follows_previous_token ())
2577 if (tok ==
'[' || tok ==
'{'
2610 #line 1275 "../../libinterp/parse-tree/lex.ll"
2615 #line 1276 "../../libinterp/parse-tree/lex.ll"
2620 #line 1277 "../../libinterp/parse-tree/lex.ll"
2625 #line 1278 "../../libinterp/parse-tree/lex.ll"
2630 #line 1279 "../../libinterp/parse-tree/lex.ll"
2635 #line 1280 "../../libinterp/parse-tree/lex.ll"
2640 #line 1281 "../../libinterp/parse-tree/lex.ll"
2645 #line 1282 "../../libinterp/parse-tree/lex.ll"
2650 #line 1283 "../../libinterp/parse-tree/lex.ll"
2655 #line 1284 "../../libinterp/parse-tree/lex.ll"
2660 #line 1285 "../../libinterp/parse-tree/lex.ll"
2665 #line 1286 "../../libinterp/parse-tree/lex.ll"
2670 #line 1287 "../../libinterp/parse-tree/lex.ll"
2675 #line 1288 "../../libinterp/parse-tree/lex.ll"
2680 #line 1289 "../../libinterp/parse-tree/lex.ll"
2685 #line 1290 "../../libinterp/parse-tree/lex.ll"
2690 #line 1291 "../../libinterp/parse-tree/lex.ll"
2695 #line 1292 "../../libinterp/parse-tree/lex.ll"
2700 #line 1293 "../../libinterp/parse-tree/lex.ll"
2708 #line 1299 "../../libinterp/parse-tree/lex.ll"
2713 #line 1301 "../../libinterp/parse-tree/lex.ll"
2718 #line 1302 "../../libinterp/parse-tree/lex.ll"
2723 #line 1303 "../../libinterp/parse-tree/lex.ll"
2728 #line 1304 "../../libinterp/parse-tree/lex.ll"
2733 #line 1305 "../../libinterp/parse-tree/lex.ll"
2738 #line 1306 "../../libinterp/parse-tree/lex.ll"
2743 #line 1308 "../../libinterp/parse-tree/lex.ll"
2745 bool at_beginning_of_statement
2746 = (! (
curr_lexer->whitespace_is_significant ()
2747 ||
curr_lexer->looking_at_object_index.front ()));
2749 return curr_lexer->handle_op (
";",
';', at_beginning_of_statement);
2754 #line 1316 "../../libinterp/parse-tree/lex.ll"
2759 #line 1317 "../../libinterp/parse-tree/lex.ll"
2764 #line 1319 "../../libinterp/parse-tree/lex.ll"
2769 #line 1320 "../../libinterp/parse-tree/lex.ll"
2774 #line 1322 "../../libinterp/parse-tree/lex.ll"
2776 bool at_beginning_of_statement
2777 = (! (
curr_lexer->whitespace_is_significant ()
2778 ||
curr_lexer->looking_at_object_index.front ()));
2780 return curr_lexer->handle_op (
",",
',', at_beginning_of_statement);
2785 #line 1330 "../../libinterp/parse-tree/lex.ll"
2792 #line 1334 "../../libinterp/parse-tree/lex.ll"
2797 #line 1335 "../../libinterp/parse-tree/lex.ll"
2802 #line 1337 "../../libinterp/parse-tree/lex.ll"
2806 bool unput_comma =
false;
2809 &&
curr_lexer->space_follows_previous_token ())
2811 int tok =
curr_lexer->previous_token_value ();
2813 if (! (tok ==
'[' || tok ==
'{'
2832 curr_lexer->looking_at_object_index.push_front
2836 curr_lexer->looking_for_object_index =
false;
2837 curr_lexer->at_beginning_of_statement =
false;
2848 #line 1380 "../../libinterp/parse-tree/lex.ll"
2855 curr_lexer->looking_at_object_index.pop_front ();
2858 curr_lexer->at_beginning_of_statement =
false;
2862 curr_lexer->looking_at_anon_fcn_args =
false;
2871 #line 1400 "../../libinterp/parse-tree/lex.ll"
2875 if (
curr_lexer->previous_token_may_be_command ()
2876 &&
curr_lexer->space_follows_previous_token ())
2883 curr_lexer->looking_for_object_index =
false;
2884 curr_lexer->at_beginning_of_statement =
false;
2895 #line 1422 "../../libinterp/parse-tree/lex.ll"
2897 curr_lexer->maybe_mark_previous_token_as_variable ();
2904 #line 1428 "../../libinterp/parse-tree/lex.ll"
2909 #line 1429 "../../libinterp/parse-tree/lex.ll"
2914 #line 1430 "../../libinterp/parse-tree/lex.ll"
2919 #line 1431 "../../libinterp/parse-tree/lex.ll"
2924 #line 1432 "../../libinterp/parse-tree/lex.ll"
2929 #line 1433 "../../libinterp/parse-tree/lex.ll"
2934 #line 1434 "../../libinterp/parse-tree/lex.ll"
2939 #line 1435 "../../libinterp/parse-tree/lex.ll"
2944 #line 1436 "../../libinterp/parse-tree/lex.ll"
2949 #line 1437 "../../libinterp/parse-tree/lex.ll"
2954 #line 1438 "../../libinterp/parse-tree/lex.ll"
2959 #line 1439 "../../libinterp/parse-tree/lex.ll"
2964 #line 1440 "../../libinterp/parse-tree/lex.ll"
2969 #line 1441 "../../libinterp/parse-tree/lex.ll"
2974 #line 1442 "../../libinterp/parse-tree/lex.ll"
2979 #line 1443 "../../libinterp/parse-tree/lex.ll"
2984 #line 1444 "../../libinterp/parse-tree/lex.ll"
2989 #line 1445 "../../libinterp/parse-tree/lex.ll"
2997 #line 1451 "../../libinterp/parse-tree/lex.ll"
3001 bool unput_comma =
false;
3004 &&
curr_lexer->space_follows_previous_token ())
3006 int tok =
curr_lexer->previous_token_value ();
3008 if (! (tok ==
'[' || tok ==
'{'
3024 curr_lexer->looking_at_object_index.push_front
3028 curr_lexer->looking_for_object_index =
false;
3029 curr_lexer->at_beginning_of_statement =
false;
3043 #line 1494 "../../libinterp/parse-tree/lex.ll"
3047 curr_lexer->looking_at_object_index.pop_front ();
3050 curr_lexer->at_beginning_of_statement =
false;
3062 #line 1511 "../../libinterp/parse-tree/lex.ll"
3078 error (
"invalid character '%s' (ASCII %d) near line %d, column %d",
3088 #line 1534 "../../libinterp/parse-tree/lex.ll"
3091 #line 3092 "parse-tree/lex.cc"
3096 int yy_amount_of_matched_text = (
int) (yy_cp - yyg->yytext_ptr) - 1;
3129 yyg->
yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
3146 if ( yy_next_state )
3150 yy_current_state = yy_next_state;
3157 goto yy_find_action;
3194 yyg->yytext_ptr + yy_amount_of_matched_text;
3210 goto yy_find_action;
3217 "fatal flex scanner internal error--no action found" );
3233 register char *source = yyg->yytext_ptr;
3234 register int number_to_move, i;
3239 "fatal flex scanner internal error--end of buffer missed" );
3263 number_to_move = (
int) (yyg->
yy_c_buf_p - yyg->yytext_ptr) - 1;
3265 for ( i = 0; i < number_to_move; ++i )
3266 *(dest++) = *(source++);
3279 while ( num_to_read <= 0 )
3285 int yy_c_buf_p_offset =
3292 if ( new_size <= 0 )
3307 "fatal error - scanner input buffer overflow" );
3350 YY_FATAL_ERROR(
"out of dynamic memory in yy_get_next_buffer()" );
3367 register char *yy_cp;
3381 while (
yy_chk[
yy_base[yy_current_state] + yy_c] != yy_current_state )
3383 yy_current_state = (
int)
yy_def[yy_current_state];
3384 if ( yy_current_state >= 358 )
3387 yy_current_state =
yy_nxt[
yy_base[yy_current_state] + (
unsigned int) yy_c];
3390 return yy_current_state;
3400 register int yy_is_jam;
3410 while (
yy_chk[
yy_base[yy_current_state] + yy_c] != yy_current_state )
3412 yy_current_state = (
int)
yy_def[yy_current_state];
3413 if ( yy_current_state >= 358 )
3416 yy_current_state =
yy_nxt[
yy_base[yy_current_state] + (
unsigned int) yy_c];
3417 yy_is_jam = (yy_current_state == 357);
3419 return yy_is_jam ? 0 : yy_current_state;
3424 register char *yy_cp;
3432 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3435 register int number_to_move = yyg->
yy_n_chars + 2;
3438 register char *source =
3442 *--dest = *--source;
3444 yy_cp += (
int) (dest - source);
3445 yy_bp += (
int) (dest - source);
3449 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3453 *--yy_cp = (
char) c;
3455 yyg->yytext_ptr = yy_bp;
3462 static int yyinput (
yyscan_t yyscanner)
3485 int offset = yyg->
yy_c_buf_p - yyg->yytext_ptr;
3514 return yyinput(yyscanner);
3516 return input(yyscanner);
3613 YY_FATAL_ERROR(
"out of dynamic memory in octave__create_buffer()" );
3622 YY_FATAL_ERROR(
"out of dynamic memory in octave__create_buffer()" );
3652 extern int isatty (
int );
3721 if (new_buffer == NULL)
3785 YY_FATAL_ERROR(
"out of dynamic memory in octave_ensure_buffer_stack()" );
3805 YY_FATAL_ERROR(
"out of dynamic memory in octave_ensure_buffer_stack()" );
3831 YY_FATAL_ERROR(
"out of dynamic memory in octave__scan_buffer()" );
3877 n = _yybytes_len + 2;
3880 YY_FATAL_ERROR(
"out of dynamic memory in octave__scan_bytes()" );
3882 for ( i = 0; i < _yybytes_len; ++i )
3883 buf[i] = yybytes[i];
3899 #ifndef YY_EXIT_FAILURE
3900 #define YY_EXIT_FAILURE 2
3905 (
void) fprintf( stderr,
"%s\n", msg );
3916 int yyless_macro_arg = (n); \
3917 YY_LESS_LINENO(yyless_macro_arg);\
3918 yytext[yyleng] = yyg->yy_hold_char; \
3919 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3920 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3921 *yyg->yy_c_buf_p = '\0'; \
3922 yyleng = yyless_macro_arg; \
4020 yy_fatal_error(
"octave_set_lineno called with no buffer" , yyscanner);
4035 yy_fatal_error(
"octave_set_column called with no buffer" , yyscanner);
4094 if (ptr_yy_globals == NULL){
4101 if (*ptr_yy_globals == NULL){
4107 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
4127 if (ptr_yy_globals == NULL){
4134 if (*ptr_yy_globals == NULL){
4141 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
4216 static void yy_flex_strncpy (
char* s1,
yyconst char * s2,
int n ,
yyscan_t yyscanner)
4219 for ( i = 0; i < n; ++i )
4224 #ifdef YY_NEED_STRLEN
4228 for ( n = 0; s[n]; ++n )
4237 return (
void *) malloc( size );
4249 return (
void *) realloc( (
char *) ptr, size );
4254 free( (
char *) ptr );
4257 #define YYTABLES_NAME "yytables"
4259 #line 1534 "../../libinterp/parse-tree/lex.ll"
4400 std::cerr <<
"SPACE";
4419 && ! (s ==
"set" || s ==
"get"));
4424 @deftypefn {Built-in Function} {} iskeyword ()\n\
4425 @deftypefnx {Built-in Function} {} iskeyword (@var{name})\n\
4426 Return true if @var{name} is an Octave keyword. If @var{name}\n\
4427 is omitted, return a list of keywords.\n\
4428 @seealso{isvarname, exist}\n\
4433 int argc = args.
length () + 1;
4453 if (! (tmp ==
"set" || tmp ==
"get"))
4484 std::string retval = s;
4486 size_t pos = retval.find_first_of (
" \t");
4488 if (pos != std::string::npos)
4489 retval.resize (pos);
4494 DEFUN (__display_tokens__, args, nargout,
4496 @deftypefn {Built-in Function} {} __display_tokens__ ()\n\
4497 Query or set the internal variable that determines whether Octave's\n\
4498 lexer displays tokens as they are read.\n\
4506 @deftypefn {Built-in Function} {} __token_count__ ()\n\
4507 Number of language tokens processed since Octave startup.\n\
4513 DEFUN (__lexer_debug_flag__, args, nargout,
4515 @deftypefn {Built-in Function} {@var{old_val} =} __lexer_debug_flag__ (@var{new_val}))\n\
4516 Undocumented internal function.\n\
4522 "__lexer_debug_flag__");
4622 return (tok ==
'+' || tok ==
'-' || tok ==
'@'
4623 || tok ==
',' || tok ==
';' || tok ==
'*' || tok ==
'/'
4624 || tok ==
':' || tok ==
'=' || tok ==
ADD_EQ
4664 for (std::list<std::string>::const_iterator p = lst.begin ();
4665 p != lst.end (); p++)
4674 bool retval =
false;
4678 size_t offset = s.find_first_not_of (
" \t");
4680 retval = (s.substr (offset, 9) ==
"Copyright" || s.substr (offset, 6) ==
"Author");
4698 static const char *
const eol =
"\n";
4700 size_t len = max_size > chars_left ? chars_left : max_size;
4703 memcpy (buf, pos, len);
4709 if (chars_left == 0 && buf[len-1] !=
'\n')
4753 #define OCTAVE_YYG \
4754 struct yyguts_t *yyg = static_cast<struct yyguts_t*> (scanner)
4807 warning (
"block comment open at end of input");
4811 warning (
"near line %d of file '%s.m'",
4839 std::cerr << std::endl;
4852 std::cerr << std::endl;
4874 std::cerr << std::endl;
4894 return (c ==
' ' || c ==
'\t');
4900 bool retval =
false;
4931 int len = s.length ();
4959 "the 'static' keyword is obsolete and will be removed from a future version of Octave; please use 'persistent' instead; near line %d of file '%s'",
4964 "the 'static' keyword is obsolete and will be removed from a future version of Octave; please use 'persistent' instead; near line %d",
5149 tok_val =
new token (kw->
tok,
true, l, c);
5170 return (len > 2 && s[0] ==
'0' && (s[1] ==
'x' || s[1] ==
'X'));
5185 nread = sscanf (yytxt,
"%lx", &ival);
5187 value =
static_cast<double> (ival);
5193 char *idx = strpbrk (tmp,
"Dd");
5198 nread = sscanf (tmp,
"%lf", &value);
5205 assert (nread == 1);
5223 if (yytxt[0] ==
'\\')
5228 bool have_space =
false;
5229 while (offset < yylng)
5231 char c = yytxt[offset];
5232 if (c ==
' ' || c ==
'\t')
5244 bool have_comment =
false;
5245 while (offset < yylng)
5247 char c = yytxt[offset];
5248 if (c ==
'#' || c ==
'%')
5250 have_comment =
true;
5291 int retval = bracket_type;
5297 if (bracket_type ==
']')
5299 else if (bracket_type ==
'}')
5316 return (space_before && ! space_after
5326 size_t pos = meth.find (
"@");
5327 std::string cls = meth.substr (pos).substr (1);
5328 meth = meth.substr (0, pos - 1);
5330 pos = cls.find (
".");
5331 if (pos != std::string::npos)
5333 pkg = cls.substr (pos).substr (1);
5334 cls = cls.substr (0, pos - 1);
5341 error (
"method, class and package names may not be keywords");
5365 size_t pos = cls.find (
".");
5367 if (pos != std::string::npos)
5369 pkg = cls.substr (pos).substr (1);
5370 cls = cls.substr (0, pos - 1);
5376 error (
"class and package names may not be keywords");
5402 std::string tok = yytxt;
5433 error (
"function handles may not refer to keywords");
5483 || tok ==
"e" || tok ==
"pi"
5484 || tok ==
"I" || tok ==
"i"
5485 || tok ==
"J" || tok ==
"j"
5486 || tok ==
"Inf" || tok ==
"inf"
5487 || tok ==
"NaN" || tok ==
"nan")))
5511 "potential auto-insertion of '%c' near line %d",
5515 "potential auto-insertion of '%c' near line %d of file %s",
5526 "single quote delimited string near line %d",
5530 "single quote delimited string near line %d of file %s",
5541 "potential Matlab compatibility problem: %s",
5545 "potential Matlab compatibility problem: %s near line %d offile %s",
5566 int n = t.length ();
5592 case '=': std::cerr <<
"'='\n";
break;
5593 case ':': std::cerr <<
"':'\n";
break;
5594 case '-': std::cerr <<
"'-'\n";
break;
5595 case '+': std::cerr <<
"'+'\n";
break;
5596 case '*': std::cerr <<
"'*'\n";
break;
5597 case '/': std::cerr <<
"'/'\n";
break;
5598 case ADD_EQ: std::cerr <<
"ADD_EQ\n";
break;
5599 case SUB_EQ: std::cerr <<
"SUB_EQ\n";
break;
5600 case MUL_EQ: std::cerr <<
"MUL_EQ\n";
break;
5601 case DIV_EQ: std::cerr <<
"DIV_EQ\n";
break;
5602 case LEFTDIV_EQ: std::cerr <<
"LEFTDIV_EQ\n";
break;
5603 case POW_EQ: std::cerr <<
"POW_EQ\n";
break;
5604 case EMUL_EQ: std::cerr <<
"EMUL_EQ\n";
break;
5605 case EDIV_EQ: std::cerr <<
"EDIV_EQ\n";
break;
5606 case ELEFTDIV_EQ: std::cerr <<
"ELEFTDIV_EQ\n";
break;
5607 case EPOW_EQ: std::cerr <<
"EPOW_EQ\n";
break;
5608 case AND_EQ: std::cerr <<
"AND_EQ\n";
break;
5609 case OR_EQ: std::cerr <<
"OR_EQ\n";
break;
5610 case LSHIFT_EQ: std::cerr <<
"LSHIFT_EQ\n";
break;
5611 case RSHIFT_EQ: std::cerr <<
"RSHIFT_EQ\n";
break;
5612 case LSHIFT: std::cerr <<
"LSHIFT\n";
break;
5613 case RSHIFT: std::cerr <<
"RSHIFT\n";
break;
5614 case EXPR_AND_AND: std::cerr <<
"EXPR_AND_AND\n";
break;
5615 case EXPR_OR_OR: std::cerr <<
"EXPR_OR_OR\n";
break;
5616 case EXPR_AND: std::cerr <<
"EXPR_AND\n";
break;
5617 case EXPR_OR: std::cerr <<
"EXPR_OR\n";
break;
5618 case EXPR_NOT: std::cerr <<
"EXPR_NOT\n";
break;
5619 case EXPR_LT: std::cerr <<
"EXPR_LT\n";
break;
5620 case EXPR_LE: std::cerr <<
"EXPR_LE\n";
break;
5621 case EXPR_EQ: std::cerr <<
"EXPR_EQ\n";
break;
5622 case EXPR_NE: std::cerr <<
"EXPR_NE\n";
break;
5623 case EXPR_GE: std::cerr <<
"EXPR_GE\n";
break;
5624 case EXPR_GT: std::cerr <<
"EXPR_GT\n";
break;
5625 case LEFTDIV: std::cerr <<
"LEFTDIV\n";
break;
5626 case EMUL: std::cerr <<
"EMUL\n";
break;
5627 case EDIV: std::cerr <<
"EDIV\n";
break;
5628 case ELEFTDIV: std::cerr <<
"ELEFTDIV\n";
break;
5629 case EPLUS: std::cerr <<
"EPLUS\n";
break;
5630 case EMINUS: std::cerr <<
"EMINUS\n";
break;
5631 case HERMITIAN: std::cerr <<
"HERMITIAN\n";
break;
5632 case TRANSPOSE: std::cerr <<
"TRANSPOSE\n";
break;
5633 case PLUS_PLUS: std::cerr <<
"PLUS_PLUS\n";
break;
5634 case MINUS_MINUS: std::cerr <<
"MINUS_MINUS\n";
break;
5635 case POW: std::cerr <<
"POW\n";
break;
5636 case EPOW: std::cerr <<
"EPOW\n";
break;
5642 std::cerr << (tok ==
NUM ?
"NUM" :
"IMAG_NUM")
5643 <<
" [" << tok_val->
number () <<
"]\n";
5650 std::cerr <<
"STRUCT_ELT [" << tok_val->
text () <<
"]\n";
5658 std::cerr <<
"NAME";
5660 std::cerr <<
" [" << sr->
name () <<
"]";
5665 case END: std::cerr <<
"END\n";
break;
5672 std::cerr << (tok ==
DQ_STRING ?
"DQ_STRING" :
"SQ_STRING")
5673 <<
" [" << tok_val->
text () <<
"]\n";
5677 case FOR: std::cerr <<
"FOR\n";
break;
5678 case WHILE: std::cerr <<
"WHILE\n";
break;
5679 case DO: std::cerr <<
"DO\n";
break;
5680 case UNTIL: std::cerr <<
"UNTIL\n";
break;
5681 case IF: std::cerr <<
"IF\n";
break;
5682 case ELSEIF: std::cerr <<
"ELSEIF\n";
break;
5683 case ELSE: std::cerr <<
"ELSE\n";
break;
5684 case SWITCH: std::cerr <<
"SWITCH\n";
break;
5685 case CASE: std::cerr <<
"CASE\n";
break;
5686 case OTHERWISE: std::cerr <<
"OTHERWISE\n";
break;
5687 case BREAK: std::cerr <<
"BREAK\n";
break;
5688 case CONTINUE: std::cerr <<
"CONTINUE\n";
break;
5689 case FUNC_RET: std::cerr <<
"FUNC_RET\n";
break;
5690 case UNWIND: std::cerr <<
"UNWIND\n";
break;
5691 case CLEANUP: std::cerr <<
"CLEANUP\n";
break;
5692 case TRY: std::cerr <<
"TRY\n";
break;
5693 case CATCH: std::cerr <<
"CATCH\n";
break;
5694 case GLOBAL: std::cerr <<
"GLOBAL\n";
break;
5695 case PERSISTENT: std::cerr <<
"PERSISTENT\n";
break;
5696 case FCN_HANDLE: std::cerr <<
"FCN_HANDLE\n";
break;
5697 case END_OF_INPUT: std::cerr <<
"END_OF_INPUT\n\n";
break;
5698 case LEXICAL_ERROR: std::cerr <<
"LEXICAL_ERROR\n\n";
break;
5699 case FCN: std::cerr <<
"FCN\n";
break;
5700 case INPUT_FILE: std::cerr <<
"INPUT_FILE\n";
break;
5702 case METAQUERY: std::cerr <<
"METAQUERY\n";
break;
5703 case GET: std::cerr <<
"GET\n";
break;
5704 case SET: std::cerr <<
"SET\n";
break;
5705 case PROPERTIES: std::cerr <<
"PROPERTIES\n";
break;
5706 case METHODS: std::cerr <<
"METHODS\n";
break;
5707 case EVENTS: std::cerr <<
"EVENTS\n";
break;
5708 case CLASSDEF: std::cerr <<
"CLASSDEF\n";
break;
5709 case '\n': std::cerr <<
"\\n\n";
break;
5710 case '\r': std::cerr <<
"\\r\n";
break;
5711 case '\t': std::cerr <<
"TAB\n";
break;
5714 if (tok < 256 && tok > 31)
5715 std::cerr << static_cast<char> (tok) <<
"\n";
5717 std::cerr <<
"UNKNOWN(" << tok <<
")\n";
5738 std::cerr << std::endl;
5742 std::cerr <<
"P: " << pattern << std::endl;
5743 std::cerr <<
"T: " <<
flex_yytext () << std::endl;
5784 std::cerr <<
"INITIAL" << std::endl;
5788 std::cerr <<
"COMMAND_START" << std::endl;
5792 std::cerr <<
"MATRIX_START" << std::endl;
5796 std::cerr <<
"INPUT_FILE_BEGIN" << std::endl;
5800 std::cerr <<
"BLOCK_COMMENT_START" << std::endl;
5804 std::cerr <<
"LINE_COMMENT_START" << std::endl;
5808 std::cerr <<
"DQ_STRING_START" << std::endl;
5812 std::cerr <<
"SQ_STRING_START" << std::endl;
5816 std::cerr <<
"UNKNOWN START STATE!" << std::endl;
5843 bool unput_comma =
false;
5850 bool space_after = (c ==
' ' || c ==
'\t');
5852 if (! (prev_tok ==
'[' || prev_tok ==
'{'
5854 || ((tok ==
'+' || tok ==
'-') && space_after)))
5944 std::cerr << std::endl;
5969 fatal_error (
"octave_base_lexer::fill_flex_buffer failed");
5981 input_buf.
fill (std::string (1, static_cast<char> (1)),
false);
5990 fatal_error (
"octave_base_lexer::fill_flex_buffer failed");