Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flex prints newline to stdout on default rule match - want to alter that behavior

I have the following flex rules in place.

"#"{name}               {printf(" HASH |  %s\n", yytext);}
.                       {}

It works great for my purposes and outputs upon a match to the first rule;

HASH | some matched string

What's bothering me is that flex is also printing a newline on each match of the second rule. So I get a stdout filled with newlines. Is there a do nothing OP in C? Am I implicitly telling flex to print a newline with a empty rule action? Omitting the "{}" results in the same behavior. I can use sed or whatever to filter out the newlines, but I'd rather just tell flex to stop printing newlines.

I'm happy to provide follow-up examples and data.

like image 380
inetplumber Avatar asked Oct 26 '13 10:10

inetplumber


1 Answers

You need to add \n to your default rule:

.|\n   {}
like image 132
user207421 Avatar answered Oct 08 '22 16:10

user207421