1 /* A Bison parser, made by GNU Bison 3.7.5.  */
2 
3 /* Bison interface for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6    Inc.
7 
8    This program is free software: you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation, either version 3 of the License, or
11    (at your option) any later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20 
21 /* As a special exception, you may create a larger work that contains
22    part or all of the Bison parser skeleton and distribute that work
23    under terms of your choice, so long as that work isn't itself a
24    parser generator using the skeleton or a modified version thereof
25    as a parser skeleton.  Alternatively, if you modify or redistribute
26    the parser skeleton itself, you may (at your option) remove this
27    special exception, which will cause the skeleton and the resulting
28    Bison output files to be licensed under the GNU General Public
29    License without this special exception.
30 
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
33 
34 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
35    especially those whose name start with YY_ or yy_.  They are
36    private implementation details that can be changed or removed.  */
37 
38 #ifndef YY_OCTAVE_TEX_LIBINTERP_COREFCN_OCT_TEX_PARSER_H_INCLUDED
39 # define YY_OCTAVE_TEX_LIBINTERP_COREFCN_OCT_TEX_PARSER_H_INCLUDED
40 /* Debug traces.  */
41 #ifndef OCTAVE_TEX_DEBUG
42 # if defined YYDEBUG
43 #if YYDEBUG
44 #   define OCTAVE_TEX_DEBUG 1
45 #  else
46 #   define OCTAVE_TEX_DEBUG 0
47 #  endif
48 # else /* ! defined YYDEBUG */
49 #  define OCTAVE_TEX_DEBUG 0
50 # endif /* ! defined YYDEBUG */
51 #endif  /* ! defined OCTAVE_TEX_DEBUG */
52 #if OCTAVE_TEX_DEBUG
53 extern int octave_tex_debug;
54 #endif
55 /* "%code requires" blocks.  */
56 #line 62 "../libinterp/corefcn/oct-tex-parser.yy"
57 #include <string>
58 
59 #line 60 "libinterp/corefcn/oct-tex-parser.h"
60 
61 /* Token kinds.  */
62 #ifndef OCTAVE_TEX_TOKENTYPE
63 # define OCTAVE_TEX_TOKENTYPE
64   enum octave_tex_tokentype
65   {
66     OCTAVE_TEX_EMPTY = -2,
67     OCTAVE_TEX_EOF = 0,            /* "end of file"  */
68     OCTAVE_TEX_error = 256,        /* error  */
69     OCTAVE_TEX_UNDEF = 257,        /* "invalid token"  */
70     BF = 258,                      /* BF  */
71     IT = 259,                      /* IT  */
72     SL = 260,                      /* SL  */
73     RM = 261,                      /* RM  */
74     FONTNAME = 262,                /* FONTNAME  */
75     FONTSIZE = 263,                /* FONTSIZE  */
76     COLOR = 264,                   /* COLOR  */
77     COLOR_RGB = 265,               /* COLOR_RGB  */
78     START = 266,                   /* START  */
79     END = 267,                     /* END  */
80     SUPER = 268,                   /* SUPER  */
81     SUB = 269,                     /* SUB  */
82     CH = 270,                      /* CH  */
83     NUM = 271,                     /* NUM  */
84     SYM = 272,                     /* SYM  */
85     SCRIPT = 273,                  /* SCRIPT  */
86     STR = 274                      /* STR  */
87   };
88   typedef enum octave_tex_tokentype octave_tex_token_kind_t;
89 #endif
90 /* Token kinds.  */
91 #define OCTAVE_TEX_EMPTY -2
92 #define OCTAVE_TEX_EOF 0
93 #define OCTAVE_TEX_error 256
94 #define OCTAVE_TEX_UNDEF 257
95 #define BF 258
96 #define IT 259
97 #define SL 260
98 #define RM 261
99 #define FONTNAME 262
100 #define FONTSIZE 263
101 #define COLOR 264
102 #define COLOR_RGB 265
103 #define START 266
104 #define END 267
105 #define SUPER 268
106 #define SUB 269
107 #define CH 270
108 #define NUM 271
109 #define SYM 272
110 #define SCRIPT 273
111 #define STR 274
112 
113 /* Value type.  */
114 #if ! defined OCTAVE_TEX_STYPE && ! defined OCTAVE_TEX_STYPE_IS_DECLARED
115 union OCTAVE_TEX_STYPE
116 {
117 #line 65 "../libinterp/corefcn/oct-tex-parser.yy"
118 
119   // Leaf symbols produced by the scanner.
120   char ch;
121   double num;
122   int sym;
123 
124   // Used for string buffering.
125   std::string *str;
126 
127   // Objects produced by the parser.
128   octave::text_element *e_base;
129   octave::text_element_list *e_list;
130 
131 #line 132 "libinterp/corefcn/oct-tex-parser.h"
132 
133 };
134 typedef union OCTAVE_TEX_STYPE OCTAVE_TEX_STYPE;
135 # define OCTAVE_TEX_STYPE_IS_TRIVIAL 1
136 # define OCTAVE_TEX_STYPE_IS_DECLARED 1
137 #endif
138 
139 
140 
141 int octave_tex_parse (octave::text_parser_tex& parser);
142 
143 #endif /* !YY_OCTAVE_TEX_LIBINTERP_COREFCN_OCT_TEX_PARSER_H_INCLUDED  */
144