18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* Somewhat faster still: potentially match a lot of text with each rule */ 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectws [ \t] 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnonws [^ \t\n] 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectword {ws}*{nonws}+ 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectwords {word}{ws}+ 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project%% 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int cc = 0, wc = 0, lc = 0; 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{word}{ws}* cc += yyleng; ++wc; 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{word}{ws}*\n cc += yyleng; ++wc; ++lc; 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{words}{word}{ws}* cc += yyleng; wc += 2; 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{words}{2}{word}{ws}* cc += yyleng; wc += 3; 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{words}{3}{word}{ws}* cc += yyleng; wc += 4; 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ws}+ cc += yyleng; 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project\n+ cc += yyleng; lc += yyleng; 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project<<EOF>> { 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project printf( "%8d %8d %8d\n", lc, wc, cc ); 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project yyterminate(); 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 25