summaryrefslogtreecommitdiff
path: root/ui/text_import_scanner.l
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2012-09-14 20:23:18 +0000
committerGerald Combs <gerald@wireshark.org>2012-09-14 20:23:18 +0000
commit762e5ac93f08912c6daae6e83033b01332e914ab (patch)
treeb7782b13f2ffe300f89dd3144a341b33afd4c363 /ui/text_import_scanner.l
parent670dff46e451ca0e701bdafb5c13d75c42b261f6 (diff)
downloadwireshark-762e5ac93f08912c6daae6e83033b01332e914ab.tar.gz
Create a common libui using CMake similar to what we do with Autotools.
Move the GTK+ text import code to the common UI directory. Create wtap_encap_requires_phdr() from code in file_import_dlg.c. svn path=/trunk/; revision=44904
Diffstat (limited to 'ui/text_import_scanner.l')
-rw-r--r--ui/text_import_scanner.l102
1 files changed, 102 insertions, 0 deletions
diff --git a/ui/text_import_scanner.l b/ui/text_import_scanner.l
new file mode 100644
index 0000000000..bd59c749d6
--- /dev/null
+++ b/ui/text_import_scanner.l
@@ -0,0 +1,102 @@
+/* -*-mode: flex-*- */
+
+/*
+ * We don't use unput, so don't generate code for it.
+ */
+%option nounput noinput
+
+/*
+ * We don't read from the terminal.
+ */
+%option never-interactive
+
+/*
+ * Prefix scanner routines with "text_import" rather than "yy", so this scanner
+ * can coexist with other scanners.
+ */
+%option prefix="text_import"
+
+%{
+
+/********************************************************************************
+ *
+ * text_import_scanner.l
+ * Scanner for text import
+ * November 2010, Jaap Keuter <jaap.keuter@xs4all.nl>
+ *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * Based on text2pcap-scanner.l by Ashok Narayanan <ashokn@cisco.com>
+ *
+ * This program 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 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *******************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "text_import_scanner.h"
+#include "text_import_scanner_lex.h"
+
+/*
+ * Flex (v 2.5.35) uses this symbol to "exclude" unistd.h
+ */
+#ifdef _WIN32
+#define YY_NO_UNISTD_H
+#endif
+
+#ifdef _WIN32
+/* disable Windows VC compiler warning "signed/unsigned mismatch" associated */
+/* with YY_INPUT code generated by flex versions such as 2.5.35. */
+#pragma warning (disable:4018)
+#endif
+
+%}
+
+hexdigit [0-9A-Fa-f]
+directive #TEXT2PCAP.*
+comment #[^W].*
+byte [0-9A-Fa-f][0-9A-Fa-f][ \t]
+byte_eol [0-9A-Fa-f][0-9A-Fa-f]\r?\n
+offset [0-9A-Fa-f]+[: \t]
+offset_eol [0-9A-Fa-f]+\r?\n
+text [^ \n\t]+
+mailfwd >
+eol \r?\n\r?
+
+%%
+
+{byte} { parse_token(T_BYTE, yytext); }
+{byte_eol} { parse_token(T_BYTE, yytext); parse_token(T_EOL, NULL); }
+{offset} { parse_token(T_OFFSET, yytext); }
+{offset_eol} { parse_token(T_OFFSET, yytext); parse_token(T_EOL, NULL); }
+{mailfwd}{offset} { parse_token(T_OFFSET, yytext+1); }
+{eol} { parse_token(T_EOL, NULL); }
+[ \t] ; /* ignore whitespace */
+{directive} { parse_token(T_DIRECTIVE, yytext); }
+{comment} ; /* ignore comments */
+{text} { parse_token(T_TEXT, yytext); }
+
+<<EOF>> { write_current_packet(); yyterminate(); }
+
+%%
+int yywrap(void)
+{
+ return 1;
+}