summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJohn Millaway <john43@users.sourceforge.net>2006-03-25 19:03:04 +0000
committerJohn Millaway <john43@users.sourceforge.net>2006-03-25 19:03:04 +0000
commitfd908c349c05a65aff579f20c8d0f64663f97137 (patch)
tree620acd86ba10f66add71c7224b5f82f7a673b3a8 /tests
parentcc60b503d2a24f3587551c4fa27d93d9d266f835 (diff)
Added extended, perl-compatible comment syntax.
Added test for extended comment syntax. Documented extended comment syntax.
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/descriptions1
-rw-r--r--tests/test-extended/.cvsignore9
-rw-r--r--tests/test-extended/Makefile.am44
-rw-r--r--tests/test-extended/scanner.l69
-rw-r--r--tests/test-extended/test.input1
6 files changed, 126 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0644674..c9d970d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -26,6 +26,7 @@ dist_noinst_SCRIPTS = \
create-test
DIST_SUBDIRS = \
+ test-extended \
test-ccl \
test-quotes \
test-rescan-r \
@@ -71,6 +72,7 @@ DIST_SUBDIRS = \
test-table-opts
SUBDIRS = \
+ test-extended \
test-ccl \
test-quotes \
test-rescan-r \
diff --git a/tests/descriptions b/tests/descriptions
index c8f3aaf..9bf891a 100644
--- a/tests/descriptions
+++ b/tests/descriptions
@@ -15,6 +15,7 @@ c++-basic - The C++ scanner.
c++-multiple-scanners - Multiple C++ scanners.
debug-nr - Use yy_flex_debug, non-reentrant.
debug-r - Use debugging functions, reentrant.
+extended - Extended pattern syntax.
header-nr - Test generated header file, non-reentrant.
header-r - Test generated header file, reentrant.
include-by-buffer - YY_BUFFER_STATE, yy_push_state, etc.
diff --git a/tests/test-extended/.cvsignore b/tests/test-extended/.cvsignore
new file mode 100644
index 0000000..325d9be
--- /dev/null
+++ b/tests/test-extended/.cvsignore
@@ -0,0 +1,9 @@
+Makefile
+Makefile.in
+parser.c
+parser.h
+scanner.c
+TEMPLATE
+OUTPUT
+.deps
+test-extended
diff --git a/tests/test-extended/Makefile.am b/tests/test-extended/Makefile.am
new file mode 100644
index 0000000..f121603
--- /dev/null
+++ b/tests/test-extended/Makefile.am
@@ -0,0 +1,44 @@
+# This file is part of flex.
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+
+# Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE.
+
+FLEX = $(top_builddir)/flex
+
+builddir = @builddir@
+
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.c scanner.h test-extended OUTPUT $(OBJS)
+OBJS = scanner.o
+
+AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
+
+testname = test-extended
+
+scanner.c: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+ ./$(testname)$(EXEEXT) < $(srcdir)/test.input | diff -q test.input -
+
+.c.o:
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-extended/scanner.l b/tests/test-extended/scanner.l
new file mode 100644
index 0000000..e027ec5
--- /dev/null
+++ b/tests/test-extended/scanner.l
@@ -0,0 +1,69 @@
+/*
+ * This file is part of flex.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ */
+
+%{
+/* This test is for correctness of extended (?...) patterns. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "config.h"
+
+%}
+
+%option 8bit outfile="scanner.c" prefix="test"
+%option nounput nomain noyywrap
+%option warn
+
+
+%%
+
+ /* Output should match the input. */
+
+abc(?# Single Line Comment )def ECHO;
+ghi(?#
+ multi-line
+ comment
+ )jkl ECHO;
+
+mno(?#
+ multi-line //
+ comment with ##
+ ~~!@#$ %^&*(@-_+=\|,.<>/ ?: ;
+ punctuation
+ )pqr ECHO;
+(?# Start of a rule.)stu ECHO;
+vwxyz(?#End of a rule.) ECHO;
+\n ECHO;
+%%
+
+int main(void);
+
+int
+main ()
+{
+ yyin = stdin;
+ yyout = stdout;
+ yylex();
+ //printf("TEST RETURNING OK.\n");
+ return 0;
+}
diff --git a/tests/test-extended/test.input b/tests/test-extended/test.input
new file mode 100644
index 0000000..b0883f3
--- /dev/null
+++ b/tests/test-extended/test.input
@@ -0,0 +1 @@
+abcdefghijklmnopqrstuvwxyz