From 437bca524595d1007f37988e862db8bfeff329b0 Mon Sep 17 00:00:00 2001 From: marha Date: Wed, 29 Jul 2009 09:17:47 +0000 Subject: Added mhmake GNU make compatible (with extensions) make utility. --- tools/mhmake/src/bison.h | 252 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 tools/mhmake/src/bison.h (limited to 'tools/mhmake/src/bison.h') diff --git a/tools/mhmake/src/bison.h b/tools/mhmake/src/bison.h new file mode 100644 index 000000000..8bec41080 --- /dev/null +++ b/tools/mhmake/src/bison.h @@ -0,0 +1,252 @@ +/* This file is part of mhmake. + * + * Copyright (C) 2001-2009 Marc Haesen + * + * Mhmake is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Mhmake is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Mhmake. If not, see . +*/ + +/* $Rev$ */ + +/* before anything */ +#ifdef c_plusplus +#ifndef __cplusplus +#define __cplusplus +#endif +#endif +#ifdef __cplusplus +#ifndef YY_USE_CLASS +#define YY_USE_CLASS +#endif +#else +#endif +#include +$ /* %{ and %header{ and %union, during decl */ +#ifndef YY_@_COMPATIBILITY +#ifndef YY_USE_CLASS +#define YY_@_COMPATIBILITY 1 +#else +#define YY_@_COMPATIBILITY 0 +#endif +#endif + +#if YY_@_COMPATIBILITY != 0 +/* backward compatibility */ +#ifdef YYLTYPE +#ifndef YY_@_LTYPE +#define YY_@_LTYPE YYLTYPE +/* WARNING obsolete !!! user defined YYLTYPE not reported into generated header */ +/* use %define LTYPE */ +#endif +#endif +#ifdef YYSTYPE +#ifndef YY_@_STYPE +#define YY_@_STYPE YYSTYPE +/* WARNING obsolete !!! user defined YYSTYPE not reported into generated header */ +/* use %define STYPE */ +#endif +#endif +#ifdef YYDEBUG +#ifndef YY_@_DEBUG +#define YY_@_DEBUG YYDEBUG +/* WARNING obsolete !!! user defined YYDEBUG not reported into generated header */ +/* use %define DEBUG */ +#endif +#endif +#ifdef YY_@_STYPE +#ifndef yystype +#define yystype YY_@_STYPE +#endif +#endif +/* use goto to be compatible */ +#ifndef YY_@_USE_GOTO +#define YY_@_USE_GOTO 1 +#endif +#endif + +/* use no goto to be clean in C++ */ +#ifndef YY_@_USE_GOTO +#define YY_@_USE_GOTO 0 +#endif + +#ifndef YY_@_PURE +$/* YY_@_PURE */ +#endif +$/* prefix */ +#ifndef YY_@_DEBUG +$/* YY_@_DEBUG */ +#endif +#ifndef YY_@_LSP_NEEDED +$ /* YY_@_LSP_NEEDED*/ +#endif +/* DEFAULT LTYPE*/ +#ifdef YY_@_LSP_NEEDED +#ifndef YY_@_LTYPE +typedef + struct yyltype + { + int timestamp; + int first_line; + int first_column; + int last_line; + int last_column; + char *text; + } + yyltype; + +#define YY_@_LTYPE yyltype +#endif +#endif +/* DEFAULT STYPE*/ +#ifndef YY_@_STYPE +#define YY_@_STYPE int +#endif +/* DEFAULT MISCELANEOUS */ +#ifndef YY_@_PARSE +#define YY_@_PARSE yyparse +#endif +#ifndef YY_@_LEX +#define YY_@_LEX yylex +#endif +#ifndef YY_@_LVAL +#define YY_@_LVAL yylval +#endif +#ifndef YY_@_LLOC +#define YY_@_LLOC yylloc +#endif +#ifndef YY_@_CHAR +#define YY_@_CHAR yychar +#endif +#ifndef YY_@_NERRS +#define YY_@_NERRS yynerrs +#endif +#ifndef YY_@_DEBUG_FLAG +#define YY_@_DEBUG_FLAG yydebug +#endif +#ifndef YY_@_ERROR +#define YY_@_ERROR yyerror +#endif + +#ifndef YY_@_PARSE_PARAM +#ifndef __STDC__ +#ifndef __cplusplus +#ifndef YY_USE_CLASS +#define YY_@_PARSE_PARAM +#ifndef YY_@_PARSE_PARAM_DEF +#define YY_@_PARSE_PARAM_DEF +#endif +#endif +#endif +#endif +#ifndef YY_@_PARSE_PARAM +#define YY_@_PARSE_PARAM void +#endif +#endif + +/* TOKEN C */ +#ifndef YY_USE_CLASS + +#ifndef YY_@_PURE +extern YY_@_STYPE YY_@_LVAL; +#endif + +$ /* #defines token */ +/* after #define tokens, before const tokens S5*/ +#else +#ifndef YY_@_CLASS +#define YY_@_CLASS @ +#endif + +#ifndef YY_@_INHERIT +#define YY_@_INHERIT +#endif +#ifndef YY_@_MEMBERS +#define YY_@_MEMBERS +#endif +#ifndef YY_@_LEX_BODY +#define YY_@_LEX_BODY +#endif +#ifndef YY_@_ERROR_BODY +#define YY_@_ERROR_BODY +#endif +#ifndef YY_@_CONSTRUCTOR_PARAM +#define YY_@_CONSTRUCTOR_PARAM +#endif +/* choose between enum and const */ +#ifndef YY_@_USE_CONST_TOKEN +#define YY_@_USE_CONST_TOKEN 0 +/* yes enum is more compatible with flex, */ +/* so by default we use it */ +#endif +#if YY_@_USE_CONST_TOKEN != 0 +#ifndef YY_@_ENUM_TOKEN +#define YY_@_ENUM_TOKEN yy_@_enum_token +#endif +#endif + +class YY_@_CLASS YY_@_INHERIT +{ +public: +#if YY_@_USE_CONST_TOKEN != 0 +/* static const int token ... */ +$ /* decl const */ +#else +enum YY_@_ENUM_TOKEN { YY_@_NULL_TOKEN=0 +$ /* enum token */ + }; /* end of enum declaration */ +#endif +public: + int YY_@_PARSE(YY_@_PARSE_PARAM); +#ifdef YY_@_PURE +#else +#ifdef YY_@_LSP_NEEDED + YY_@_LTYPE YY_@_LLOC; +#endif + int YY_@_NERRS; + int YY_@_CHAR; +#endif +#if YY_@_DEBUG != 0 +public: + int YY_@_DEBUG_FLAG; /* nonzero means print parse trace */ +#endif +public: + YY_@_CLASS(YY_@_CONSTRUCTOR_PARAM); +public: + YY_@_MEMBERS +}; +/* other declare folow */ +#endif + + +#if YY_@_COMPATIBILITY != 0 +/* backward compatibility */ +#ifndef YYSTYPE +#define YYSTYPE YY_@_STYPE +#endif + +#ifndef YYLTYPE +#define YYLTYPE YY_@_LTYPE +#endif +#ifndef YYDEBUG +#ifdef YY_@_DEBUG +#define YYDEBUG YY_@_DEBUG +#endif +#endif + +#endif +/* END */ +$ /* section 3 %header{ */ + /* AFTER END , NEVER READ !!! */ + + + -- cgit v1.2.3