ibConfLex.l 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. %option noyywrap
  2. %option nounput
  3. %option yylineno
  4. %option outfile="ibConfLex.c" header-file="ibConfLex.h"
  5. %option prefix="gpib_yy"
  6. %option reentrant
  7. %{
  8. #include "ibConfYacc.h"
  9. #include "ib_internal.h"
  10. #include <string.h>
  11. %}
  12. %x COMMENT
  13. %x STRING
  14. %%
  15. %{
  16. %}
  17. <COMMENT,STRING,INITIAL>\n
  18. "/*" { BEGIN(COMMENT); }
  19. <COMMENT>[^*\n]*
  20. <COMMENT>"*"+[^*/i\n]*
  21. <COMMENT>"*"+"/" BEGIN(INITIAL);
  22. \" { BEGIN(STRING); }
  23. <STRING>[^\"]*\" {
  24. if(strlen(gpib_yyget_text(yyscanner)) > 0)
  25. gpib_yyget_text(yyscanner)[strlen(gpib_yyget_text(yyscanner)) - 1] = 0;
  26. gpib_lvalp->sval = gpib_yyget_text(yyscanner);
  27. BEGIN(INITIAL);
  28. return ( T_STRING );
  29. }
  30. interface { return (T_INTERFACE);}
  31. base { return (T_BASE);}
  32. irq { return (T_IRQ);}
  33. dma { return (T_DMA);}
  34. pci_bus { return (T_PCI_BUS);}
  35. pci_slot { return (T_PCI_SLOT);}
  36. device { return(T_DEVICE);}
  37. name { return (T_NAME);}
  38. board_type { return (T_BOARD_TYPE);}
  39. minor { return (T_MINOR);}
  40. pad { return(T_PAD);}
  41. sad { return(T_SAD);}
  42. eos { return(T_EOSBYTE);}
  43. timeout |
  44. timo { return(T_TIMO);}
  45. set-reos { return T_REOS;}
  46. set-bin { return T_BIN; }
  47. set-xeos { return T_XEOS; }
  48. set-eot { return T_EOT; }
  49. init-string { printf( "init-string deprecated\n" ); return T_INIT_S; }
  50. init-flags { printf( "init-flags deprecated\n" ); return T_INIT_F; }
  51. set-clear { printf( "set-clear deprecated\n" ); return T_DCL; }
  52. LLO { return T_LLO; }
  53. DCL { return T_DCL; }
  54. EXCL { return T_EXCL;}
  55. controller |
  56. master { return T_MASTER; }
  57. autopoll { return T_AUTOPOLL; }
  58. yes { gpib_lvalp->bval=1; return(T_BOOL);}
  59. no { gpib_lvalp->bval=0; return(T_BOOL);}
  60. none { gpib_lvalp->ival=0 ; return(T_TIVAL);}
  61. 10us { gpib_lvalp->ival=10; return(T_TIVAL);}
  62. 30us { gpib_lvalp->ival=30; return(T_TIVAL);}
  63. 100us { gpib_lvalp->ival=100; return(T_TIVAL);}
  64. 300us { gpib_lvalp->ival=300; return(T_TIVAL);}
  65. 1ms { gpib_lvalp->ival=1000; return(T_TIVAL);}
  66. 3ms { gpib_lvalp->ival=3000; return(T_TIVAL);}
  67. 10ms { gpib_lvalp->ival=10000; return(T_TIVAL);}
  68. 30ms { gpib_lvalp->ival=30000; return(T_TIVAL);}
  69. 100ms { gpib_lvalp->ival=100000; return(T_TIVAL);}
  70. 300ms { gpib_lvalp->ival=300000; return(T_TIVAL);}
  71. 1s { gpib_lvalp->ival=1000000; return(T_TIVAL);}
  72. 3s { gpib_lvalp->ival=3000000; return(T_TIVAL);}
  73. 10s { gpib_lvalp->ival=1000000; return(T_TIVAL);}
  74. 30s { gpib_lvalp->ival=30000000; return(T_TIVAL);}
  75. 100s { gpib_lvalp->ival=100000000; return(T_TIVAL);}
  76. 300s { gpib_lvalp->ival=300000000; return(T_TIVAL);}
  77. 1000s { gpib_lvalp->ival=1000000000; return(T_TIVAL);}
  78. TNONE { gpib_lvalp->ival=TNONE ; return(T_NUMBER);}
  79. T10us { gpib_lvalp->ival=T10us; return(T_NUMBER);}
  80. T30us { gpib_lvalp->ival=T30us; return(T_NUMBER);}
  81. T100us { gpib_lvalp->ival=T100us; return(T_NUMBER);}
  82. T300us { gpib_lvalp->ival=T300us; return(T_NUMBER);}
  83. T1ms { gpib_lvalp->ival=T1ms; return(T_NUMBER);}
  84. T3ms { gpib_lvalp->ival=T3ms; return(T_NUMBER);}
  85. T10ms { gpib_lvalp->ival=T10ms; return(T_NUMBER);}
  86. T30ms { gpib_lvalp->ival=T30ms; return(T_NUMBER);}
  87. T100ms { gpib_lvalp->ival=T100ms; return(T_NUMBER);}
  88. T300ms { gpib_lvalp->ival=T300ms; return(T_NUMBER);}
  89. T1s { gpib_lvalp->ival=T1s; return(T_NUMBER);}
  90. T3s { gpib_lvalp->ival=T3s; return(T_NUMBER);}
  91. T10s { gpib_lvalp->ival=T10s; return(T_NUMBER);}
  92. T30s { gpib_lvalp->ival=T30s; return(T_NUMBER);}
  93. T100s { gpib_lvalp->ival=T100s; return(T_NUMBER);}
  94. T300s { gpib_lvalp->ival=T300s; return(T_NUMBER);}
  95. T1000s { gpib_lvalp->ival=T1000s; return(T_NUMBER);}
  96. 0[xX][0-9a-fA-F]+ {
  97. gpib_lvalp->ival = strtol(gpib_yyget_text(yyscanner), NULL, 0);
  98. return( T_NUMBER );
  99. }
  100. (00)?[0-9]+ {
  101. gpib_lvalp->ival = strtol(gpib_yyget_text(yyscanner), NULL, 0 );
  102. return( T_NUMBER );
  103. }
  104. [ \t]
  105. [a-zA-Z0-9_\-]+ {
  106. gpib_lvalp->sval = gpib_yyget_text(yyscanner);
  107. /* printf("bare string <%s> should be enclosed in double-quotes\n", gpib_yytext); */
  108. return (T_STRING);
  109. }
  110. . { return( gpib_yyget_text(yyscanner)[0] ); }
  111. %%