%{ // ********************************************************************** // // Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** #include #include #include #include #if defined(_MSC_VER) && defined(ICE_64) // // '=' : conversion from 'size_t' to 'int', possible loss of data // The result of fread() is a size_t and gets inserted into an int // # pragma warning( 4 : 4267 ) // // 'initializing' : conversion from '__int64' to 'int', possible loss of data // Puts a pointer-difference into an int // # pragma warning( 4 : 4244 ) #endif using namespace std; using namespace Ice; #ifdef _MSC_VER # ifdef yywrap # undef yywrap # define yywrap() 1 # endif # define YY_NO_UNISTD_H #endif #ifdef __SUNPRO_CC # ifdef yywrap # undef yywrap # define yywrap() 1 # endif # ifdef ICE_64 # pragma error_messages(off,truncwarn) # endif #endif #define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize) %} WS [ \t\v\f\r] NL [\n] DIGIT [0-9] %option noyywrap %option never-interactive %option nounput %option noinput %% {DIGIT}+ { *yylvalp = new Complex::NumberNodeI(atoi(yytext)); return TOK_NUMBER; } WS+ /* eat whitespace */ "("|")"|"+"|"*" { return *yytext; } %%