home *** CD-ROM | disk | FTP | other *** search
/ gdead.berkeley.edu / gdead.berkeley.edu.tar / gdead.berkeley.edu / pub / cad-tools / ciftomann.tar / cmd_dir / scan.l < prev   
Text File  |  1988-01-28  |  895b  |  45 lines

  1. %{
  2.     /* the lexical scanner for the command parser */
  3.  
  4. #include "parse.h"
  5. int line_number = 1;
  6. %}
  7.  
  8. l        [a-zA-Z]
  9. an        [a-zA-Z0-9]
  10. %%
  11. [sS]cale    {return (SCALE);}
  12. [Ii]nvert    {return (INVERT);}
  13. [Gg]row        {return (GROW);}
  14. [Ss]hrink    {return (SHRINK);}
  15. [Aa]perture_max {return (APERTURE_MAX);}
  16. [Aa]perture_min {return (APERTURE_MIN);}
  17. [Ss]tage_max   {return (STAGE_MAX);}
  18. [Ss]tage_min   {return (STAGE_MIN);}
  19. [Gg]rid_size    {return (GRID_SIZE);}
  20. [Cc]onvert_factor    {return (CONVERT_FACTOR);}
  21.  
  22. {l}        |
  23. {l}{an}        |
  24. {l}{an}{an}    |
  25. {l}{an}{an}{an}        {
  26.                 yylval.strval = yytext;
  27.                 return(LAYER);
  28.             }
  29.  
  30. {l}+        { error("bad layer name or keyword");}
  31.  
  32. [0-9]+        { sscanf(yytext,"%d",&yylval.intval);
  33.           return(NUMBER);
  34.         }
  35.  
  36. [0-9]+\.[0-9]*    { sscanf(yytext,"%f",&yylval.floatval);
  37.           return(FLOAT);
  38.         }
  39.  
  40. \-        { return ( MINUS ); }
  41. \n        { line_number++;
  42.             return (EOL); }
  43. [ \t]        ;
  44. .        { error("illegal character");}
  45.