/**************************************** readpar.y grammar description file for parameter list Chimera DAQ e.d.f ver 0.1 (November 2010) *****************************************/ %{ #include "TCHIEvent.h" extern int yylineno; TCHIParam bpara; %} %start param %union { char s_value[32]; int i_value; module mod_value; } %token SLASH EQUAL EOL HASH %token PAR ADDR BOARD CRATE TEL MOD POSTEL %token STRING %token NUM %token MODULE %% param : {bpara.ClearParam();} | param EOL | param seq_of_command EOL { gevent->Gen_list_par(yylineno, &bpara); bpara.ClearParam(); } | param directives EOL | error EOL {yyerrok; yyclearin;} ; seq_of_command : command | seq_of_command command ; command : SLASH PAR EQUAL STRING {strcpy(bpara.fname, $4);} | SLASH ADDR EQUAL NUM {bpara.faddr = $4;} | SLASH CRATE EQUAL NUM {bpara.fcrate = $4;} | SLASH BOARD EQUAL NUM {bpara.fboard = $4;} | SLASH TEL EQUAL NUM {bpara.fnumtel = $4;} | SLASH MOD EQUAL MODULE {bpara.fmod = $4; } ; directives : HASH POSTEL EQUAL NUM {gevent->SetPostel($4);} ; %%