/* File........ parser1.lex 
 * Contents.... Exemple of small parser usin LEX 
 *
 * compilation: 
 *    flex parser1.lex 
 *    gcc -o parser1.exe lexyy.c
 


/* ---------------- Definitions space ----------------- */
%option noyywrap
%{
#include <assert.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

  int num_lines = 0;
 
%}
 
VALID {\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b}
/* ------------------- Rules space -------------------- */
%%

\n          {++num_lines;}

.            { }  

%%

/* ----------------- User code space ------------------ */
main()
{
  printf("Hit ^Z followed by enter to finish\n");
  yylex();
  printf("--- Lines           : %d\n", num_lines);
}
