table.l 867 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. ws ([ \t]*)
  2. arrow ("==>")
  3. letter ([a-zA-Z_])
  4. digit ([0-9])
  5. identifier ({letter}({letter}|{digit})*)
  6. %start COM CAL CON
  7. %{
  8. #include "Lpars.h"
  9. #include "decl.h"
  10. int special, n_haakjes;
  11. int lineno = 1;
  12. %}
  13. %%
  14. "/*" BEGIN COM;
  15. <COM>[^\n\*]*"*"+"/" BEGIN 0;
  16. <COM>[^\n^\*]*"*"+ ;
  17. <COM>[^\n\*]*"\n" lineno++;
  18. ";" return( ';');
  19. "." return( '.');
  20. "," return( ',');
  21. ":" return( ':');
  22. "@" return( '@');
  23. "@if"{ws} return( IF);
  24. "@elsif"{ws} return( ELSIF);
  25. "@else"{ws} return( ELSE);
  26. "@fi"{ws} return( FI);
  27. "..." return( MORE);
  28. {arrow} return( ARROW);
  29. {identifier} return( IDENTIFIER);
  30. <CON>[^()]*"(" { n_haakjes++; yymore();}
  31. "(" { BEGIN CON; n_haakjes = 1; yymore();}
  32. <CON>[^()]*")" { if ( n_haakjes == 1) {
  33. BEGIN 0;
  34. return( CONDITION);
  35. }
  36. else {
  37. n_haakjes--;
  38. yymore();
  39. }
  40. }
  41. {ws} ;
  42. \n lineno++;