diff options
author | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2017-04-28 18:26:55 (GMT) |
---|---|---|
committer | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2017-04-28 21:10:39 (GMT) |
commit | 9bad0dfccedcc1cd71ee2579486f6729cb9d7749 (patch) | |
tree | 254ca1652ef98e6a3d36024f675f05a2fe6ad1d4 /Source/cmExprParser.y | |
parent | 8927e913f780fa62c540063b8a5cfe0dcbfdd288 (diff) | |
download | CMake-9bad0dfccedcc1cd71ee2579486f6729cb9d7749.zip CMake-9bad0dfccedcc1cd71ee2579486f6729cb9d7749.tar.gz CMake-9bad0dfccedcc1cd71ee2579486f6729cb9d7749.tar.bz2 |
LexerParser: move to custom directory
Diffstat (limited to 'Source/cmExprParser.y')
-rw-r--r-- | Source/cmExprParser.y | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/Source/cmExprParser.y b/Source/cmExprParser.y deleted file mode 100644 index 220f7c8..0000000 --- a/Source/cmExprParser.y +++ /dev/null @@ -1,165 +0,0 @@ -%{ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -/* - -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: - - "#if 0" out yyerrorlab block in range ["goto yyerrlab1", "yyerrlab1:"] - -*/ - -#include "cmConfigure.h" // IWYU pragma: keep - -#include <stdlib.h> -#include <string.h> - -/*-------------------------------------------------------------------------*/ -#define YYDEBUG 1 -#include "cmExprParserHelper.h" /* Interface to parser object. */ -#include "cmExprLexer.h" /* Interface to lexer object. */ -#include "cmExprParserTokens.h" /* Need YYSTYPE for YY_DECL. */ - -/* Forward declare the lexer entry point. */ -YY_DECL; - -/* Helper function to forward error callback from parser. */ -static void cmExpr_yyerror(yyscan_t yyscanner, const char* message); - -/* Disable some warnings in the generated code. */ -#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. */ -%define api.pure - -/* Configure the parser to use a lexer object. */ -%lex-param {yyscan_t yyscanner} -%parse-param {yyscan_t yyscanner} - -%define parse.error verbose - -/*-------------------------------------------------------------------------*/ -/* 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 { - cmExpr_yyget_extra(yyscanner)->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: - unary { - $<Number>$ = $<Number>1; - } -| term exp_TIMES unary { - $<Number>$ = $<Number>1 * $<Number>3; - } -| term exp_DIVIDE unary { - $<Number>$ = $<Number>1 / $<Number>3; - } -| term exp_MOD unary { - $<Number>$ = $<Number>1 % $<Number>3; - } - -unary: - factor { - $<Number>$ = $<Number>1; - } -| exp_PLUS unary { - $<Number>$ = + $<Number>2; - } -| exp_MINUS unary { - $<Number>$ = - $<Number>2; - } - -factor: - exp_NUMBER { - $<Number>$ = $<Number>1; - } -| exp_OPENPARENT exp exp_CLOSEPARENT { - $<Number>$ = $<Number>2; - } -; - -%% -/* End of grammar */ - -/*--------------------------------------------------------------------------*/ -void cmExpr_yyerror(yyscan_t yyscanner, const char* message) -{ - cmExpr_yyget_extra(yyscanner)->Error(message); -} - |