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