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-tex-lexer.cc
Go to the documentation of this file.
1 #if defined (HAVE_CONFIG_H)
2 # include "config.h"
3 #endif
4 
5 #if defined (HAVE_PRAGMA_GCC_DIAGNOSTIC)
6 // This one needs to be global.
7 #pragma GCC diagnostic ignored "-Wunused-function"
8 
9 // Disable these warnings for code that is generated by flex, including
10 // pattern rules. Push the current state so we can restore the warning
11 // state prior to functions we define at the bottom of the file.
12 #pragma GCC diagnostic push
13 #pragma GCC diagnostic ignored "-Wold-style-cast"
14 #pragma GCC diagnostic ignored "-Wsign-compare"
15 #endif
16 
17 // Define away the deprecated register storage class specifier to avoid
18 // potential warnings about it.
19 #if ! defined (register)
20 # define register
21 #endif
22 
23 #line 24 "libinterp/corefcn/oct-tex-lexer.cc"
24 
25 #define YY_INT_ALIGNED short int
26 
27 /* A lexical scanner generated by flex */
28 
29 #define FLEX_SCANNER
30 #define YY_FLEX_MAJOR_VERSION 2
31 #define YY_FLEX_MINOR_VERSION 6
32 #define YY_FLEX_SUBMINOR_VERSION 1
33 #if YY_FLEX_SUBMINOR_VERSION > 0
34 #define FLEX_BETA
35 #endif
36 
37 /* First, we deal with platform-specific or compiler-specific issues. */
38 
39 /* begin standard C headers. */
40 #include <stdio.h>
41 #include <string.h>
42 #include <errno.h>
43 #include <stdlib.h>
44 
45 /* end standard C headers. */
46 
47 /* flex integer type definitions */
48 
49 #ifndef FLEXINT_H
50 #define FLEXINT_H
51 
52 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
53 
54 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
55 
56 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
57  * if you want the limit (max/min) macros for int types.
58  */
59 #ifndef __STDC_LIMIT_MACROS
60 #define __STDC_LIMIT_MACROS 1
61 #endif
62 
63 #include <inttypes.h>
64 typedef int8_t flex_int8_t;
65 typedef uint8_t flex_uint8_t;
66 typedef int16_t flex_int16_t;
67 typedef uint16_t flex_uint16_t;
68 typedef int32_t flex_int32_t;
69 typedef uint32_t flex_uint32_t;
70 #else
71 typedef signed char flex_int8_t;
72 typedef short int flex_int16_t;
73 typedef int flex_int32_t;
74 typedef unsigned char flex_uint8_t;
75 typedef unsigned short int flex_uint16_t;
76 typedef unsigned int flex_uint32_t;
77 
78 /* Limits of integral types. */
79 #ifndef INT8_MIN
80 #define INT8_MIN (-128)
81 #endif
82 #ifndef INT16_MIN
83 #define INT16_MIN (-32767-1)
84 #endif
85 #ifndef INT32_MIN
86 #define INT32_MIN (-2147483647-1)
87 #endif
88 #ifndef INT8_MAX
89 #define INT8_MAX (127)
90 #endif
91 #ifndef INT16_MAX
92 #define INT16_MAX (32767)
93 #endif
94 #ifndef INT32_MAX
95 #define INT32_MAX (2147483647)
96 #endif
97 #ifndef UINT8_MAX
98 #define UINT8_MAX (255U)
99 #endif
100 #ifndef UINT16_MAX
101 #define UINT16_MAX (65535U)
102 #endif
103 #ifndef UINT32_MAX
104 #define UINT32_MAX (4294967295U)
105 #endif
106 
107 #endif /* ! C99 */
108 
109 #endif /* ! FLEXINT_H */
110 
111 /* TODO: this is always defined, so inline it */
112 #define yyconst const
113 
114 #if defined(__GNUC__) && __GNUC__ >= 3
115 #define yynoreturn __attribute__((__noreturn__))
116 #else
117 #define yynoreturn
118 #endif
119 
120 /* Returned upon end-of-file. */
121 #define YY_NULL 0
122 
123 /* Promotes a possibly negative, possibly signed char to an unsigned
124  * integer for use as an array index. If the signed char is negative,
125  * we want to instead treat it as an 8-bit unsigned char, hence the
126  * double cast.
127  */
128 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
129 
130 /* An opaque pointer. */
131 #ifndef YY_TYPEDEF_YY_SCANNER_T
132 #define YY_TYPEDEF_YY_SCANNER_T
133 typedef void* yyscan_t;
134 #endif
135 
136 /* For convenience, these vars (plus the bison vars far below)
137  are macros in the reentrant scanner. */
138 #define yyin yyg->yyin_r
139 #define yyout yyg->yyout_r
140 #define yyextra yyg->yyextra_r
141 #define yyleng yyg->yyleng_r
142 #define yytext yyg->yytext_r
143 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
144 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
145 #define yy_flex_debug yyg->yy_flex_debug_r
146 
147 /* Enter a start condition. This macro really ought to take a parameter,
148  * but we do it the disgusting crufty way forced on us by the ()-less
149  * definition of BEGIN.
150  */
151 #define BEGIN yyg->yy_start = 1 + 2 *
152 
153 /* Translate the current start state into a value that can be later handed
154  * to BEGIN to return to the state. The YYSTATE alias is for lex
155  * compatibility.
156  */
157 #define YY_START ((yyg->yy_start - 1) / 2)
158 #define YYSTATE YY_START
159 
160 /* Action number for EOF rule of a given start state. */
161 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
162 
163 /* Special action meaning "start processing a new file". */
164 #define YY_NEW_FILE octave_tex_restart(yyin ,yyscanner )
165 
166 #define YY_END_OF_BUFFER_CHAR 0
167 
168 /* Size of default input buffer. */
169 #ifndef YY_BUF_SIZE
170 #ifdef __ia64__
171 /* On IA-64, the buffer size is 16k, not 8k.
172  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
173  * Ditto for the __ia64__ case accordingly.
174  */
175 #define YY_BUF_SIZE 32768
176 #else
177 #define YY_BUF_SIZE 16384
178 #endif /* __ia64__ */
179 #endif
180 
181 /* The state buf must be large enough to hold one state per character in the main buffer.
182  */
183 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
184 
185 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
186 #define YY_TYPEDEF_YY_BUFFER_STATE
188 #endif
189 
190 #ifndef YY_TYPEDEF_YY_SIZE_T
191 #define YY_TYPEDEF_YY_SIZE_T
192 typedef size_t yy_size_t;
193 #endif
194 
195 #define EOB_ACT_CONTINUE_SCAN 0
196 #define EOB_ACT_END_OF_FILE 1
197 #define EOB_ACT_LAST_MATCH 2
198 
199  #define YY_LESS_LINENO(n)
200  #define YY_LINENO_REWIND_TO(ptr)
201 
202 /* Return all but the first "n" matched characters back to the input stream. */
203 #define yyless(n) \
204  do \
205  { \
206  /* Undo effects of setting up yytext. */ \
207  int yyless_macro_arg = (n); \
208  YY_LESS_LINENO(yyless_macro_arg);\
209  *yy_cp = yyg->yy_hold_char; \
210  YY_RESTORE_YY_MORE_OFFSET \
211  yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
212  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
213  } \
214  while ( 0 )
215 
216 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
217 
218 #ifndef YY_STRUCT_YY_BUFFER_STATE
219 #define YY_STRUCT_YY_BUFFER_STATE
221  {
223 
224  char *yy_ch_buf; /* input buffer */
225  char *yy_buf_pos; /* current position in input buffer */
226 
227  /* Size of input buffer in bytes, not including room for EOB
228  * characters.
229  */
231 
232  /* Number of characters read into yy_ch_buf, not including EOB
233  * characters.
234  */
236 
237  /* Whether we "own" the buffer - i.e., we know we created it,
238  * and can realloc() it to grow it, and should free() it to
239  * delete it.
240  */
242 
243  /* Whether this is an "interactive" input source; if so, and
244  * if we're using stdio for input, then we want to use getc()
245  * instead of fread(), to make sure we stop fetching input after
246  * each newline.
247  */
249 
250  /* Whether we're considered to be at the beginning of a line.
251  * If so, '^' rules will be active on the next match, otherwise
252  * not.
253  */
255 
256  int yy_bs_lineno; /**< The line count. */
257  int yy_bs_column; /**< The column count. */
258 
259  /* Whether to try to fill the input buffer when we reach the
260  * end of it.
261  */
263 
265 
266 #define YY_BUFFER_NEW 0
267 #define YY_BUFFER_NORMAL 1
268  /* When an EOF's been seen but there's still some text to process
269  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
270  * shouldn't try reading from the input source any more. We might
271  * still have a bunch of tokens to match, though, because of
272  * possible backing-up.
273  *
274  * When we actually see the EOF, we change the status to "new"
275  * (via octave_tex_restart()), so that the user can continue scanning by
276  * just pointing yyin at a new input file.
277  */
278 #define YY_BUFFER_EOF_PENDING 2
279 
280  };
281 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
282 
283 /* We provide macros for accessing buffer states in case in the
284  * future we want to put the buffer states in a more general
285  * "scanner state".
286  *
287  * Returns the top of the stack, or NULL.
288  */
289 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
290  ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
291  : NULL)
292 
293 /* Same as previous macro, but useful when we know that the buffer stack is not
294  * NULL or when we need an lvalue. For internal use only.
295  */
296 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
297 
298 void octave_tex_restart (FILE *input_file ,yyscan_t yyscanner );
299 void octave_tex__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
300 YY_BUFFER_STATE octave_tex__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
301 void octave_tex__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
302 void octave_tex__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
303 void octave_tex_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
304 void octave_tex_pop_buffer_state (yyscan_t yyscanner );
305 
306 static void octave_tex_ensure_buffer_stack (yyscan_t yyscanner );
307 static void octave_tex__load_buffer_state (yyscan_t yyscanner );
308 static void octave_tex__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
309 
310 #define YY_FLUSH_BUFFER octave_tex__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
311 
312 YY_BUFFER_STATE octave_tex__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
313 YY_BUFFER_STATE octave_tex__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
314 YY_BUFFER_STATE octave_tex__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
315 
316 void *octave_tex_alloc (yy_size_t ,yyscan_t yyscanner );
317 void *octave_tex_realloc (void *,yy_size_t ,yyscan_t yyscanner );
318 void octave_tex_free (void * ,yyscan_t yyscanner );
319 
320 #define yy_new_buffer octave_tex__create_buffer
321 
322 #define yy_set_interactive(is_interactive) \
323  { \
324  if ( ! YY_CURRENT_BUFFER ){ \
325  octave_tex_ensure_buffer_stack (yyscanner); \
326  YY_CURRENT_BUFFER_LVALUE = \
327  octave_tex__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
328  } \
329  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
330  }
331 
332 #define yy_set_bol(at_bol) \
333  { \
334  if ( ! YY_CURRENT_BUFFER ){\
335  octave_tex_ensure_buffer_stack (yyscanner); \
336  YY_CURRENT_BUFFER_LVALUE = \
337  octave_tex__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
338  } \
339  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
340  }
341 
342 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
343 
344 /* Begin user sect3 */
345 
346 #define octave_tex_wrap(yyscanner) (/*CONSTCOND*/1)
347 #define YY_SKIP_YYWRAP
348 
349 typedef unsigned char YY_CHAR;
350 
351 typedef int yy_state_type;
352 
353 #define yytext_ptr yytext_r
354 
355 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
356 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
357 static int yy_get_next_buffer (yyscan_t yyscanner );
358 static void yynoreturn yy_fatal_error (yyconst char* msg ,yyscan_t yyscanner );
359 
360 /* Done after the current pattern has been matched and before the
361  * corresponding action - sets up yytext.
362  */
363 #define YY_DO_BEFORE_ACTION \
364  yyg->yytext_ptr = yy_bp; \
365  yyleng = (int) (yy_cp - yy_bp); \
366  yyg->yy_hold_char = *yy_cp; \
367  *yy_cp = '\0'; \
368  yyg->yy_c_buf_p = yy_cp;
369 
370 #define YY_NUM_RULES 128
371 #define YY_END_OF_BUFFER 129
372 /* This struct is not used in this scanner,
373  but its presence is necessary. */
375  {
378  };
380  { 0,
381  0, 0, 0, 0, 0, 0, 129, 127, 126, 127,
382  16, 17, 14, 15, 3, 2, 3, 1, 5, 4,
383  123, 0, 0, 0, 0, 0, 0, 0, 0, 0,
384  0, 0, 22, 20, 21, 0, 0, 0, 0, 0,
385  0, 0, 0, 0, 0, 0, 0, 0, 38, 0,
386  0, 0, 0, 0, 0, 0, 0, 0, 18, 19,
387  2, 1, 1, 1, 0, 0, 64, 0, 0, 0,
388  0, 55, 0, 63, 0, 0, 0, 0, 54, 0,
389  0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
390  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
391 
392  0, 0, 0, 0, 96, 0, 7, 0, 0, 0,
393  0, 0, 0, 0, 35, 0, 0, 100, 36, 0,
394  0, 0, 0, 0, 0, 0, 39, 79, 0, 0,
395  0, 0, 0, 0, 0, 9, 0, 8, 0, 0,
396  0, 0, 0, 0, 0, 0, 0, 62, 37, 0,
397  1, 0, 0, 0, 0, 0, 58, 59, 0, 0,
398  0, 0, 0, 0, 0, 0, 82, 0, 0, 86,
399  0, 47, 0, 0, 0, 0, 0, 87, 125, 0,
400  0, 85, 0, 0, 0, 29, 0, 0, 0, 0,
401  97, 0, 0, 78, 0, 0, 0, 0, 0, 0,
402 
403  0, 93, 0, 101, 0, 73, 121, 0, 0, 0,
404  0, 0, 0, 46, 0, 0, 48, 0, 0, 0,
405  41, 0, 0, 103, 0, 0, 0, 0, 44, 0,
406  0, 0, 0, 0, 88, 0, 0, 0, 0, 0,
407  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
408  24, 0, 80, 83, 0, 0, 105, 0, 0, 0,
409  0, 0, 0, 0, 0, 0, 0, 0, 0, 32,
410  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
411  0, 0, 0, 107, 0, 0, 0, 0, 0, 0,
412  0, 0, 0, 0, 69, 0, 0, 0, 0, 0,
413 
414  0, 0, 0, 28, 51, 50, 0, 0, 60, 0,
415  56, 52, 0, 61, 23, 70, 0, 0, 0, 13,
416  0, 26, 0, 0, 0, 102, 0, 0, 0, 0,
417  25, 0, 66, 33, 0, 0, 117, 122, 0, 0,
418  0, 68, 49, 90, 0, 0, 0, 67, 0, 0,
419  120, 0, 0, 42, 0, 0, 0, 30, 81, 0,
420  0, 40, 0, 0, 89, 53, 0, 0, 0, 104,
421  84, 0, 0, 0, 0, 0, 0, 72, 0, 0,
422  71, 0, 34, 116, 0, 0, 115, 92, 91, 0,
423  106, 119, 118, 0, 0, 94, 98, 0, 0, 0,
424 
425  0, 0, 0, 57, 0, 0, 0, 0, 0, 27,
426  0, 0, 0, 0, 0, 65, 0, 0, 0, 0,
427  113, 45, 0, 0, 0, 0, 74, 0, 0, 0,
428  0, 10, 11, 0, 0, 0, 0, 0, 95, 99,
429  43, 31, 109, 0, 0, 124, 0, 114, 76, 108,
430  0, 0, 77, 111, 12, 0, 0, 110, 75, 0,
431  0, 0, 112, 0
432  } ;
433 
434 static yyconst YY_CHAR yy_ec[256] =
435  { 0,
436  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
437  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
438  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
439  1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
440  1, 1, 1, 2, 1, 4, 1, 5, 6, 6,
441  6, 6, 6, 6, 6, 6, 6, 1, 1, 1,
442  1, 1, 1, 1, 1, 1, 1, 7, 1, 1,
443  8, 1, 9, 1, 1, 10, 1, 1, 11, 12,
444  1, 13, 14, 15, 16, 1, 1, 17, 1, 1,
445  18, 19, 20, 21, 22, 1, 23, 24, 25, 26,
446 
447  27, 28, 29, 30, 31, 1, 32, 33, 34, 35,
448  36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
449  46, 47, 48, 1, 49, 1, 1, 1, 1, 1,
450  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
451  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
452  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
453  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
454  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
455  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 
458  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
459  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
460  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
461  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
462  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
463  1, 1, 1, 1, 1
464  } ;
465 
466 static yyconst YY_CHAR yy_meta[50] =
467  { 0,
468  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
469  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
470  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
471  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
472  1, 1, 1, 1, 1, 1, 1, 1, 1
473  } ;
474 
476  { 0,
477  0, 4, 0, 6, 434, 433, 480, 483, 483, 49,
478  483, 483, 483, 483, 483, 477, 8, 11, 483, 483,
479  483, 451, 454, 442, 1, 441, 0, 2, 443, 443,
480  435, 440, 483, 483, 483, 1, 72, 79, 8, 5,
481  434, 24, 442, 72, 445, 97, 64, 103, 95, 110,
482  123, 125, 88, 430, 104, 0, 435, 438, 483, 483,
483  462, 98, 111, 155, 430, 428, 483, 427, 432, 432,
484  427, 483, 426, 483, 427, 426, 427, 413, 483, 18,
485  423, 414, 409, 408, 483, 415, 410, 410, 414, 405,
486  401, 131, 405, 109, 44, 397, 400, 397, 415, 406,
487 
488  104, 402, 397, 411, 124, 392, 483, 395, 135, 404,
489  394, 135, 396, 402, 483, 403, 142, 483, 483, 399,
490  392, 391, 392, 383, 382, 389, 483, 483, 141, 388,
491  383, 390, 383, 379, 385, 483, 145, 483, 390, 151,
492  370, 384, 376, 153, 370, 381, 381, 483, 483, 365,
493  176, 364, 370, 379, 361, 372, 483, 483, 370, 365,
494  357, 366, 359, 365, 361, 354, 483, 369, 358, 483,
495  349, 483, 364, 364, 351, 357, 339, 483, 483, 343,
496  349, 483, 347, 350, 349, 483, 339, 337, 354, 342,
497  483, 336, 333, 483, 350, 335, 347, 341, 338, 327,
498 
499  326, 483, 330, 483, 332, 483, 483, 335, 321, 339,
500  327, 319, 322, 483, 324, 320, 483, 327, 324, 318,
501  483, 323, 318, 483, 325, 310, 309, 322, 483, 306,
502  319, 306, 313, 146, 483, 314, 319, 318, 317, 313,
503  315, 314, 295, 312, 311, 300, 302, 308, 303, 293,
504  483, 301, 483, 483, 287, 287, 483, 286, 301, 287,
505  299, 288, 277, 278, 149, 285, 294, 275, 269, 483,
506  291, 287, 279, 278, 270, 155, 273, 285, 284, 266,
507  265, 277, 272, 483, 275, 260, 267, 266, 262, 256,
508  273, 268, 267, 266, 483, 269, 251, 251, 256, 257,
509 
510  256, 256, 258, 483, 483, 483, 261, 244, 483, 259,
511  483, 483, 245, 483, 483, 483, 235, 238, 236, 259,
512  245, 483, 240, 235, 237, 483, 232, 248, 239, 236,
513  483, 228, 483, 483, 244, 239, 483, 483, 226, 233,
514  224, 483, 483, 483, 232, 221, 237, 483, 223, 231,
515  483, 218, 233, 483, 215, 213, 212, 483, 483, 216,
516  215, 483, 221, 222, 483, 483, 209, 208, 211, 483,
517  483, 214, 205, 214, 216, 202, 205, 483, 205, 191,
518  483, 195, 483, 483, 197, 206, 483, 483, 483, 201,
519  483, 483, 483, 194, 190, 204, 203, 185, 193, 193,
520 
521  185, 189, 185, 483, 182, 193, 191, 180, 183, 483,
522  191, 190, 185, 179, 184, 483, 174, 181, 173, 172,
523  483, 483, 186, 185, 163, 170, 483, 181, 163, 161,
524  158, 483, 483, 160, 156, 158, 162, 156, 483, 483,
525  483, 483, 483, 152, 175, 483, 161, 483, 483, 483,
526  168, 141, 483, 483, 483, 114, 108, 483, 483, 89,
527  65, 25, 483, 483, 17, 8, 0
528  } ;
529 
531  { 0,
532  465, 465, 466, 466, 467, 467, 464, 464, 464, 464,
533  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
534  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
535  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
536  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
537  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
538  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
539  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
540  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
541  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
542 
543  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
544  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
545  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
546  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
547  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
548  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
549  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
550  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
551  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
552  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
553 
554  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
555  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
556  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
557  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
558  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
559  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
560  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
561  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
562  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
563  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
564 
565  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
566  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
567  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
568  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
569  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
570  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
571  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
572  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
573  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
574  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
575 
576  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
577  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
578  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
579  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
580  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
581  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
582  464, 464, 464, 0, 464, 464, 464
583  } ;
584 
586  { 0,
587  19, 16, 9, 17, 18, 18, 9, 16, 15, 17,
588  18, 18, 62, 62, 63, 64, 64, 8, 10, 464,
589  11, 12, 10, 68, 11, 12, 147, 69, 74, 71,
590  72, 464, 75, 80, 94, 81, 148, 82, 95, 73,
591  83, 97, 98, 96, 163, 99, 102, 13, 14, 100,
592  103, 13, 14, 21, 164, 22, 23, 24, 25, 26,
593  27, 28, 29, 30, 31, 32, 181, 33, 463, 34,
594  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
595  45, 46, 47, 48, 49, 50, 182, 51, 52, 53,
596  54, 55, 56, 57, 114, 58, 59, 60, 84, 85,
597 
598  462, 87, 62, 62, 88, 115, 105, 106, 89, 90,
599  141, 91, 107, 86, 92, 151, 151, 142, 143, 109,
600  93, 110, 111, 112, 113, 116, 145, 461, 120, 117,
601  146, 121, 124, 118, 122, 123, 125, 179, 188, 126,
602  127, 180, 189, 128, 119, 131, 460, 132, 129, 130,
603  133, 193, 134, 135, 459, 137, 136, 138, 63, 64,
604  64, 139, 201, 175, 194, 176, 140, 177, 197, 198,
605  206, 215, 202, 223, 226, 232, 216, 339, 224, 207,
606  151, 151, 300, 328, 458, 301, 302, 227, 329, 228,
607  457, 456, 233, 340, 455, 454, 453, 452, 451, 450,
608 
609  449, 448, 447, 446, 445, 444, 443, 442, 441, 440,
610  439, 438, 437, 436, 435, 434, 433, 432, 431, 430,
611  429, 428, 427, 426, 425, 424, 423, 422, 421, 420,
612  419, 418, 417, 416, 415, 414, 413, 412, 411, 410,
613  409, 408, 407, 406, 405, 404, 403, 402, 401, 400,
614  399, 398, 397, 396, 395, 394, 393, 392, 391, 390,
615  389, 388, 387, 386, 385, 384, 383, 382, 381, 380,
616  379, 378, 377, 376, 375, 374, 373, 372, 371, 370,
617  369, 368, 367, 366, 365, 364, 363, 362, 361, 360,
618  359, 358, 357, 356, 355, 354, 353, 352, 351, 350,
619 
620  349, 348, 347, 346, 345, 344, 343, 342, 341, 338,
621  337, 336, 335, 334, 333, 332, 331, 330, 327, 326,
622  325, 324, 323, 322, 321, 320, 319, 318, 317, 316,
623  315, 314, 313, 312, 311, 310, 309, 308, 307, 306,
624  305, 304, 303, 299, 298, 297, 296, 295, 294, 293,
625  292, 291, 290, 289, 288, 287, 286, 285, 284, 283,
626  282, 281, 280, 279, 278, 277, 276, 275, 274, 273,
627  272, 271, 270, 269, 268, 267, 266, 265, 264, 263,
628  262, 261, 260, 259, 258, 257, 256, 255, 254, 253,
629  252, 251, 250, 249, 248, 247, 246, 245, 244, 243,
630 
631  242, 241, 240, 239, 238, 237, 236, 235, 234, 231,
632  230, 229, 225, 222, 221, 220, 219, 218, 217, 214,
633  213, 212, 211, 210, 209, 208, 205, 204, 203, 200,
634  199, 196, 195, 192, 191, 190, 187, 186, 185, 184,
635  183, 178, 174, 173, 172, 171, 170, 169, 168, 167,
636  166, 165, 162, 161, 160, 159, 158, 157, 156, 155,
637  154, 153, 152, 61, 150, 149, 144, 108, 104, 101,
638  79, 78, 77, 76, 70, 67, 66, 65, 61, 464,
639  20, 20, 7, 464, 464, 464, 464, 464, 464, 464,
640  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
641 
642  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
643  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
644  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
645  464, 464
646  } ;
647 
649  { 0,
650  467, 3, 1, 3, 3, 3, 2, 4, 466, 4,
651  4, 4, 17, 17, 18, 18, 18, 465, 1, 0,
652  1, 1, 2, 25, 2, 2, 56, 25, 28, 27,
653  27, 0, 28, 36, 39, 36, 56, 36, 39, 27,
654  36, 40, 40, 39, 80, 40, 42, 1, 1, 40,
655  42, 2, 2, 10, 80, 10, 10, 10, 10, 10,
656  10, 10, 10, 10, 10, 10, 95, 10, 462, 10,
657  10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
658  10, 10, 10, 10, 10, 10, 95, 10, 10, 10,
659  10, 10, 10, 10, 47, 10, 10, 10, 37, 37,
660 
661  461, 38, 62, 62, 38, 47, 44, 44, 38, 38,
662  53, 38, 44, 37, 38, 63, 63, 53, 53, 46,
663  38, 46, 46, 46, 46, 48, 55, 460, 49, 48,
664  55, 49, 50, 48, 49, 49, 50, 94, 101, 50,
665  50, 94, 101, 50, 48, 51, 457, 51, 50, 50,
666  51, 105, 51, 51, 456, 52, 51, 52, 64, 64,
667  64, 52, 112, 92, 105, 92, 52, 92, 109, 109,
668  117, 129, 112, 137, 140, 144, 129, 276, 137, 117,
669  151, 151, 234, 265, 452, 234, 234, 140, 265, 140,
670  451, 447, 144, 276, 445, 444, 438, 437, 436, 435,
671 
672  434, 431, 430, 429, 428, 426, 425, 424, 423, 420,
673  419, 418, 417, 415, 414, 413, 412, 411, 409, 408,
674  407, 406, 405, 403, 402, 401, 400, 399, 398, 397,
675  396, 395, 394, 390, 386, 385, 382, 380, 379, 377,
676  376, 375, 374, 373, 372, 369, 368, 367, 364, 363,
677  361, 360, 357, 356, 355, 353, 352, 350, 349, 347,
678  346, 345, 341, 340, 339, 336, 335, 332, 330, 329,
679  328, 327, 325, 324, 323, 321, 320, 319, 318, 317,
680  313, 310, 308, 307, 303, 302, 301, 300, 299, 298,
681  297, 296, 294, 293, 292, 291, 290, 289, 288, 287,
682 
683  286, 285, 283, 282, 281, 280, 279, 278, 277, 275,
684  274, 273, 272, 271, 269, 268, 267, 266, 264, 263,
685  262, 261, 260, 259, 258, 256, 255, 252, 250, 249,
686  248, 247, 246, 245, 244, 243, 242, 241, 240, 239,
687  238, 237, 236, 233, 232, 231, 230, 228, 227, 226,
688  225, 223, 222, 220, 219, 218, 216, 215, 213, 212,
689  211, 210, 209, 208, 205, 203, 201, 200, 199, 198,
690  197, 196, 195, 193, 192, 190, 189, 188, 187, 185,
691  184, 183, 181, 180, 177, 176, 175, 174, 173, 171,
692  169, 168, 166, 165, 164, 163, 162, 161, 160, 159,
693 
694  156, 155, 154, 153, 152, 150, 147, 146, 145, 143,
695  142, 141, 139, 135, 134, 133, 132, 131, 130, 126,
696  125, 124, 123, 122, 121, 120, 116, 114, 113, 111,
697  110, 108, 106, 104, 103, 102, 100, 99, 98, 97,
698  96, 93, 91, 90, 89, 88, 87, 86, 84, 83,
699  82, 81, 78, 77, 76, 75, 73, 71, 70, 69,
700  68, 66, 65, 61, 58, 57, 54, 45, 43, 41,
701  32, 31, 30, 29, 26, 24, 23, 22, 16, 7,
702  6, 5, 464, 464, 464, 464, 464, 464, 464, 464,
703  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
704 
705  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
706  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
707  464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
708  464, 464
709  } ;
710 
711 /* The intent behind this definition is that it'll catch
712  * any uses of REJECT which flex missed.
713  */
714 #define REJECT reject_used_but_not_detected
715 #define yymore() yymore_used_but_not_detected
716 #define YY_MORE_ADJ 0
717 #define YY_RESTORE_YY_MORE_OFFSET
718 #line 1 "libinterp/corefcn/oct-tex-lexer.ll"
719 /* DO NOT EDIT. AUTOMATICALLY GENERATED FROM oct-tex-lexer.in.ll and oct-tex-symbols.in. */
720 /*
721 
722 Copyright (C) 2013-2017 Michael Goffioul
723 
724 This file is part of Octave.
725 
726 Octave is free software; you can redistribute it and/or modify it
727 under the terms of the GNU General Public License as published by the
728 Free Software Foundation; either version 3 of the License, or (at your
729 option) any later version.
730 
731 Octave is distributed in the hope that it will be useful, but WITHOUT
732 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
733 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
734 for more details.
735 
736 You should have received a copy of the GNU General Public License
737 along with Octave; see the file COPYING. If not, see
738 <http://www.gnu.org/licenses/>.
739 
740 */
741 
742 
743 
744 #line 62 "libinterp/corefcn/oct-tex-lexer.ll"
745 
746 #include "unistd-wrappers.h"
747 
748 #include "txt-eng.h"
749 #include "oct-tex-parser.h"
750 
751 // FIXME: with bison 3.x, OCTAVE_TEX_STYPE appears in the generated
752 // oct-parse.h file, but there is no definition for YYSTYPE, which is
753 // needed by the code that is generated by flex. I can't seem to find
754 // a way to tell flex to use OCTAVE_TEX_STYPE instead of YYSTYPE in
755 // the code it generates, or to tell bison to provide the definition
756 // of YYSTYPE in the generated oct-parse.h file.
757 
758 #if defined (OCTAVE_TEX_STYPE_IS_DECLARED) && ! defined YYSTYPE
759 # define YYSTYPE OCTAVE_TEX_STYPE
760 #endif
761 
762 #define YY_NO_UNISTD_H 1
763 #define isatty octave_isatty_wrapper
764 #define yyguts_t octave_tex_yyguts_t
765 
766 #line 767 "libinterp/corefcn/oct-tex-lexer.cc"
767 
768 #define INITIAL 0
769 #define NUM_MODE 1
770 #define MAYBE_NUM_MODE 2
771 
772 #ifndef YY_NO_UNISTD_H
773 /* Special case for "unistd.h", since it is non-ANSI. We include it way
774  * down here because we want the user's section 1 to have been scanned first.
775  * The user has a chance to override it with an option.
776  */
777 #include <unistd.h>
778 #endif
779 
780 #ifndef YY_EXTRA_TYPE
781 #define YY_EXTRA_TYPE void *
782 #endif
783 
784 /* Holds the entire state of the reentrant scanner. */
785 struct yyguts_t
786  {
787 
788  /* User-defined. Not touched by flex. */
790 
791  /* The rest are the same as the globals declared in the non-reentrant scanner. */
792  FILE *yyin_r, *yyout_r;
793  size_t yy_buffer_stack_top; /**< index of top of stack. */
794  size_t yy_buffer_stack_max; /**< capacity of stack. */
795  YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
798  int yyleng_r;
799  char *yy_c_buf_p;
800  int yy_init;
801  int yy_start;
808 
811 
812  char *yytext_r;
815 
817 
818  }; /* end struct yyguts_t */
819 
820 static int yy_init_globals (yyscan_t yyscanner );
821 
822  /* This must go here because YYSTYPE and YYLTYPE are included
823  * from bison output in section 1.*/
824  # define yylval yyg->yylval_r
825 
827 
829 
830 /* Accessor methods to globals.
831  These are made visible to non-reentrant scanners for convenience. */
832 
833 int octave_tex_lex_destroy (yyscan_t yyscanner );
834 
835 int octave_tex_get_debug (yyscan_t yyscanner );
836 
837 void octave_tex_set_debug (int debug_flag ,yyscan_t yyscanner );
838 
840 
841 void octave_tex_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
842 
843 FILE *octave_tex_get_in (yyscan_t yyscanner );
844 
845 void octave_tex_set_in (FILE * _in_str ,yyscan_t yyscanner );
846 
847 FILE *octave_tex_get_out (yyscan_t yyscanner );
848 
849 void octave_tex_set_out (FILE * _out_str ,yyscan_t yyscanner );
850 
851  int octave_tex_get_leng (yyscan_t yyscanner );
852 
853 char *octave_tex_get_text (yyscan_t yyscanner );
854 
855 int octave_tex_get_lineno (yyscan_t yyscanner );
856 
857 void octave_tex_set_lineno (int _line_number ,yyscan_t yyscanner );
858 
859 int octave_tex_get_column (yyscan_t yyscanner );
860 
861 void octave_tex_set_column (int _column_no ,yyscan_t yyscanner );
862 
863 YYSTYPE * octave_tex_get_lval (yyscan_t yyscanner );
864 
865 void octave_tex_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
866 
867 /* Macros after this point can all be overridden by user definitions in
868  * section 1.
869  */
870 
871 #ifndef YY_SKIP_YYWRAP
872 #ifdef __cplusplus
873 extern "C" int octave_tex_wrap (yyscan_t yyscanner );
874 #else
875 extern int octave_tex_wrap (yyscan_t yyscanner );
876 #endif
877 #endif
878 
879 #ifndef YY_NO_UNPUT
880 
881  static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner);
882 
883 #endif
884 
885 #ifndef yytext_ptr
886 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
887 #endif
888 
889 #ifdef YY_NEED_STRLEN
890 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
891 #endif
892 
893 #ifndef YY_NO_INPUT
894 
895 #ifdef __cplusplus
896 static int yyinput (yyscan_t yyscanner );
897 #else
898 static int input (yyscan_t yyscanner );
899 #endif
900 
901 #endif
902 
903 /* Amount of stuff to slurp up with each read. */
904 #ifndef YY_READ_BUF_SIZE
905 #ifdef __ia64__
906 /* On IA-64, the buffer size is 16k, not 8k */
907 #define YY_READ_BUF_SIZE 16384
908 #else
909 #define YY_READ_BUF_SIZE 8192
910 #endif /* __ia64__ */
911 #endif
912 
913 /* Copy whatever the last rule matched to the standard output. */
914 #ifndef ECHO
915 /* This used to be an fputs(), but since the string might contain NUL's,
916  * we now use fwrite().
917  */
918 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
919 #endif
920 
921 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
922  * is returned in "result".
923  */
924 #ifndef YY_INPUT
925 #define YY_INPUT(buf,result,max_size) \
926  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
927  { \
928  int c = '*'; \
929  size_t n; \
930  for ( n = 0; n < max_size && \
931  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
932  buf[n] = (char) c; \
933  if ( c == '\n' ) \
934  buf[n++] = (char) c; \
935  if ( c == EOF && ferror( yyin ) ) \
936  YY_FATAL_ERROR( "input in flex scanner failed" ); \
937  result = n; \
938  } \
939  else \
940  { \
941  errno=0; \
942  while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
943  { \
944  if( errno != EINTR) \
945  { \
946  YY_FATAL_ERROR( "input in flex scanner failed" ); \
947  break; \
948  } \
949  errno=0; \
950  clearerr(yyin); \
951  } \
952  }\
953 \
954 
955 #endif
956 
957 /* No semi-colon after return; correct usage is to write "yyterminate();" -
958  * we don't want an extra ';' after the "return" because that will cause
959  * some compilers to complain about unreachable statements.
960  */
961 #ifndef yyterminate
962 #define yyterminate() return YY_NULL
963 #endif
964 
965 /* Number of entries by which start-condition stack grows. */
966 #ifndef YY_START_STACK_INCR
967 #define YY_START_STACK_INCR 25
968 #endif
969 
970 /* Report a fatal error. */
971 #ifndef YY_FATAL_ERROR
972 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
973 #endif
974 
975 /* end tables serialization structures and prototypes */
976 
977 /* Default declaration of generated scanner - a define so the user can
978  * easily add parameters.
979  */
980 #ifndef YY_DECL
981 #define YY_DECL_IS_OURS 1
982 
983 extern int octave_tex_lex \
984  (YYSTYPE * yylval_param ,yyscan_t yyscanner);
985 
986 #define YY_DECL int octave_tex_lex \
987  (YYSTYPE * yylval_param , yyscan_t yyscanner)
988 #endif /* !YY_DECL */
989 
990 /* Code executed at the beginning of each rule, after yytext and yyleng
991  * have been set up.
992  */
993 #ifndef YY_USER_ACTION
994 #define YY_USER_ACTION
995 #endif
996 
997 /* Code executed at the end of each rule. */
998 #ifndef YY_BREAK
999 #define YY_BREAK /*LINTED*/break;
1000 #endif
1001 
1002 #define YY_RULE_SETUP \
1003  YY_USER_ACTION
1004 
1005 /** The main scanner function which does all the work.
1006  */
1008 {
1009  yy_state_type yy_current_state;
1010  char *yy_cp, *yy_bp;
1011  int yy_act;
1012  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1013 
1014  yylval = yylval_param;
1015 
1016  if ( !yyg->yy_init )
1017  {
1018  yyg->yy_init = 1;
1019 
1020 #ifdef YY_USER_INIT
1021  YY_USER_INIT;
1022 #endif
1023 
1024  if ( ! yyg->yy_start )
1025  yyg->yy_start = 1; /* first start state */
1026 
1027  if ( ! yyin )
1028  yyin = stdin;
1029 
1030  if ( ! yyout )
1031  yyout = stdout;
1032 
1033  if ( ! YY_CURRENT_BUFFER ) {
1034  octave_tex_ensure_buffer_stack (yyscanner);
1037  }
1038 
1039  octave_tex__load_buffer_state(yyscanner );
1040  }
1041 
1042  {
1043 #line 88 "libinterp/corefcn/oct-tex-lexer.ll"
1044 
1045 
1046 
1047 // Numeric values.
1048 
1049 
1050 #line 1051 "libinterp/corefcn/oct-tex-lexer.cc"
1051 
1052  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1053  {
1054  yy_cp = yyg->yy_c_buf_p;
1055 
1056  /* Support of yytext. */
1057  *yy_cp = yyg->yy_hold_char;
1058 
1059  /* yy_bp points to the position in yy_ch_buf of the start of
1060  * the current run.
1061  */
1062  yy_bp = yy_cp;
1063 
1064  yy_current_state = yyg->yy_start;
1065 yy_match:
1066  do
1067  {
1068  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1069  if ( yy_accept[yy_current_state] )
1070  {
1071  yyg->yy_last_accepting_state = yy_current_state;
1072  yyg->yy_last_accepting_cpos = yy_cp;
1073  }
1074  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1075  {
1076  yy_current_state = (int) yy_def[yy_current_state];
1077  if ( yy_current_state >= 465 )
1078  yy_c = yy_meta[(unsigned int) yy_c];
1079  }
1080  yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1081  ++yy_cp;
1082  }
1083  while ( yy_base[yy_current_state] != 483 );
1084 
1085 yy_find_action:
1086  yy_act = yy_accept[yy_current_state];
1087  if ( yy_act == 0 )
1088  { /* have to back up */
1089  yy_cp = yyg->yy_last_accepting_cpos;
1090  yy_current_state = yyg->yy_last_accepting_state;
1091  yy_act = yy_accept[yy_current_state];
1092  }
1093 
1095 
1096 do_action: /* This label is used only to access EOF actions. */
1097 
1098  switch ( yy_act )
1099  { /* beginning of action switch */
1100  case 0: /* must back up */
1101  /* undo the effects of YY_DO_BEFORE_ACTION */
1102  *yy_cp = yyg->yy_hold_char;
1103  yy_cp = yyg->yy_last_accepting_cpos;
1104  yy_current_state = yyg->yy_last_accepting_state;
1105  goto yy_find_action;
1106 
1107 case 1:
1109 #line 94 "libinterp/corefcn/oct-tex-lexer.ll"
1110 {
1111  int nread = sscanf (yytext, "%lf", &(yylval->num));
1112 
1113  if (nread == 1)
1114  return NUM;
1115  }
1116  YY_BREAK
1117 case 2:
1119 #line 101 "libinterp/corefcn/oct-tex-lexer.ll"
1120 { }
1121  YY_BREAK
1122 case 3:
1123 /* rule 3 can match eol */
1125 #line 103 "libinterp/corefcn/oct-tex-lexer.ll"
1126 {
1127  yyless (0);
1128  BEGIN (INITIAL);
1129  }
1130  YY_BREAK
1131 case 4:
1133 #line 108 "libinterp/corefcn/oct-tex-lexer.ll"
1134 {
1135  BEGIN (NUM_MODE);
1136  return START;
1137  }
1138  YY_BREAK
1139 case 5:
1140 /* rule 5 can match eol */
1142 #line 113 "libinterp/corefcn/oct-tex-lexer.ll"
1143 {
1144  yyless (0);
1145  BEGIN (INITIAL);
1146  }
1147  YY_BREAK
1148 
1149 // Simple commands.
1150 
1151 case 6:
1153 #line 122 "libinterp/corefcn/oct-tex-lexer.ll"
1154 { return BF; }
1155  YY_BREAK
1156 case 7:
1158 #line 123 "libinterp/corefcn/oct-tex-lexer.ll"
1159 { return IT; }
1160  YY_BREAK
1161 case 8:
1163 #line 124 "libinterp/corefcn/oct-tex-lexer.ll"
1164 { return SL; }
1165  YY_BREAK
1166 case 9:
1168 #line 125 "libinterp/corefcn/oct-tex-lexer.ll"
1169 { return RM; }
1170  YY_BREAK
1171 
1172 // Generic font commands.
1173 
1174 case 10:
1176 #line 131 "libinterp/corefcn/oct-tex-lexer.ll"
1177 { return FONTNAME; }
1178  YY_BREAK
1179 case 11:
1181 #line 133 "libinterp/corefcn/oct-tex-lexer.ll"
1182 {
1184  return FONTSIZE;
1185  }
1186  YY_BREAK
1187 case 12:
1189 #line 138 "libinterp/corefcn/oct-tex-lexer.ll"
1190 {
1192  return COLOR_RGB;
1193  }
1194  YY_BREAK
1195 case 13:
1197 #line 143 "libinterp/corefcn/oct-tex-lexer.ll"
1198 { return COLOR; }
1199  YY_BREAK
1200 
1201 // Special characters.
1202 
1203 case 14:
1205 #line 149 "libinterp/corefcn/oct-tex-lexer.ll"
1206 { return START; }
1207  YY_BREAK
1208 case 15:
1210 #line 150 "libinterp/corefcn/oct-tex-lexer.ll"
1211 { return END; }
1212  YY_BREAK
1213 case 16:
1215 #line 151 "libinterp/corefcn/oct-tex-lexer.ll"
1216 { return SUPER; }
1217  YY_BREAK
1218 case 17:
1220 #line 152 "libinterp/corefcn/oct-tex-lexer.ll"
1221 { return SUB; }
1222  YY_BREAK
1223 case 18:
1224 #line 155 "libinterp/corefcn/oct-tex-lexer.ll"
1225 case 19:
1226 #line 156 "libinterp/corefcn/oct-tex-lexer.ll"
1227 case 20:
1228 #line 157 "libinterp/corefcn/oct-tex-lexer.ll"
1229 case 21:
1230 #line 158 "libinterp/corefcn/oct-tex-lexer.ll"
1231 case 22:
1233 #line 158 "libinterp/corefcn/oct-tex-lexer.ll"
1234 {
1235  yylval->ch = yytext[1];
1236  return CH;
1237  }
1238  YY_BREAK
1239 
1240 // Symbols.
1241 
1242 case 23:
1244 #line 167 "libinterp/corefcn/oct-tex-lexer.ll"
1245 { yylval->sym = 0; return SYM; }
1246  YY_BREAK
1247 case 24:
1249 #line 168 "libinterp/corefcn/oct-tex-lexer.ll"
1250 { yylval->sym = 1; return SYM; }
1251  YY_BREAK
1252 case 25:
1254 #line 169 "libinterp/corefcn/oct-tex-lexer.ll"
1255 { yylval->sym = 2; return SYM; }
1256  YY_BREAK
1257 case 26:
1259 #line 170 "libinterp/corefcn/oct-tex-lexer.ll"
1260 { yylval->sym = 3; return SYM; }
1261  YY_BREAK
1262 case 27:
1264 #line 171 "libinterp/corefcn/oct-tex-lexer.ll"
1265 { yylval->sym = 4; return SYM; }
1266  YY_BREAK
1267 case 28:
1269 #line 172 "libinterp/corefcn/oct-tex-lexer.ll"
1270 { yylval->sym = 5; return SYM; }
1271  YY_BREAK
1272 case 29:
1274 #line 173 "libinterp/corefcn/oct-tex-lexer.ll"
1275 { yylval->sym = 6; return SYM; }
1276  YY_BREAK
1277 case 30:
1279 #line 174 "libinterp/corefcn/oct-tex-lexer.ll"
1280 { yylval->sym = 7; return SYM; }
1281  YY_BREAK
1282 case 31:
1284 #line 175 "libinterp/corefcn/oct-tex-lexer.ll"
1285 { yylval->sym = 8; return SYM; }
1286  YY_BREAK
1287 case 32:
1289 #line 176 "libinterp/corefcn/oct-tex-lexer.ll"
1290 { yylval->sym = 9; return SYM; }
1291  YY_BREAK
1292 case 33:
1294 #line 177 "libinterp/corefcn/oct-tex-lexer.ll"
1295 { yylval->sym = 10; return SYM; }
1296  YY_BREAK
1297 case 34:
1299 #line 178 "libinterp/corefcn/oct-tex-lexer.ll"
1300 { yylval->sym = 11; return SYM; }
1301  YY_BREAK
1302 case 35:
1304 #line 179 "libinterp/corefcn/oct-tex-lexer.ll"
1305 { yylval->sym = 12; return SYM; }
1306  YY_BREAK
1307 case 36:
1309 #line 180 "libinterp/corefcn/oct-tex-lexer.ll"
1310 { yylval->sym = 13; return SYM; }
1311  YY_BREAK
1312 case 37:
1314 #line 181 "libinterp/corefcn/oct-tex-lexer.ll"
1315 { yylval->sym = 14; return SYM; }
1316  YY_BREAK
1317 case 38:
1319 #line 182 "libinterp/corefcn/oct-tex-lexer.ll"
1320 { yylval->sym = 15; return SYM; }
1321  YY_BREAK
1322 case 39:
1324 #line 183 "libinterp/corefcn/oct-tex-lexer.ll"
1325 { yylval->sym = 16; return SYM; }
1326  YY_BREAK
1327 case 40:
1329 #line 184 "libinterp/corefcn/oct-tex-lexer.ll"
1330 { yylval->sym = 17; return SYM; }
1331  YY_BREAK
1332 case 41:
1334 #line 185 "libinterp/corefcn/oct-tex-lexer.ll"
1335 { yylval->sym = 18; return SYM; }
1336  YY_BREAK
1337 case 42:
1339 #line 186 "libinterp/corefcn/oct-tex-lexer.ll"
1340 { yylval->sym = 19; return SYM; }
1341  YY_BREAK
1342 case 43:
1344 #line 187 "libinterp/corefcn/oct-tex-lexer.ll"
1345 { yylval->sym = 20; return SYM; }
1346  YY_BREAK
1347 case 44:
1349 #line 188 "libinterp/corefcn/oct-tex-lexer.ll"
1350 { yylval->sym = 21; return SYM; }
1351  YY_BREAK
1352 case 45:
1354 #line 189 "libinterp/corefcn/oct-tex-lexer.ll"
1355 { yylval->sym = 22; return SYM; }
1356  YY_BREAK
1357 case 46:
1359 #line 190 "libinterp/corefcn/oct-tex-lexer.ll"
1360 { yylval->sym = 23; return SYM; }
1361  YY_BREAK
1362 case 47:
1364 #line 191 "libinterp/corefcn/oct-tex-lexer.ll"
1365 { yylval->sym = 24; return SYM; }
1366  YY_BREAK
1367 case 48:
1369 #line 192 "libinterp/corefcn/oct-tex-lexer.ll"
1370 { yylval->sym = 25; return SYM; }
1371  YY_BREAK
1372 case 49:
1374 #line 193 "libinterp/corefcn/oct-tex-lexer.ll"
1375 { yylval->sym = 26; return SYM; }
1376  YY_BREAK
1377 case 50:
1379 #line 194 "libinterp/corefcn/oct-tex-lexer.ll"
1380 { yylval->sym = 27; return SYM; }
1381  YY_BREAK
1382 case 51:
1384 #line 195 "libinterp/corefcn/oct-tex-lexer.ll"
1385 { yylval->sym = 28; return SYM; }
1386  YY_BREAK
1387 case 52:
1389 #line 196 "libinterp/corefcn/oct-tex-lexer.ll"
1390 { yylval->sym = 29; return SYM; }
1391  YY_BREAK
1392 case 53:
1394 #line 197 "libinterp/corefcn/oct-tex-lexer.ll"
1395 { yylval->sym = 30; return SYM; }
1396  YY_BREAK
1397 case 54:
1399 #line 198 "libinterp/corefcn/oct-tex-lexer.ll"
1400 { yylval->sym = 31; return SYM; }
1401  YY_BREAK
1402 case 55:
1404 #line 199 "libinterp/corefcn/oct-tex-lexer.ll"
1405 { yylval->sym = 32; return SYM; }
1406  YY_BREAK
1407 case 56:
1409 #line 200 "libinterp/corefcn/oct-tex-lexer.ll"
1410 { yylval->sym = 33; return SYM; }
1411  YY_BREAK
1412 case 57:
1414 #line 201 "libinterp/corefcn/oct-tex-lexer.ll"
1415 { yylval->sym = 34; return SYM; }
1416  YY_BREAK
1417 case 58:
1419 #line 202 "libinterp/corefcn/oct-tex-lexer.ll"
1420 { yylval->sym = 35; return SYM; }
1421  YY_BREAK
1422 case 59:
1424 #line 203 "libinterp/corefcn/oct-tex-lexer.ll"
1425 { yylval->sym = 36; return SYM; }
1426  YY_BREAK
1427 case 60:
1429 #line 204 "libinterp/corefcn/oct-tex-lexer.ll"
1430 { yylval->sym = 37; return SYM; }
1431  YY_BREAK
1432 case 61:
1434 #line 205 "libinterp/corefcn/oct-tex-lexer.ll"
1435 { yylval->sym = 38; return SYM; }
1436  YY_BREAK
1437 case 62:
1439 #line 206 "libinterp/corefcn/oct-tex-lexer.ll"
1440 { yylval->sym = 39; return SYM; }
1441  YY_BREAK
1442 case 63:
1444 #line 207 "libinterp/corefcn/oct-tex-lexer.ll"
1445 { yylval->sym = 40; return SYM; }
1446  YY_BREAK
1447 case 64:
1449 #line 208 "libinterp/corefcn/oct-tex-lexer.ll"
1450 { yylval->sym = 41; return SYM; }
1451  YY_BREAK
1452 case 65:
1454 #line 209 "libinterp/corefcn/oct-tex-lexer.ll"
1455 { yylval->sym = 42; return SYM; }
1456  YY_BREAK
1457 case 66:
1459 #line 210 "libinterp/corefcn/oct-tex-lexer.ll"
1460 { yylval->sym = 43; return SYM; }
1461  YY_BREAK
1462 case 67:
1464 #line 211 "libinterp/corefcn/oct-tex-lexer.ll"
1465 { yylval->sym = 44; return SYM; }
1466  YY_BREAK
1467 case 68:
1469 #line 212 "libinterp/corefcn/oct-tex-lexer.ll"
1470 { yylval->sym = 45; return SYM; }
1471  YY_BREAK
1472 case 69:
1474 #line 213 "libinterp/corefcn/oct-tex-lexer.ll"
1475 { yylval->sym = 46; return SYM; }
1476  YY_BREAK
1477 case 70:
1479 #line 214 "libinterp/corefcn/oct-tex-lexer.ll"
1480 { yylval->sym = 47; return SYM; }
1481  YY_BREAK
1482 case 71:
1484 #line 215 "libinterp/corefcn/oct-tex-lexer.ll"
1485 { yylval->sym = 48; return SYM; }
1486  YY_BREAK
1487 case 72:
1489 #line 216 "libinterp/corefcn/oct-tex-lexer.ll"
1490 { yylval->sym = 49; return SYM; }
1491  YY_BREAK
1492 case 73:
1494 #line 217 "libinterp/corefcn/oct-tex-lexer.ll"
1495 { yylval->sym = 50; return SYM; }
1496  YY_BREAK
1497 case 74:
1499 #line 218 "libinterp/corefcn/oct-tex-lexer.ll"
1500 { yylval->sym = 51; return SYM; }
1501  YY_BREAK
1502 case 75:
1504 #line 219 "libinterp/corefcn/oct-tex-lexer.ll"
1505 { yylval->sym = 52; return SYM; }
1506  YY_BREAK
1507 case 76:
1509 #line 220 "libinterp/corefcn/oct-tex-lexer.ll"
1510 { yylval->sym = 53; return SYM; }
1511  YY_BREAK
1512 case 77:
1514 #line 221 "libinterp/corefcn/oct-tex-lexer.ll"
1515 { yylval->sym = 54; return SYM; }
1516  YY_BREAK
1517 case 78:
1519 #line 222 "libinterp/corefcn/oct-tex-lexer.ll"
1520 { yylval->sym = 55; return SYM; }
1521  YY_BREAK
1522 case 79:
1524 #line 223 "libinterp/corefcn/oct-tex-lexer.ll"
1525 { yylval->sym = 56; return SYM; }
1526  YY_BREAK
1527 case 80:
1529 #line 224 "libinterp/corefcn/oct-tex-lexer.ll"
1530 { yylval->sym = 57; return SYM; }
1531  YY_BREAK
1532 case 81:
1534 #line 225 "libinterp/corefcn/oct-tex-lexer.ll"
1535 { yylval->sym = 58; return SYM; }
1536  YY_BREAK
1537 case 82:
1539 #line 226 "libinterp/corefcn/oct-tex-lexer.ll"
1540 { yylval->sym = 59; return SYM; }
1541  YY_BREAK
1542 case 83:
1544 #line 227 "libinterp/corefcn/oct-tex-lexer.ll"
1545 { yylval->sym = 60; return SYM; }
1546  YY_BREAK
1547 case 84:
1549 #line 228 "libinterp/corefcn/oct-tex-lexer.ll"
1550 { yylval->sym = 61; return SYM; }
1551  YY_BREAK
1552 case 85:
1554 #line 229 "libinterp/corefcn/oct-tex-lexer.ll"
1555 { yylval->sym = 62; return SYM; }
1556  YY_BREAK
1557 case 86:
1559 #line 230 "libinterp/corefcn/oct-tex-lexer.ll"
1560 { yylval->sym = 63; return SYM; }
1561  YY_BREAK
1562 case 87:
1564 #line 231 "libinterp/corefcn/oct-tex-lexer.ll"
1565 { yylval->sym = 64; return SYM; }
1566  YY_BREAK
1567 case 88:
1569 #line 232 "libinterp/corefcn/oct-tex-lexer.ll"
1570 { yylval->sym = 65; return SYM; }
1571  YY_BREAK
1572 case 89:
1574 #line 233 "libinterp/corefcn/oct-tex-lexer.ll"
1575 { yylval->sym = 66; return SYM; }
1576  YY_BREAK
1577 case 90:
1579 #line 234 "libinterp/corefcn/oct-tex-lexer.ll"
1580 { yylval->sym = 67; return SYM; }
1581  YY_BREAK
1582 case 91:
1584 #line 235 "libinterp/corefcn/oct-tex-lexer.ll"
1585 { yylval->sym = 68; return SYM; }
1586  YY_BREAK
1587 case 92:
1589 #line 236 "libinterp/corefcn/oct-tex-lexer.ll"
1590 { yylval->sym = 69; return SYM; }
1591  YY_BREAK
1592 case 93:
1594 #line 237 "libinterp/corefcn/oct-tex-lexer.ll"
1595 { yylval->sym = 70; return SYM; }
1596  YY_BREAK
1597 case 94:
1599 #line 238 "libinterp/corefcn/oct-tex-lexer.ll"
1600 { yylval->sym = 71; return SYM; }
1601  YY_BREAK
1602 case 95:
1604 #line 239 "libinterp/corefcn/oct-tex-lexer.ll"
1605 { yylval->sym = 72; return SYM; }
1606  YY_BREAK
1607 case 96:
1609 #line 240 "libinterp/corefcn/oct-tex-lexer.ll"
1610 { yylval->sym = 73; return SYM; }
1611  YY_BREAK
1612 case 97:
1614 #line 241 "libinterp/corefcn/oct-tex-lexer.ll"
1615 { yylval->sym = 74; return SYM; }
1616  YY_BREAK
1617 case 98:
1619 #line 242 "libinterp/corefcn/oct-tex-lexer.ll"
1620 { yylval->sym = 75; return SYM; }
1621  YY_BREAK
1622 case 99:
1624 #line 243 "libinterp/corefcn/oct-tex-lexer.ll"
1625 { yylval->sym = 76; return SYM; }
1626  YY_BREAK
1627 case 100:
1629 #line 244 "libinterp/corefcn/oct-tex-lexer.ll"
1630 { yylval->sym = 77; return SYM; }
1631  YY_BREAK
1632 case 101:
1634 #line 245 "libinterp/corefcn/oct-tex-lexer.ll"
1635 { yylval->sym = 78; return SYM; }
1636  YY_BREAK
1637 case 102:
1639 #line 246 "libinterp/corefcn/oct-tex-lexer.ll"
1640 { yylval->sym = 79; return SYM; }
1641  YY_BREAK
1642 case 103:
1644 #line 247 "libinterp/corefcn/oct-tex-lexer.ll"
1645 { yylval->sym = 80; return SYM; }
1646  YY_BREAK
1647 case 104:
1649 #line 248 "libinterp/corefcn/oct-tex-lexer.ll"
1650 { yylval->sym = 81; return SYM; }
1651  YY_BREAK
1652 case 105:
1654 #line 249 "libinterp/corefcn/oct-tex-lexer.ll"
1655 { yylval->sym = 82; return SYM; }
1656  YY_BREAK
1657 case 106:
1659 #line 250 "libinterp/corefcn/oct-tex-lexer.ll"
1660 { yylval->sym = 83; return SYM; }
1661  YY_BREAK
1662 case 107:
1664 #line 251 "libinterp/corefcn/oct-tex-lexer.ll"
1665 { yylval->sym = 84; return SYM; }
1666  YY_BREAK
1667 case 108:
1669 #line 252 "libinterp/corefcn/oct-tex-lexer.ll"
1670 { yylval->sym = 85; return SYM; }
1671  YY_BREAK
1672 case 109:
1674 #line 253 "libinterp/corefcn/oct-tex-lexer.ll"
1675 { yylval->sym = 86; return SYM; }
1676  YY_BREAK
1677 case 110:
1679 #line 254 "libinterp/corefcn/oct-tex-lexer.ll"
1680 { yylval->sym = 87; return SYM; }
1681  YY_BREAK
1682 case 111:
1684 #line 255 "libinterp/corefcn/oct-tex-lexer.ll"
1685 { yylval->sym = 88; return SYM; }
1686  YY_BREAK
1687 case 112:
1689 #line 256 "libinterp/corefcn/oct-tex-lexer.ll"
1690 { yylval->sym = 89; return SYM; }
1691  YY_BREAK
1692 case 113:
1694 #line 257 "libinterp/corefcn/oct-tex-lexer.ll"
1695 { yylval->sym = 90; return SYM; }
1696  YY_BREAK
1697 case 114:
1699 #line 258 "libinterp/corefcn/oct-tex-lexer.ll"
1700 { yylval->sym = 91; return SYM; }
1701  YY_BREAK
1702 case 115:
1704 #line 259 "libinterp/corefcn/oct-tex-lexer.ll"
1705 { yylval->sym = 92; return SYM; }
1706  YY_BREAK
1707 case 116:
1709 #line 260 "libinterp/corefcn/oct-tex-lexer.ll"
1710 { yylval->sym = 93; return SYM; }
1711  YY_BREAK
1712 case 117:
1714 #line 261 "libinterp/corefcn/oct-tex-lexer.ll"
1715 { yylval->sym = 94; return SYM; }
1716  YY_BREAK
1717 case 118:
1719 #line 262 "libinterp/corefcn/oct-tex-lexer.ll"
1720 { yylval->sym = 95; return SYM; }
1721  YY_BREAK
1722 case 119:
1724 #line 263 "libinterp/corefcn/oct-tex-lexer.ll"
1725 { yylval->sym = 96; return SYM; }
1726  YY_BREAK
1727 case 120:
1729 #line 264 "libinterp/corefcn/oct-tex-lexer.ll"
1730 { yylval->sym = 97; return SYM; }
1731  YY_BREAK
1732 case 121:
1734 #line 265 "libinterp/corefcn/oct-tex-lexer.ll"
1735 { yylval->sym = 98; return SYM; }
1736  YY_BREAK
1737 case 122:
1739 #line 266 "libinterp/corefcn/oct-tex-lexer.ll"
1740 { yylval->sym = 99; return SYM; }
1741  YY_BREAK
1742 case 123:
1744 #line 267 "libinterp/corefcn/oct-tex-lexer.ll"
1745 { yylval->sym = 100; return SYM; }
1746  YY_BREAK
1747 case 124:
1749 #line 268 "libinterp/corefcn/oct-tex-lexer.ll"
1750 { yylval->sym = 101; return SYM; }
1751  YY_BREAK
1752 case 125:
1754 #line 269 "libinterp/corefcn/oct-tex-lexer.ll"
1755 { yylval->sym = 102; return SYM; }
1756  YY_BREAK
1757 
1758 // Generic character.
1759 
1760 case 126:
1761 /* rule 126 can match eol */
1762 #line 276 "libinterp/corefcn/oct-tex-lexer.ll"
1763 case 127:
1764 /* rule 127 can match eol */
1766 #line 276 "libinterp/corefcn/oct-tex-lexer.ll"
1767 {
1768  yylval->ch = yytext[0];
1769  return CH;
1770  }
1771  YY_BREAK
1772 
1773 #if defined (HAVE_PRAGMA_GCC_DIAGNOSTIC)
1774 // Also disable this warning for functions that is generated by flex
1775 // after the pattern rules.
1776 #pragma GCC diagnostic ignored "-Wunused-parameter"
1777 #endif
1778 
1779 case 128:
1781 #line 289 "libinterp/corefcn/oct-tex-lexer.ll"
1782 ECHO;
1783  YY_BREAK
1784 #line 1785 "libinterp/corefcn/oct-tex-lexer.cc"
1785 case YY_STATE_EOF(INITIAL):
1786 case YY_STATE_EOF(NUM_MODE):
1788  yyterminate();
1789 
1790  case YY_END_OF_BUFFER:
1791  {
1792  /* Amount of text matched not including the EOB char. */
1793  int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1794 
1795  /* Undo the effects of YY_DO_BEFORE_ACTION. */
1796  *yy_cp = yyg->yy_hold_char;
1798 
1799  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1800  {
1801  /* We're scanning a new file or input source. It's
1802  * possible that this happened because the user
1803  * just pointed yyin at a new source and called
1804  * octave_tex_lex(). If so, then we have to assure
1805  * consistency between YY_CURRENT_BUFFER and our
1806  * globals. Here is the right place to do so, because
1807  * this is the first action (other than possibly a
1808  * back-up) that will match for the new input source.
1809  */
1810  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1811  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1812  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1813  }
1814 
1815  /* Note that here we test for yy_c_buf_p "<=" to the position
1816  * of the first EOB in the buffer, since yy_c_buf_p will
1817  * already have been incremented past the NUL character
1818  * (since all states make transitions on EOB to the
1819  * end-of-buffer state). Contrast this with the test
1820  * in input().
1821  */
1822  if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1823  { /* This was really a NUL. */
1824  yy_state_type yy_next_state;
1825 
1826  yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1827 
1828  yy_current_state = yy_get_previous_state( yyscanner );
1829 
1830  /* Okay, we're now positioned to make the NUL
1831  * transition. We couldn't have
1832  * yy_get_previous_state() go ahead and do it
1833  * for us because it doesn't know how to deal
1834  * with the possibility of jamming (and we don't
1835  * want to build jamming into it because then it
1836  * will run more slowly).
1837  */
1838 
1839  yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1840 
1841  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1842 
1843  if ( yy_next_state )
1844  {
1845  /* Consume the NUL. */
1846  yy_cp = ++yyg->yy_c_buf_p;
1847  yy_current_state = yy_next_state;
1848  goto yy_match;
1849  }
1850 
1851  else
1852  {
1853  yy_cp = yyg->yy_c_buf_p;
1854  goto yy_find_action;
1855  }
1856  }
1857 
1858  else switch ( yy_get_next_buffer( yyscanner ) )
1859  {
1860  case EOB_ACT_END_OF_FILE:
1861  {
1862  yyg->yy_did_buffer_switch_on_eof = 0;
1863 
1864  if ( octave_tex_wrap(yyscanner ) )
1865  {
1866  /* Note: because we've taken care in
1867  * yy_get_next_buffer() to have set up
1868  * yytext, we can now set up
1869  * yy_c_buf_p so that if some total
1870  * hoser (like flex itself) wants to
1871  * call the scanner after we return the
1872  * YY_NULL, it'll still work - another
1873  * YY_NULL will get returned.
1874  */
1875  yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1876 
1877  yy_act = YY_STATE_EOF(YY_START);
1878  goto do_action;
1879  }
1880 
1881  else
1882  {
1883  if ( ! yyg->yy_did_buffer_switch_on_eof )
1884  YY_NEW_FILE;
1885  }
1886  break;
1887  }
1888 
1889  case EOB_ACT_CONTINUE_SCAN:
1890  yyg->yy_c_buf_p =
1891  yyg->yytext_ptr + yy_amount_of_matched_text;
1892 
1893  yy_current_state = yy_get_previous_state( yyscanner );
1894 
1895  yy_cp = yyg->yy_c_buf_p;
1896  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1897  goto yy_match;
1898 
1899  case EOB_ACT_LAST_MATCH:
1900  yyg->yy_c_buf_p =
1901  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1902 
1903  yy_current_state = yy_get_previous_state( yyscanner );
1904 
1905  yy_cp = yyg->yy_c_buf_p;
1906  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1907  goto yy_find_action;
1908  }
1909  break;
1910  }
1911 
1912  default:
1914  "fatal flex scanner internal error--no action found" );
1915  } /* end of action switch */
1916  } /* end of scanning one token */
1917  } /* end of user's declarations */
1918 } /* end of octave_tex_lex */
1919 
1920 /* yy_get_next_buffer - try to read in a new buffer
1921  *
1922  * Returns a code representing an action:
1923  * EOB_ACT_LAST_MATCH -
1924  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1925  * EOB_ACT_END_OF_FILE - end of file
1926  */
1927 static int yy_get_next_buffer (yyscan_t yyscanner)
1928 {
1929  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1930  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1931  char *source = yyg->yytext_ptr;
1932  yy_size_t number_to_move, i;
1933  int ret_val;
1934 
1935  if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1937  "fatal flex scanner internal error--end of buffer missed" );
1938 
1939  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1940  { /* Don't try to fill the buffer, so this is an EOF. */
1941  if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1942  {
1943  /* We matched a single character, the EOB, so
1944  * treat this as a final EOF.
1945  */
1946  return EOB_ACT_END_OF_FILE;
1947  }
1948 
1949  else
1950  {
1951  /* We matched some text prior to the EOB, first
1952  * process it.
1953  */
1954  return EOB_ACT_LAST_MATCH;
1955  }
1956  }
1957 
1958  /* Try to read more data. */
1959 
1960  /* First move last chars to start of buffer. */
1961  number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
1962 
1963  for ( i = 0; i < number_to_move; ++i )
1964  *(dest++) = *(source++);
1965 
1966  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1967  /* don't do the read, it's not guaranteed to return an EOF,
1968  * just force an EOF
1969  */
1970  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1971 
1972  else
1973  {
1974  int num_to_read =
1975  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1976 
1977  while ( num_to_read <= 0 )
1978  { /* Not enough room in the buffer - grow it. */
1979 
1980  /* just a shorter name for the current buffer */
1981  YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1982 
1983  int yy_c_buf_p_offset =
1984  (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1985 
1986  if ( b->yy_is_our_buffer )
1987  {
1988  int new_size = b->yy_buf_size * 2;
1989 
1990  if ( new_size <= 0 )
1991  b->yy_buf_size += b->yy_buf_size / 8;
1992  else
1993  b->yy_buf_size *= 2;
1994 
1995  b->yy_ch_buf = (char *)
1996  /* Include room in for 2 EOB chars. */
1997  octave_tex_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
1998  }
1999  else
2000  /* Can't grow it, we don't own it. */
2001  b->yy_ch_buf = NULL;
2002 
2003  if ( ! b->yy_ch_buf )
2005  "fatal error - scanner input buffer overflow" );
2006 
2007  yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2008 
2009  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2010  number_to_move - 1;
2011 
2012  }
2013 
2014  if ( num_to_read > YY_READ_BUF_SIZE )
2015  num_to_read = YY_READ_BUF_SIZE;
2016 
2017  /* Read in more data. */
2018  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2019  yyg->yy_n_chars, num_to_read );
2020 
2021  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2022  }
2023 
2024  if ( yyg->yy_n_chars == 0 )
2025  {
2026  if ( number_to_move == YY_MORE_ADJ )
2027  {
2028  ret_val = EOB_ACT_END_OF_FILE;
2029  octave_tex_restart(yyin ,yyscanner);
2030  }
2031 
2032  else
2033  {
2034  ret_val = EOB_ACT_LAST_MATCH;
2035  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2037  }
2038  }
2039 
2040  else
2041  ret_val = EOB_ACT_CONTINUE_SCAN;
2042 
2043  if ((int) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2044  /* Extend the array by 50%, plus the number we really need. */
2045  int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
2046  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) octave_tex_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
2047  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2048  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2049  }
2050 
2051  yyg->yy_n_chars += number_to_move;
2054 
2055  yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2056 
2057  return ret_val;
2058 }
2059 
2060 /* yy_get_previous_state - get the state just before the EOB char was reached */
2061 
2063 {
2064  yy_state_type yy_current_state;
2065  char *yy_cp;
2066  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2067 
2068  yy_current_state = yyg->yy_start;
2069 
2070  for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2071  {
2072  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2073  if ( yy_accept[yy_current_state] )
2074  {
2075  yyg->yy_last_accepting_state = yy_current_state;
2076  yyg->yy_last_accepting_cpos = yy_cp;
2077  }
2078  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2079  {
2080  yy_current_state = (int) yy_def[yy_current_state];
2081  if ( yy_current_state >= 465 )
2082  yy_c = yy_meta[(unsigned int) yy_c];
2083  }
2084  yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2085  }
2086 
2087  return yy_current_state;
2088 }
2089 
2090 /* yy_try_NUL_trans - try to make a transition on the NUL character
2091  *
2092  * synopsis
2093  * next_state = yy_try_NUL_trans( current_state );
2094  */
2095  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
2096 {
2097  int yy_is_jam;
2098  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
2099  char *yy_cp = yyg->yy_c_buf_p;
2100 
2101  YY_CHAR yy_c = 1;
2102  if ( yy_accept[yy_current_state] )
2103  {
2104  yyg->yy_last_accepting_state = yy_current_state;
2105  yyg->yy_last_accepting_cpos = yy_cp;
2106  }
2107  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2108  {
2109  yy_current_state = (int) yy_def[yy_current_state];
2110  if ( yy_current_state >= 465 )
2111  yy_c = yy_meta[(unsigned int) yy_c];
2112  }
2113  yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2114  yy_is_jam = (yy_current_state == 464);
2115 
2116  (void)yyg;
2117  return yy_is_jam ? 0 : yy_current_state;
2118 }
2119 
2120 #ifndef YY_NO_UNPUT
2121 
2122  static void yyunput (int c, char * yy_bp , yyscan_t yyscanner)
2123 {
2124  char *yy_cp;
2125  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2126 
2127  yy_cp = yyg->yy_c_buf_p;
2128 
2129  /* undo effects of setting up yytext */
2130  *yy_cp = yyg->yy_hold_char;
2131 
2132  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2133  { /* need to shift things up to make room */
2134  /* +2 for EOB chars. */
2135  int number_to_move = yyg->yy_n_chars + 2;
2136  char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2137  YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2138  char *source =
2139  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2140 
2141  while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2142  *--dest = *--source;
2143 
2144  yy_cp += (int) (dest - source);
2145  yy_bp += (int) (dest - source);
2146  YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2147  yyg->yy_n_chars = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2148 
2149  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2150  YY_FATAL_ERROR( "flex scanner push-back overflow" );
2151  }
2152 
2153  *--yy_cp = (char) c;
2154 
2155  yyg->yytext_ptr = yy_bp;
2156  yyg->yy_hold_char = *yy_cp;
2157  yyg->yy_c_buf_p = yy_cp;
2158 }
2159 
2160 #endif
2161 
2162 #ifndef YY_NO_INPUT
2163 #ifdef __cplusplus
2164  static int yyinput (yyscan_t yyscanner)
2165 #else
2166  static int input (yyscan_t yyscanner)
2167 #endif
2168 
2169 {
2170  int c;
2171  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2172 
2173  *yyg->yy_c_buf_p = yyg->yy_hold_char;
2174 
2175  if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2176  {
2177  /* yy_c_buf_p now points to the character we want to return.
2178  * If this occurs *before* the EOB characters, then it's a
2179  * valid NUL; if not, then we've hit the end of the buffer.
2180  */
2181  if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2182  /* This was really a NUL. */
2183  *yyg->yy_c_buf_p = '\0';
2184 
2185  else
2186  { /* need more input */
2187  int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2188  ++yyg->yy_c_buf_p;
2189 
2190  switch ( yy_get_next_buffer( yyscanner ) )
2191  {
2192  case EOB_ACT_LAST_MATCH:
2193  /* This happens because yy_g_n_b()
2194  * sees that we've accumulated a
2195  * token and flags that we need to
2196  * try matching the token before
2197  * proceeding. But for input(),
2198  * there's no matching to consider.
2199  * So convert the EOB_ACT_LAST_MATCH
2200  * to EOB_ACT_END_OF_FILE.
2201  */
2202 
2203  /* Reset buffer status. */
2204  octave_tex_restart(yyin ,yyscanner);
2205 
2206  /*FALLTHROUGH*/
2207 
2208  case EOB_ACT_END_OF_FILE:
2209  {
2210  if ( octave_tex_wrap(yyscanner ) )
2211  return 0;
2212 
2213  if ( ! yyg->yy_did_buffer_switch_on_eof )
2214  YY_NEW_FILE;
2215 #ifdef __cplusplus
2216  return yyinput(yyscanner);
2217 #else
2218  return input(yyscanner);
2219 #endif
2220  }
2221 
2222  case EOB_ACT_CONTINUE_SCAN:
2223  yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2224  break;
2225  }
2226  }
2227  }
2228 
2229  c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
2230  *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
2231  yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2232 
2233  return c;
2234 }
2235 #endif /* ifndef YY_NO_INPUT */
2236 
2237 /** Immediately switch to a different input stream.
2238  * @param input_file A readable stream.
2239  * @param yyscanner The scanner object.
2240  * @note This function does not reset the start condition to @c INITIAL .
2241  */
2242  void octave_tex_restart (FILE * input_file , yyscan_t yyscanner)
2243 {
2244  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2245 
2246  if ( ! YY_CURRENT_BUFFER ){
2247  octave_tex_ensure_buffer_stack (yyscanner);
2250  }
2251 
2252  octave_tex__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
2253  octave_tex__load_buffer_state(yyscanner );
2254 }
2255 
2256 /** Switch to a different input buffer.
2257  * @param new_buffer The new input buffer.
2258  * @param yyscanner The scanner object.
2259  */
2260  void octave_tex__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2261 {
2262  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2263 
2264  /* TODO. We should be able to replace this entire function body
2265  * with
2266  * octave_tex_pop_buffer_state();
2267  * octave_tex_push_buffer_state(new_buffer);
2268  */
2269  octave_tex_ensure_buffer_stack (yyscanner);
2270  if ( YY_CURRENT_BUFFER == new_buffer )
2271  return;
2272 
2273  if ( YY_CURRENT_BUFFER )
2274  {
2275  /* Flush out information for old buffer. */
2276  *yyg->yy_c_buf_p = yyg->yy_hold_char;
2277  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2278  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2279  }
2280 
2281  YY_CURRENT_BUFFER_LVALUE = new_buffer;
2282  octave_tex__load_buffer_state(yyscanner );
2283 
2284  /* We don't actually know whether we did this switch during
2285  * EOF (octave_tex_wrap()) processing, but the only time this flag
2286  * is looked at is after octave_tex_wrap() is called, so it's safe
2287  * to go ahead and always set it.
2288  */
2289  yyg->yy_did_buffer_switch_on_eof = 1;
2290 }
2291 
2293 {
2294  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2295  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2296  yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2297  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2298  yyg->yy_hold_char = *yyg->yy_c_buf_p;
2299 }
2300 
2301 /** Allocate and initialize an input buffer state.
2302  * @param file A readable stream.
2303  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2304  * @param yyscanner The scanner object.
2305  * @return the allocated buffer state.
2306  */
2307  YY_BUFFER_STATE octave_tex__create_buffer (FILE * file, int size , yyscan_t yyscanner)
2308 {
2309  YY_BUFFER_STATE b;
2310 
2311  b = (YY_BUFFER_STATE) octave_tex_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2312  if ( ! b )
2313  YY_FATAL_ERROR( "out of dynamic memory in octave_tex__create_buffer()" );
2314 
2315  b->yy_buf_size = (yy_size_t)size;
2316 
2317  /* yy_ch_buf has to be 2 characters longer than the size given because
2318  * we need to put in 2 end-of-buffer characters.
2319  */
2320  b->yy_ch_buf = (char *) octave_tex_alloc(b->yy_buf_size + 2 ,yyscanner );
2321  if ( ! b->yy_ch_buf )
2322  YY_FATAL_ERROR( "out of dynamic memory in octave_tex__create_buffer()" );
2323 
2324  b->yy_is_our_buffer = 1;
2325 
2326  octave_tex__init_buffer(b,file ,yyscanner);
2327 
2328  return b;
2329 }
2330 
2331 /** Destroy the buffer.
2332  * @param b a buffer created with octave_tex__create_buffer()
2333  * @param yyscanner The scanner object.
2334  */
2335  void octave_tex__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2336 {
2337  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2338 
2339  if ( ! b )
2340  return;
2341 
2342  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2344 
2345  if ( b->yy_is_our_buffer )
2346  octave_tex_free((void *) b->yy_ch_buf ,yyscanner );
2347 
2348  octave_tex_free((void *) b ,yyscanner );
2349 }
2350 
2351 /* Initializes or reinitializes a buffer.
2352  * This function is sometimes called more than once on the same buffer,
2353  * such as during a octave_tex_restart() or at EOF.
2354  */
2355  static void octave_tex__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2356 
2357 {
2358  int oerrno = errno;
2359  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2360 
2361  octave_tex__flush_buffer(b ,yyscanner);
2362 
2363  b->yy_input_file = file;
2364  b->yy_fill_buffer = 1;
2365 
2366  /* If b is the current buffer, then octave_tex__init_buffer was _probably_
2367  * called from octave_tex_restart() or through yy_get_next_buffer.
2368  * In that case, we don't want to reset the lineno or column.
2369  */
2370  if (b != YY_CURRENT_BUFFER){
2371  b->yy_bs_lineno = 1;
2372  b->yy_bs_column = 0;
2373  }
2374 
2375  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2376 
2377  errno = oerrno;
2378 }
2379 
2380 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2381  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2382  * @param yyscanner The scanner object.
2383  */
2384  void octave_tex__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2385 {
2386  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2387  if ( ! b )
2388  return;
2389 
2390  b->yy_n_chars = 0;
2391 
2392  /* We always need two end-of-buffer characters. The first causes
2393  * a transition to the end-of-buffer state. The second causes
2394  * a jam in that state.
2395  */
2398 
2399  b->yy_buf_pos = &b->yy_ch_buf[0];
2400 
2401  b->yy_at_bol = 1;
2403 
2404  if ( b == YY_CURRENT_BUFFER )
2405  octave_tex__load_buffer_state(yyscanner );
2406 }
2407 
2408 /** Pushes the new state onto the stack. The new state becomes
2409  * the current state. This function will allocate the stack
2410  * if necessary.
2411  * @param new_buffer The new state.
2412  * @param yyscanner The scanner object.
2413  */
2414 void octave_tex_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2415 {
2416  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2417  if (new_buffer == NULL)
2418  return;
2419 
2420  octave_tex_ensure_buffer_stack(yyscanner);
2421 
2422  /* This block is copied from octave_tex__switch_to_buffer. */
2423  if ( YY_CURRENT_BUFFER )
2424  {
2425  /* Flush out information for old buffer. */
2426  *yyg->yy_c_buf_p = yyg->yy_hold_char;
2427  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2428  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2429  }
2430 
2431  /* Only push if top exists. Otherwise, replace top. */
2432  if (YY_CURRENT_BUFFER)
2433  yyg->yy_buffer_stack_top++;
2434  YY_CURRENT_BUFFER_LVALUE = new_buffer;
2435 
2436  /* copied from octave_tex__switch_to_buffer. */
2437  octave_tex__load_buffer_state(yyscanner );
2438  yyg->yy_did_buffer_switch_on_eof = 1;
2439 }
2440 
2441 /** Removes and deletes the top of the stack, if present.
2442  * The next element becomes the new top.
2443  * @param yyscanner The scanner object.
2444  */
2446 {
2447  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2448  if (!YY_CURRENT_BUFFER)
2449  return;
2450 
2452  YY_CURRENT_BUFFER_LVALUE = NULL;
2453  if (yyg->yy_buffer_stack_top > 0)
2454  --yyg->yy_buffer_stack_top;
2455 
2456  if (YY_CURRENT_BUFFER) {
2457  octave_tex__load_buffer_state(yyscanner );
2458  yyg->yy_did_buffer_switch_on_eof = 1;
2459  }
2460 }
2461 
2462 /* Allocates the stack if it does not exist.
2463  * Guarantees space for at least one push.
2464  */
2466 {
2467  int num_to_alloc;
2468  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2469 
2470  if (!yyg->yy_buffer_stack) {
2471 
2472  /* First allocation is just for 2 elements, since we don't know if this
2473  * scanner will even need a stack. We use 2 instead of 1 to avoid an
2474  * immediate realloc on the next call.
2475  */
2476  num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2478  (num_to_alloc * sizeof(struct yy_buffer_state*)
2479  , yyscanner);
2480  if ( ! yyg->yy_buffer_stack )
2481  YY_FATAL_ERROR( "out of dynamic memory in octave_tex_ensure_buffer_stack()" );
2482 
2483  memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2484 
2485  yyg->yy_buffer_stack_max = num_to_alloc;
2486  yyg->yy_buffer_stack_top = 0;
2487  return;
2488  }
2489 
2490  if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2491 
2492  /* Increase the buffer to prepare for a possible push. */
2493  yy_size_t grow_size = 8 /* arbitrary grow size */;
2494 
2495  num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2497  (yyg->yy_buffer_stack,
2498  num_to_alloc * sizeof(struct yy_buffer_state*)
2499  , yyscanner);
2500  if ( ! yyg->yy_buffer_stack )
2501  YY_FATAL_ERROR( "out of dynamic memory in octave_tex_ensure_buffer_stack()" );
2502 
2503  /* zero only the new slots.*/
2504  memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2505  yyg->yy_buffer_stack_max = num_to_alloc;
2506  }
2507 }
2508 
2509 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2510  * @param base the character buffer
2511  * @param size the size in bytes of the character buffer
2512  * @param yyscanner The scanner object.
2513  * @return the newly allocated buffer state object.
2514  */
2515 YY_BUFFER_STATE octave_tex__scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
2516 {
2517  YY_BUFFER_STATE b;
2518 
2519  if ( size < 2 ||
2520  base[size-2] != YY_END_OF_BUFFER_CHAR ||
2521  base[size-1] != YY_END_OF_BUFFER_CHAR )
2522  /* They forgot to leave room for the EOB's. */
2523  return NULL;
2524 
2525  b = (YY_BUFFER_STATE) octave_tex_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2526  if ( ! b )
2527  YY_FATAL_ERROR( "out of dynamic memory in octave_tex__scan_buffer()" );
2528 
2529  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2530  b->yy_buf_pos = b->yy_ch_buf = base;
2531  b->yy_is_our_buffer = 0;
2532  b->yy_input_file = NULL;
2533  b->yy_n_chars = b->yy_buf_size;
2534  b->yy_is_interactive = 0;
2535  b->yy_at_bol = 1;
2536  b->yy_fill_buffer = 0;
2538 
2539  octave_tex__switch_to_buffer(b ,yyscanner );
2540 
2541  return b;
2542 }
2543 
2544 /** Setup the input buffer state to scan a string. The next call to octave_tex_lex() will
2545  * scan from a @e copy of @a str.
2546  * @param yystr a NUL-terminated string to scan
2547  * @param yyscanner The scanner object.
2548  * @return the newly allocated buffer state object.
2549  * @note If you want to scan bytes that may contain NUL values, then use
2550  * octave_tex__scan_bytes() instead.
2551  */
2552 YY_BUFFER_STATE octave_tex__scan_string (yyconst char * yystr , yyscan_t yyscanner)
2553 {
2554 
2555  return octave_tex__scan_bytes(yystr,(int) strlen(yystr) ,yyscanner);
2556 }
2557 
2558 /** Setup the input buffer state to scan the given bytes. The next call to octave_tex_lex() will
2559  * scan from a @e copy of @a bytes.
2560  * @param yybytes the byte buffer to scan
2561  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2562  * @param yyscanner The scanner object.
2563  * @return the newly allocated buffer state object.
2564  */
2565 YY_BUFFER_STATE octave_tex__scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
2566 {
2567  YY_BUFFER_STATE b;
2568  char *buf;
2569  yy_size_t n;
2570  yy_size_t i;
2571 
2572  /* Get memory for full buffer, including space for trailing EOB's. */
2573  n = (yy_size_t) _yybytes_len + 2;
2574  buf = (char *) octave_tex_alloc(n ,yyscanner );
2575  if ( ! buf )
2576  YY_FATAL_ERROR( "out of dynamic memory in octave_tex__scan_bytes()" );
2577 
2578  for ( i = 0; i < _yybytes_len; ++i )
2579  buf[i] = yybytes[i];
2580 
2581  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2582 
2583  b = octave_tex__scan_buffer(buf,n ,yyscanner);
2584  if ( ! b )
2585  YY_FATAL_ERROR( "bad buffer in octave_tex__scan_bytes()" );
2586 
2587  /* It's okay to grow etc. this buffer, and we should throw it
2588  * away when we're done.
2589  */
2590  b->yy_is_our_buffer = 1;
2591 
2592  return b;
2593 }
2594 
2595 #ifndef YY_EXIT_FAILURE
2596 #define YY_EXIT_FAILURE 2
2597 #endif
2598 
2599 static void yynoreturn yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
2600 {
2601  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2602  (void)yyg;
2603  (void) fprintf( stderr, "%s\n", msg );
2604  exit( YY_EXIT_FAILURE );
2605 }
2606 
2607 /* Redefine yyless() so it works in section 3 code. */
2608 
2609 #undef yyless
2610 #define yyless(n) \
2611  do \
2612  { \
2613  /* Undo effects of setting up yytext. */ \
2614  int yyless_macro_arg = (n); \
2615  YY_LESS_LINENO(yyless_macro_arg);\
2616  yytext[yyleng] = yyg->yy_hold_char; \
2617  yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2618  yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2619  *yyg->yy_c_buf_p = '\0'; \
2620  yyleng = yyless_macro_arg; \
2621  } \
2622  while ( 0 )
2623 
2624 /* Accessor methods (get/set functions) to struct members. */
2625 
2626 /** Get the user-defined data for this scanner.
2627  * @param yyscanner The scanner object.
2628  */
2630 {
2631  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2632  return yyextra;
2633 }
2634 
2635 /** Get the current line number.
2636  * @param yyscanner The scanner object.
2637  */
2639 {
2640  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2641 
2642  if (! YY_CURRENT_BUFFER)
2643  return 0;
2644 
2645  return yylineno;
2646 }
2647 
2648 /** Get the current column number.
2649  * @param yyscanner The scanner object.
2650  */
2652 {
2653  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2654 
2655  if (! YY_CURRENT_BUFFER)
2656  return 0;
2657 
2658  return yycolumn;
2659 }
2660 
2661 /** Get the input stream.
2662  * @param yyscanner The scanner object.
2663  */
2664 FILE *octave_tex_get_in (yyscan_t yyscanner)
2665 {
2666  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2667  return yyin;
2668 }
2669 
2670 /** Get the output stream.
2671  * @param yyscanner The scanner object.
2672  */
2673 FILE *octave_tex_get_out (yyscan_t yyscanner)
2674 {
2675  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2676  return yyout;
2677 }
2678 
2679 /** Get the length of the current token.
2680  * @param yyscanner The scanner object.
2681  */
2683 {
2684  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2685  return yyleng;
2686 }
2687 
2688 /** Get the current token.
2689  * @param yyscanner The scanner object.
2690  */
2691 
2693 {
2694  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2695  return yytext;
2696 }
2697 
2698 /** Set the user-defined data. This data is never touched by the scanner.
2699  * @param user_defined The data to be associated with this scanner.
2700  * @param yyscanner The scanner object.
2701  */
2702 void octave_tex_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2703 {
2704  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2705  yyextra = user_defined ;
2706 }
2707 
2708 /** Set the current line number.
2709  * @param _line_number line number
2710  * @param yyscanner The scanner object.
2711  */
2712 void octave_tex_set_lineno (int _line_number , yyscan_t yyscanner)
2713 {
2714  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2715 
2716  /* lineno is only valid if an input buffer exists. */
2717  if (! YY_CURRENT_BUFFER )
2718  YY_FATAL_ERROR( "octave_tex_set_lineno called with no buffer" );
2719 
2720  yylineno = _line_number;
2721 }
2722 
2723 /** Set the current column.
2724  * @param _column_no column number
2725  * @param yyscanner The scanner object.
2726  */
2727 void octave_tex_set_column (int _column_no , yyscan_t yyscanner)
2728 {
2729  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2730 
2731  /* column is only valid if an input buffer exists. */
2732  if (! YY_CURRENT_BUFFER )
2733  YY_FATAL_ERROR( "octave_tex_set_column called with no buffer" );
2734 
2735  yycolumn = _column_no;
2736 }
2737 
2738 /** Set the input stream. This does not discard the current
2739  * input buffer.
2740  * @param _in_str A readable stream.
2741  * @param yyscanner The scanner object.
2742  * @see octave_tex__switch_to_buffer
2743  */
2744 void octave_tex_set_in (FILE * _in_str , yyscan_t yyscanner)
2745 {
2746  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2747  yyin = _in_str ;
2748 }
2749 
2750 void octave_tex_set_out (FILE * _out_str , yyscan_t yyscanner)
2751 {
2752  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2753  yyout = _out_str ;
2754 }
2755 
2757 {
2758  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2759  return yy_flex_debug;
2760 }
2761 
2762 void octave_tex_set_debug (int _bdebug , yyscan_t yyscanner)
2763 {
2764  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2765  yy_flex_debug = _bdebug ;
2766 }
2767 
2768 /* Accessor methods for yylval and yylloc */
2769 
2771 {
2772  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2773  return yylval;
2774 }
2775 
2776 void octave_tex_set_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
2777 {
2778  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2779  yylval = yylval_param;
2780 }
2781 
2782 /* User-visible API */
2783 
2784 /* octave_tex_lex_init is special because it creates the scanner itself, so it is
2785  * the ONLY reentrant function that doesn't take the scanner as the last argument.
2786  * That's why we explicitly handle the declaration, instead of using our macros.
2787  */
2788 
2789 int octave_tex_lex_init(yyscan_t* ptr_yy_globals)
2790 
2791 {
2792  if (ptr_yy_globals == NULL){
2793  errno = EINVAL;
2794  return 1;
2795  }
2796 
2797  *ptr_yy_globals = (yyscan_t) octave_tex_alloc ( sizeof( struct yyguts_t ), NULL );
2798 
2799  if (*ptr_yy_globals == NULL){
2800  errno = ENOMEM;
2801  return 1;
2802  }
2803 
2804  /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
2805  memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2806 
2807  return yy_init_globals ( *ptr_yy_globals );
2808 }
2809 
2810 /* octave_tex_lex_init_extra has the same functionality as octave_tex_lex_init, but follows the
2811  * convention of taking the scanner as the last argument. Note however, that
2812  * this is a *pointer* to a scanner, as it will be allocated by this call (and
2813  * is the reason, too, why this function also must handle its own declaration).
2814  * The user defined value in the first argument will be available to octave_tex_alloc in
2815  * the yyextra field.
2816  */
2817 
2818 int octave_tex_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
2819 
2820 {
2821  struct yyguts_t dummy_yyguts;
2822 
2823  octave_tex_set_extra (yy_user_defined, &dummy_yyguts);
2824 
2825  if (ptr_yy_globals == NULL){
2826  errno = EINVAL;
2827  return 1;
2828  }
2829 
2830  *ptr_yy_globals = (yyscan_t) octave_tex_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
2831 
2832  if (*ptr_yy_globals == NULL){
2833  errno = ENOMEM;
2834  return 1;
2835  }
2836 
2837  /* By setting to 0xAA, we expose bugs in
2838  yy_init_globals. Leave at 0x00 for releases. */
2839  memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2840 
2841  octave_tex_set_extra (yy_user_defined, *ptr_yy_globals);
2842 
2843  return yy_init_globals ( *ptr_yy_globals );
2844 }
2845 
2846 static int yy_init_globals (yyscan_t yyscanner)
2847 {
2848  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2849  /* Initialization is the same as for the non-reentrant scanner.
2850  * This function is called from octave_tex_lex_destroy(), so don't allocate here.
2851  */
2852 
2853  yyg->yy_buffer_stack = NULL;
2854  yyg->yy_buffer_stack_top = 0;
2855  yyg->yy_buffer_stack_max = 0;
2856  yyg->yy_c_buf_p = NULL;
2857  yyg->yy_init = 0;
2858  yyg->yy_start = 0;
2859 
2860  yyg->yy_start_stack_ptr = 0;
2861  yyg->yy_start_stack_depth = 0;
2862  yyg->yy_start_stack = NULL;
2863 
2864 /* Defined in main.c */
2865 #ifdef YY_STDINIT
2866  yyin = stdin;
2867  yyout = stdout;
2868 #else
2869  yyin = NULL;
2870  yyout = NULL;
2871 #endif
2872 
2873  /* For future reference: Set errno on error, since we are called by
2874  * octave_tex_lex_init()
2875  */
2876  return 0;
2877 }
2878 
2879 /* octave_tex_lex_destroy is for both reentrant and non-reentrant scanners. */
2881 {
2882  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2883 
2884  /* Pop the buffer stack, destroying each element. */
2885  while(YY_CURRENT_BUFFER){
2887  YY_CURRENT_BUFFER_LVALUE = NULL;
2888  octave_tex_pop_buffer_state(yyscanner);
2889  }
2890 
2891  /* Destroy the stack itself. */
2892  octave_tex_free(yyg->yy_buffer_stack ,yyscanner);
2893  yyg->yy_buffer_stack = NULL;
2894 
2895  /* Destroy the start condition stack. */
2896  octave_tex_free(yyg->yy_start_stack ,yyscanner );
2897  yyg->yy_start_stack = NULL;
2898 
2899  /* Reset the globals. This is important in a non-reentrant scanner so the next time
2900  * octave_tex_lex() is called, initialization will occur. */
2901  yy_init_globals( yyscanner);
2902 
2903  /* Destroy the main struct (reentrant only). */
2904  octave_tex_free ( yyscanner , yyscanner );
2905  yyscanner = NULL;
2906  return 0;
2907 }
2908 
2909 /*
2910  * Internal utility routines.
2911  */
2912 
2913 #ifndef yytext_ptr
2914 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
2915 {
2916  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2917  (void)yyg;
2918 
2919  int i;
2920  for ( i = 0; i < n; ++i )
2921  s1[i] = s2[i];
2922 }
2923 #endif
2924 
2925 #ifdef YY_NEED_STRLEN
2926 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
2927 {
2928  int n;
2929  for ( n = 0; s[n]; ++n )
2930  ;
2931 
2932  return n;
2933 }
2934 #endif
2935 
2936 #define YYTABLES_NAME "yytables"
2937 
2938 #line 289 "libinterp/corefcn/oct-tex-lexer.ll"
2939 
2940 
2941 
2942 #if defined (HAVE_PRAGMA_GCC_DIAGNOSTIC)
2943 // Restore prevailing warning state for remainder of the file.
2944 #pragma GCC diagnostic pop
2945 #endif
2946 
2947 void *
2949 {
2950  return malloc (size);
2951 }
2952 
2953 void *
2955 {
2956  return realloc (ptr, size);
2957 }
2958 
2959 void
2961 {
2962  free (ptr);
2963 }
2964 
2965 bool
2967 {
2968  if (! scanner)
2970 
2971  if (scanner)
2972  {
2973  if (buffer_state)
2974  {
2975  octave_tex__delete_buffer (reinterpret_cast<YY_BUFFER_STATE> (buffer_state),
2976  scanner);
2977  buffer_state = 0;
2978  }
2979 
2980  buffer_state = octave_tex__scan_bytes (s.data (), s.length (), scanner);
2981  }
2982 
2983  return (scanner && buffer_state);
2984 }
2985 
2986 void
2988 {
2989  if (buffer_state)
2990  {
2991  octave_tex__delete_buffer (reinterpret_cast<YY_BUFFER_STATE> (buffer_state),
2992  scanner);
2993  buffer_state = 0;
2994  }
2995 
2996  if (scanner)
2997  {
2999  scanner = 0;
3000  }
3001 }
3002 
static const flex_uint16_t yy_nxt[533]
#define YY_CURRENT_BUFFER_LVALUE
void octave_tex_pop_buffer_state(yyscan_t yyscanner)
Removes and deletes the top of the stack, if present.
unsigned short int flex_uint16_t
unsigned char flex_uint8_t
static const YY_CHAR yy_meta[50]
size_t yy_buffer_stack_top
index of top of stack.
Definition: lex.cc:1057
For example cd octave end example noindent changes the current working directory to file
Definition: dirfns.cc:120
#define YY_BUFFER_EOF_PENDING
static void octave_tex__init_buffer(YY_BUFFER_STATE b, FILE *file, yyscan_t yyscanner)
int yy_start_stack_depth
Definition: lex.cc:1068
#define YY_DECL
int octave_tex_get_lineno(yyscan_t yyscanner)
Get the current line number.
#define yynoreturn
#define YY_RULE_SETUP
unsigned int flex_uint32_t
bool init_lexer(const std::string &s)
static const flex_int16_t yy_def[468]
size_t yy_buffer_stack_top
index of top of stack.
void octave_tex_push_buffer_state(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Pushes the new state onto the stack.
#define YY_NEW_FILE
#define YY_BUF_SIZE
#define YY_STATE_EOF(state)
static const flex_uint16_t yy_base[468]
static const flex_int16_t yy_chk[533]
void octave_tex_set_debug(int debug_flag, yyscan_t yyscanner)
void octave_tex__flush_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Discard all buffered characters.
int octave_tex_lex_init(yyscan_t *scanner)
void * buffer_state
Definition: txt-eng.h:437
short int flex_int16_t
s2
Definition: sub2ind.cc:107
void * scanner
Definition: txt-eng.h:435
void * octave_tex_get_extra(yyscan_t yyscanner)
Get the user-defined data for this scanner.
static void octave_tex__load_buffer_state(yyscan_t yyscanner)
char yy_hold_char
Definition: lex.cc:1060
#define isatty
OCTAVE_TEX_STYPE * yylval_r
#define YY_BUFFER_NORMAL
int yy_bs_lineno
The line count.
int yy_state_type
#define yycolumn
static yy_state_type yy_get_previous_state(yyscan_t yyscanner)
char * yy_c_buf_p
Definition: lex.cc:1063
FILE * octave_tex_get_in(yyscan_t yyscanner)
Get the input stream.
int * yy_start_stack
Definition: lex.cc:1069
size_t yy_buffer_stack_max
capacity of stack.
Definition: lex.cc:1058
YY_BUFFER_STATE octave_tex__scan_buffer(char *base, yy_size_t size, yyscan_t yyscanner)
Setup the input buffer state to scan directly from a user-specified character buffer.
#define YY_START
#define MAYBE_NUM_MODE
s
Definition: file-io.cc:2682
int octave_tex_lex_init_extra(void *user_defined, yyscan_t *scanner)
static void yy_fatal_error(const char *msg, yyscan_t yyscanner)
void octave_tex_free(void *, yyscan_t yyscanner)
int flex_int32_t
static void octave_tex_ensure_buffer_stack(yyscan_t yyscanner)
size_t yy_size_t
YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
Definition: lex.cc:1059
int octave_tex_get_debug(yyscan_t yyscanner)
void octave_tex_set_column(int _column_no, yyscan_t yyscanner)
Set the current column.
#define END
#define EOB_ACT_END_OF_FILE
#define YY_RESTORE_YY_MORE_OFFSET
char * octave_tex_get_text(yyscan_t yyscanner)
Get the current token.
#define YY_SC_TO_UI(c)
#define YY_BUFFER_NEW
int yy_did_buffer_switch_on_eof
Definition: lex.cc:1066
char * yy_last_accepting_cpos
Definition: lex.cc:1071
int yy_bs_column
The column count.
#define YY_INPUT(buf, result, max_size)
FILE * yyin_r
Definition: lex.cc:1056
#define EOB_ACT_LAST_MATCH
struct yy_buffer_state * YY_BUFFER_STATE
static void yyunput(int c, char *buf_ptr, yyscan_t yyscanner)
if(nargin< 2) print_usage()
Definition: cellfun.cc:405
#define YY_MORE_ADJ
#define NUM_MODE
#define INITIAL
#define NUM
int yy_start_stack_ptr
Definition: lex.cc:1067
int yy_n_chars
Definition: lex.cc:1061
static int yy_init_globals(yyscan_t yyscanner)
YY_BUFFER_STATE octave_tex__scan_bytes(const char *bytes, int len, yyscan_t yyscanner)
Setup the input buffer state to scan the given bytes.
#define YY_END_OF_BUFFER_CHAR
unsigned char YY_CHAR
void octave_tex_set_out(FILE *_out_str, yyscan_t yyscanner)
int yy_start
Definition: lex.cc:1065
int yy_init
Definition: lex.cc:1064
void octave_tex_set_lineno(int _line_number, yyscan_t yyscanner)
Set the current line number.
the sparsity preserving column transformation such that that defines the pivoting threshold can be given in which case it defines the c
Definition: lu.cc:138
yy_state_type yy_last_accepting_state
Definition: lex.cc:1070
T::size_type strlen(const typename T::value_type *str)
Definition: oct-string.cc:75
void octave_tex_restart(FILE *input_file, yyscan_t yyscanner)
Immediately switch to a different input stream.
YY_BUFFER_STATE octave_tex__scan_string(const char *yy_str, yyscan_t yyscanner)
Setup the input buffer state to scan a string.
#define YY_CURRENT_BUFFER
#define YY_DO_BEFORE_ACTION
static const YY_CHAR yy_ec[256]
#define ECHO
yy_state_type yy_last_accepting_state
#define yylineno
#define BEGIN
void * octave_tex_alloc(yy_size_t, yyscan_t yyscanner)
flex_int32_t yy_verify
void free(void *)
=val(i)}if ode{val(i)}occurs in table i
Definition: lookup.cc:239
void octave_tex__delete_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Destroy the buffer.
#define YY_BREAK
#define YYSTYPE
#define YY_FATAL_ERROR(msg)
int octave_tex_lex(OCTAVE_TEX_STYPE *yylval_param, yyscan_t yyscanner)
The main scanner function which does all the work.
#define yyless(n)
static const flex_int16_t yy_accept[465]
#define YY_READ_BUF_SIZE
#define yylval
#define scanner
signed char flex_int8_t
#define yytext
#define yyterminate()
static int yy_get_next_buffer(yyscan_t yyscanner)
OCTAVE_TEX_STYPE * octave_tex_get_lval(yyscan_t yyscanner)
YY_BUFFER_STATE octave_tex__create_buffer(FILE *file, int size, yyscan_t yyscanner)
Allocate and initialize an input buffer state.
void octave_tex_set_extra(void *user_defined, yyscan_t yyscanner)
Set the user-defined data.
b
Definition: cellfun.cc:398
flex_int32_t yy_nxt
int octave_tex_get_leng(yyscan_t yyscanner)
Get the length of the current token.
#define yy_flex_debug
#define yyleng
int octave_tex_get_column(yyscan_t yyscanner)
Get the current column number.
FILE * octave_tex_get_out(yyscan_t yyscanner)
Get the output stream.
void octave_tex_set_lval(OCTAVE_TEX_STYPE *yylval_param, yyscan_t yyscanner)
static int input(yyscan_t yyscanner)
#define yyout
void destroy_lexer(void)
OCTAVE_EXPORT octave_value_list any number nd example oindent prints the prompt xample Pick a any number!nd example oindent and waits for the user to enter a value The string entered by the user is evaluated as an so it may be a literal a variable or any other valid Octave code The number of return their size
Definition: input.cc:871
#define EOB_ACT_CONTINUE_SCAN
void * malloc(size_t)
#define yyextra
#define YY_EXTRA_TYPE
#define YY_EXIT_FAILURE
#define yyin
void * octave_tex_realloc(void *, yy_size_t, yyscan_t yyscanner)
void * yyscan_t
YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
If this string is the system will ring the terminal sometimes it is useful to be able to print the original representation of the string
Definition: utils.cc:854
int octave_tex_lex_destroy(yyscan_t yyscanner)
size_t yy_buffer_stack_max
capacity of stack.
#define yyconst
void octave_tex_set_in(FILE *_in_str, yyscan_t yyscanner)
Set the input stream.
static yy_state_type yy_try_NUL_trans(yy_state_type current_state, yyscan_t yyscanner)
#define octave_tex_wrap(yyscanner)
#define YY_END_OF_BUFFER
void octave_tex__switch_to_buffer(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Switch to a different input buffer.