summaryrefslogtreecommitdiffstats
path: root/Source/cmCommandArgumentLexer.in.l
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2005-06-08 14:41:05 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2005-06-08 14:41:05 (GMT)
commit2f42e93427902a8afa28ee3fe796768242452fbc (patch)
tree570a2107528e0157ee3083d3513701a7bf4da3a3 /Source/cmCommandArgumentLexer.in.l
parent894fa6a8c7404ce324dd8b9ff3de0cab48f20db2 (diff)
downloadCMake-2f42e93427902a8afa28ee3fe796768242452fbc.zip
CMake-2f42e93427902a8afa28ee3fe796768242452fbc.tar.gz
CMake-2f42e93427902a8afa28ee3fe796768242452fbc.tar.bz2
ENH: Initial import (not working yet)
Diffstat (limited to 'Source/cmCommandArgumentLexer.in.l')
-rw-r--r--Source/cmCommandArgumentLexer.in.l115
1 files changed, 115 insertions, 0 deletions
diff --git a/Source/cmCommandArgumentLexer.in.l b/Source/cmCommandArgumentLexer.in.l
new file mode 100644
index 0000000..0a071fc
--- /dev/null
+++ b/Source/cmCommandArgumentLexer.in.l
@@ -0,0 +1,115 @@
+%{
+/*=========================================================================
+
+ Program: CMake - Cross-Platform Makefile Generator
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+/*
+
+This file must be translated to C and modified to build everywhere.
+
+Run flex like this:
+
+ flex --prefix=cmCommandArgument_yy --header-file=cmCommandArgumentLexer.h -ocmCommandArgumentLexer.cxx cmCommandArgumentLexer.in.l
+
+Modify cmCommandArgumentLexer.cxx:
+ - remove TABs
+ - remove "yyscanner" argument from these methods:
+ yy_fatal_error, yyalloc, yyrealloc, yyfree
+ - remove all YY_BREAK lines occurring right after return statements
+ - change while ( 1 ) to for(;;)
+
+Modify cmCommandArgumentLexer.h:
+ - remove TABs
+ - remove the yy_init_globals function
+ - remove the block that includes unistd.h
+ - remove #line directives (avoids bogus warning on old Sun)
+
+*/
+
+#include "cmCommandArgumentParserHelper.h"
+
+/* Disable some warnings. */
+#if defined(_MSC_VER)
+# pragma warning ( disable : 4127 )
+# pragma warning ( disable : 4131 )
+# pragma warning ( disable : 4244 )
+# pragma warning ( disable : 4251 )
+# pragma warning ( disable : 4267 )
+# pragma warning ( disable : 4305 )
+# pragma warning ( disable : 4309 )
+# pragma warning ( disable : 4706 )
+# pragma warning ( disable : 4786 )
+#endif
+
+/* Disable features we do not need. */
+#define YY_NEVER_INTERACTIVE 1
+#undef ECHO /* SGI termios defines this differently. */
+#define ECHO
+
+/* Replace the lexer input function. */
+#undef YY_INPUT
+#define YY_INPUT(buf, result, max_size) \
+ { result = yyextra->LexInput(buf, max_size); }
+
+/* Include the set of tokens from the parser. */
+#include "cmCommandArgumentParserTokens.h"
+
+
+#if defined( _WIN32 ) && !defined( __CYGWIN__ )
+/* Handle Windows properly */
+# include <io.h>
+# if defined( _MSC_VER )
+# define isatty _isatty
+# endif
+# define YY_NO_UNISTD_H 1
+#endif
+
+/*--------------------------------------------------------------------------*/
+%}
+
+%option reentrant
+%option noyywrap
+%pointer
+
+%%
+
+"$[A-Za-z0-9_]+{" {
+ yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2);
+ return cal_NCURLY;
+}
+
+"${" {
+ return cal_DCURLY;
+}
+
+"}" {
+ return cal_RCURLY;
+}
+
+"@" {
+ return cal_AT;
+}
+
+[A-Za-z0-9_]+ {
+ yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
+ return cal_NAME;
+}
+
+([^A-Za-z0-9_$}\\@]+|\.) {
+ yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
+ return cal_SYMBOL;
+}
+
+%%