diff options
Diffstat (limited to 'Source/cmExprParser.y')
-rw-r--r-- | Source/cmExprParser.y | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/Source/cmExprParser.y b/Source/cmExprParser.y deleted file mode 100644 index 12c2e4806..000000000 --- a/Source/cmExprParser.y +++ /dev/null @@ -1,170 +0,0 @@ -%{ -/*============================================================================ - CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium - - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. - - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ -/* - -This file must be translated to C and modified to build everywhere. - -Run bison like this: - - bison --yacc --name-prefix=cmExpr_yy --defines=cmExprParserTokens.h -ocmExprParser.cxx cmExprParser.y - -Modify cmExprParser.cxx: - - remove TABs - - remove use of the 'register' storage class specifier - - add __HP_aCC to the #if test for yyerrorlab warning suppression - -*/ - -/* Configure the parser to use a lexer object. */ -#define YYPARSE_PARAM yyscanner -#define YYLEX_PARAM yyscanner -#define YYERROR_VERBOSE 1 -#define cmExpr_yyerror(x) \ - cmExprError(yyscanner, x) -#define yyGetParser (cmExpr_yyget_extra(yyscanner)) - -/*-------------------------------------------------------------------------*/ -#include "cmExprParserHelper.h" /* Interface to parser object. */ -#include "cmExprLexer.h" /* Interface to lexer object. */ -#include "cmExprParserTokens.h" /* Need YYSTYPE for YY_DECL. */ - -#include <math.h> - -/* Forward declare the lexer entry point. */ -YY_DECL; - -/* Internal utility functions. */ -static void cmExprError(yyscan_t yyscanner, const char* message); - -#define YYDEBUG 1 -//#define YYMAXDEPTH 100000 -//#define YYINITDEPTH 10000 - - -/* Disable some warnings in the generated code. */ -#ifdef __BORLANDC__ -# pragma warn -8004 /* Variable assigned a value that is not used. */ -# pragma warn -8008 /* condition always returns true */ -# pragma warn -8060 /* possibly incorrect assignment */ -# pragma warn -8066 /* unreachable code */ -#endif -#ifdef _MSC_VER -# pragma warning (disable: 4102) /* Unused goto label. */ -# pragma warning (disable: 4065) /* Switch statement contains default but no case. */ -#endif -%} - -/* Generate a reentrant parser object. */ -%pure_parser - -/*-------------------------------------------------------------------------*/ -/* Tokens */ -%token exp_PLUS -%token exp_MINUS -%token exp_TIMES -%token exp_DIVIDE -%token exp_MOD -%token exp_SHIFTLEFT -%token exp_SHIFTRIGHT -%token exp_OPENPARENT -%token exp_CLOSEPARENT -%token exp_OR; -%token exp_AND; -%token exp_XOR; -%token exp_NOT; -%token exp_NUMBER; - -/*-------------------------------------------------------------------------*/ -/* grammar */ -%% - - -Start: -exp -{ - yyGetParser->SetResult($<Number>1); -} - -exp: -bitwiseor -{$<Number>$ = $<Number>1;} -| -exp exp_OR bitwiseor -{$<Number>$ = $<Number>1 | $<Number>3;} - -bitwiseor: -bitwisexor -{$<Number>$ = $<Number>1;} -| -bitwiseor exp_XOR bitwisexor -{$<Number>$ = $<Number>1 ^ $<Number>3;} - -bitwisexor: -bitwiseand -{$<Number>$ = $<Number>1;} -| -bitwisexor exp_AND bitwiseand -{$<Number>$ = $<Number>1 & $<Number>3;} - -bitwiseand: -shift -{$<Number>$ = $<Number>1;} -| -bitwiseand exp_SHIFTLEFT shift -{$<Number>$ = $<Number>1 << $<Number>3;} -| -bitwiseand exp_SHIFTRIGHT shift -{$<Number>$ = $<Number>1 >> $<Number>3;} - - -shift: -term -{$<Number>$ = $<Number>1;} -| -shift exp_PLUS term -{$<Number>$ = $<Number>1 + $<Number>3;} -| -shift exp_MINUS term -{$<Number>$ = $<Number>1 - $<Number>3;} - -term: -factor -{$<Number>$ = $<Number>1;} -| -term exp_TIMES factor -{$<Number>$ = $<Number>1 * $<Number>3;} -| -term exp_DIVIDE factor -{$<Number>$ = $<Number>1 / $<Number>3;} -| -term exp_MOD factor -{$<Number>$ = $<Number>1 % $<Number>3;} - -factor: -exp_NUMBER -{$<Number>$ = $<Number>1;} -| -exp_OPENPARENT exp exp_CLOSEPARENT -{$<Number>$ = $<Number>2;} -; - - -%% -/* End of grammar */ - -/*--------------------------------------------------------------------------*/ -void cmExprError(yyscan_t yyscanner, const char* message) -{ - yyGetParser->Error(message); -} - |