/[svn]/linuxsampler/trunk/src/network/lscp.y
ViewVC logotype

Diff of /linuxsampler/trunk/src/network/lscp.y

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1387 by iliev, Sun Oct 7 10:32:53 2007 UTC revision 1399 by schoenebeck, Thu Oct 11 18:53:29 2007 UTC
# Line 101  int octalsToNumber(char oct_digit0, char Line 101  int octalsToNumber(char oct_digit0, char
101      return atoi(d2)*8*8 + atoi(d1)*8 + atoi(d0);      return atoi(d2)*8*8 + atoi(d1)*8 + atoi(d0);
102  }  }
103    
 int hexToNumber(char hex_digit) {  
     switch (hex_digit) {  
         case '0': return 0;  
         case '1': return 1;  
         case '2': return 2;  
         case '3': return 3;  
         case '4': return 4;  
         case '5': return 5;  
         case '6': return 6;  
         case '7': return 7;  
         case '8': return 8;  
         case '9': return 9;  
         // grammar rule 'digit_hex' already forced lower case  
         case 'a': return 10;  
         case 'b': return 11;  
         case 'c': return 12;  
         case 'd': return 13;  
         case 'e': return 14;  
         case 'f': return 15;  
         default:  return 0;  
     }  
 }  
   
 int hexsToNumber(char hex_digit0, char hex_digit1 = '0') {  
     return hexToNumber(hex_digit1)*16 + hexToNumber(hex_digit0);  
 }  
   
