summaryrefslogtreecommitdiff
path: root/examples/manual/unput.lex
diff options
context:
space:
mode:
Diffstat (limited to 'examples/manual/unput.lex')
-rw-r--r--examples/manual/unput.lex32
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/manual/unput.lex b/examples/manual/unput.lex
new file mode 100644
index 0000000..161471a
--- /dev/null
+++ b/examples/manual/unput.lex
@@ -0,0 +1,32 @@
+/*
+ * unput.l : An example of what *not*
+ * to do with unput().
+ */
+
+
+%{
+#include <stdio.h>
+
+void putback_yytext(void);
+%}
+
+%%
+foobar putback_yytext();
+raboof putback_yytext();
+%%
+
+void putback_yytext(void)
+{
+ int i;
+ int l = strlen(yytext);
+ char buffer[YY_BUF_SIZE];
+
+ strcpy(buffer,yytext);
+ printf("Got: %s\n",yytext);
+ for(i=0; i<l; i++){
+ unput(buffer[i]);
+ }
+}
+
+
+