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