104  %}  %}
105    
106  // reentrant parser  // reentrant parser
# Line 141  int hexsToNumber(char hex_digit0, char h Line 114  int hexsToNumber(char hex_digit0, char h
114  %type <Char> char char_base digit digit_oct digit_hex escape_seq escape_seq_octal escape_seq_hex  %type <Char> char char_base digit digit_oct digit_hex escape_seq escape_seq_octal escape_seq_hex
115  %type <Dotnum> dotnum volume_value boolean  %type <Dotnum> dotnum volume_value boolean
116  %type <Number> number sampler_channel instrument_index fx_send_id audio_channel_index device_index midi_input_channel_index midi_input_port_index midi_map midi_bank midi_prog midi_ctrl  %type <Number> number sampler_channel instrument_index fx_send_id audio_channel_index device_index midi_input_channel_index midi_input_port_index midi_map midi_bank midi_prog midi_ctrl
117  %type <String> string string_escaped text text_escaped raw_path_base stringval raw_path digits param_val_list param_val query_val filename db_path map_name entry_name fx_send_name engine_name command add_instruction create_instruction destroy_instruction get_instruction list_instruction load_instruction set_chan_instruction load_instr_args load_engine_args audio_output_type_name midi_input_type_name remove_instruction unmap_instruction set_instruction subscribe_event unsubscribe_event map_instruction reset_instruction clear_instruction find_instruction move_instruction copy_instruction scan_mode edit_instruction format_instruction  %type <String> string string_escaped text text_escaped text_escaped_base stringval stringval_escaped digits param_val_list param_val query_val filename db_path map_name entry_name fx_send_name engine_name command add_instruction create_instruction destroy_instruction get_instruction list_instruction load_instruction set_chan_instruction load_instr_args load_engine_args audio_output_type_name midi_input_type_name remove_instruction unmap_instruction set_instruction subscribe_event unsubscribe_event map_instruction reset_instruction clear_instruction find_instruction move_instruction copy_instruction scan_mode edit_instruction format_instruction
118  %type <FillResponse> buffer_size_type  %type <FillResponse> buffer_size_type
119  %type <KeyValList> key_val_list query_val_list  %type <KeyValList> key_val_list query_val_list
120  %type <LoadMode> instr_load_mode  %type <LoadMode> instr_load_mode
# Line 336  set_instruction       :  AUDIO_OUTPUT_DE Line 309  set_instruction       :  AUDIO_OUTPUT_DE
309                        |  FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index  { $$ = LSCPSERVER->SetFxSendAudioOutputChannel($5,$7,$9,$11); }                        |  FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index  { $$ = LSCPSERVER->SetFxSendAudioOutputChannel($5,$7,$9,$11); }
310                        |  FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl         { $$ = LSCPSERVER->SetFxSendMidiController($5,$7,$9);              }                        |  FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl         { $$ = LSCPSERVER->SetFxSendMidiController($5,$7,$9);              }
311                        |  FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value                { $$ = LSCPSERVER->SetFxSendLevel($5,$7,$9);                       }                        |  FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value                { $$ = LSCPSERVER->SetFxSendLevel($5,$7,$9);                       }
312                        |  DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP raw_path                           { $$ = LSCPSERVER->SetDbInstrumentDirectoryName($5,$7);            }                        |  DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped                  { $$ = LSCPSERVER->SetDbInstrumentDirectoryName($5,$7);            }
313                        |  DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP raw_path                    { $$ = LSCPSERVER->SetDbInstrumentDirectoryDescription($5,$7);     }                        |  DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped           { $$ = LSCPSERVER->SetDbInstrumentDirectoryDescription($5,$7);     }
314                        |  DB_INSTRUMENT SP NAME SP db_path SP raw_path                                     { $$ = LSCPSERVER->SetDbInstrumentName($5,$7);                     }                        |  DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped                            { $$ = LSCPSERVER->SetDbInstrumentName($5,$7);                     }
315                        |  DB_INSTRUMENT SP DESCRIPTION SP db_path SP raw_path                              { $$ = LSCPSERVER->SetDbInstrumentDescription($5,$7);              }                        |  DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped                     { $$ = LSCPSERVER->SetDbInstrumentDescription($5,$7);              }
316                        |  ECHO SP boolean                                                                  { $$ = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, $3);  }                        |  ECHO SP boolean                                                                  { $$ = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, $3);  }
317                        |  VOLUME SP volume_value                                                           { $$ = LSCPSERVER->SetGlobalVolume($3);                            }                        |  VOLUME SP volume_value                                                           { $$ = LSCPSERVER->SetGlobalVolume($3);                            }
318                        ;                        ;
# Line 497  filename                  :  path  { $$ Line 470  filename                  :  path  { $$
470  db_path                   :  path  { $$ = $1.toDbPath(); }  db_path                   :  path  { $$ = $1.toDbPath(); }
471                            ;                            ;
472    
473  map_name                  :  stringval  map_name                  :  stringval_escaped
474                            ;                            ;
475    
476  entry_name                :  raw_path  entry_name                :  stringval_escaped
477                            ;                            ;
478    
479  fx_send_name              :  stringval  fx_send_name              :  stringval_escaped
480                            ;                            ;
481    
482  param_val_list            :  param_val  param_val_list            :  param_val
# Line 521  query_val_list            :  string '=' Line 494  query_val_list            :  string '='
494                            |  query_val_list SP string '=' query_val  { $$ = $1; $$[$3] = $5; }                            |  query_val_list SP string '=' query_val  { $$ = $1; $$[$3] = $5; }
495                            ;                            ;
496    
497  query_val                 :  raw_path_base  query_val                 :  text_escaped
498                            |  raw_path                            |  stringval_escaped
499                            ;                            ;
500    
501  scan_mode                 :  RECURSIVE      { $$ = "RECURSIVE"; }  scan_mode                 :  RECURSIVE      { $$ = "RECURSIVE"; }
# Line 611  path                  :  '\'' path_base Line 584  path                  :  '\'' path_base
584                        |  '\"' path_base '\"'  { $$ = $2; }                        |  '\"' path_base '\"'  { $$ = $2; }
585                        ;                        ;
586    
587  path_base             :  '/'                     { $$ = Path();                           }  path_base             :  '/'                          { $$ = Path();                           }
588                        |  path_base '/'           { $$ = $1;                               }                        |  path_base '/'                { $$ = $1;                               }
589                        |  path_base text_escaped  { Path p; p.appendNode($2); $$ = $1 + p; }                        |  path_base text_escaped_base  { Path p; p.appendNode($2); $$ = $1 + p; }
590                        ;                        ;
591    
592  stringval             :  '\'' text '\''  { $$ = $2; }  stringval             :  '\'' text '\''  { $$ = $2; }
593                        |  '\"' text '\"'  { $$ = $2; }                        |  '\"' text '\"'  { $$ = $2; }
594                        ;                        ;
595    
596  raw_path              :  '\'' raw_path_base '\''  { $$ = $2; }  stringval_escaped     :  '\'' text_escaped '\''  { $$ = $2; }
597                        |  '\"' raw_path_base '\"'  { $$ = $2; }                        |  '\"' text_escaped '\"'  { $$ = $2; }
598                        ;                        ;
599    
600  text                  :  SP           { $$ = " ";      }  text                  :  SP           { $$ = " ";      }
# Line 630  text                  :  SP           { Line 603  text                  :  SP           {
603                        |  text string  { $$ = $1 + $2;  }                        |  text string  { $$ = $1 + $2;  }
604                        ;                        ;
605    
606  text_escaped          :  SP                           { $$ = " ";      }  // like text_escaped, but missing the slash ('/') character
607    text_escaped_base     :  SP                                { $$ = " ";      }
608                        |  string_escaped                        |  string_escaped
609                        |  text_escaped SP              { $$ = $1 + " "; }                        |  text_escaped_base SP              { $$ = $1 + " "; }
610                        |  text_escaped string_escaped  { $$ = $1 + $2;  }                        |  text_escaped_base string_escaped  { $$ = $1 + $2;  }
611                        ;                        ;
612    
613  raw_path_base         :  '/'                          { $$ = "/";      }  text_escaped          :  '/'                              { $$ = "/";      }
614                        |  text_escaped                        |  text_escaped_base
615                        |  raw_path_base '/'            { $$ = $1 + "/"; }                        |  text_escaped '/'                 { $$ = $1 + "/"; }
616                        |  raw_path_base text_escaped   { $$ = $1 + $2;  }                        |  text_escaped text_escaped_base   { $$ = $1 + $2;  }
617                        ;                        ;
618    
619  string                :  char          { std::string s; s = $1; $$ = s; }  string                :  char          { std::string s; s = $1; $$ = s; }

Legend:
Removed from v.1387  
changed lines
  Added in v.1399

  ViewVC Help
Powered by ViewVC