#include <iostream.h>
// mmm
-#define MUDELA_VERSION "0.1.7"
+#define MUDELA_VERSION "0.1.8"
#include "scalar.hh"
#include "translation-property.hh"
%token ALIAS
%token BAR
+%token BEAMPLET
+%token MAEBTELP
%token CADENZA
%token CLEAR
%token CLEF
%token PAPER
%token PARTIAL
%token PLET
+%token TELP
%token PT_T
%token SCORE
%token SCRIPT
%type <outputdef> output_def
%type <header> mudela_header mudela_header_body
%type <box> box
-%type <c> open_request_parens close_request_parens
+%type <i> open_request_parens close_request_parens
%type <c> open_abbrev_parens
-%type <c> open_plet_parens close_plet_parens
+%type <i> open_plet_parens close_plet_parens
%type <music> simple_element music_elt full_element lyrics_elt command_elt
%type <i> abbrev_type
%type <i> int
%type <real> dim real
%type <real> unit
%type <request> abbrev_command_req
-%type <request> post_request pre_request command_req verbose_command_req
+%type <request> post_request command_req verbose_command_req
%type <request> script_req dynamic_req
%type <score> score_block score_body
%type <script> script_definition script_body mudela_script gen_script_def
$2->set_spot (THIS->here_input ());
THIS->post_reqs.push ($2);
}
+ | post_requests close_request_parens {
+ Array<Request*>& r = *THIS->get_parens_request ($2);
+ for (int i = 0; i < r.size (); i++ )
+ r[i]->set_spot (THIS->here_input ());
+ THIS->post_reqs.concat (r);
+ delete &r;
+ }
;
POST_REQUEST_IDENTIFIER {
$$ = (Request*)$1->request ();
}
- |close_request_parens {
- $$ = THIS->get_parens_request ($1);
- }
| script_req
| dynamic_req
| abbrev_type {
close_plet_parens:
']' INT '/' INT {
- $$ = ']';
+ $$ = MAEBTELP;
+ THIS->plet_.type_i_ = $4;
+ THIS->plet_.iso_i_ = $2;
+ }
+ | TELP {
+ $$ = TELP;
+ THIS->plet_.type_i_ = 1;
+ THIS->plet_.iso_i_ = 1;
+ }
+ | TELP INT '/' INT {
+ $$ = TELP;
THIS->plet_.type_i_ = $4;
THIS->plet_.iso_i_ = $2;
}
| ']' {
$$ = ']';
}
- | close_plet_parens {
- $$ = ']';
- }
| E_SMALLER {
$$ = '<';
}
| E_BIGGER {
$$ = '>';
}
+ | close_plet_parens {
+ }
;
open_abbrev_parens:
open_plet_parens:
'[' INT '/' INT {
- $$ = '[';
+ $$ = BEAMPLET;
+ THIS->plet_.type_i_ = $4;
+ THIS->plet_.iso_i_ = $2;
+ }
+ | PLET INT '/' INT {
+ $$ = PLET;
THIS->plet_.type_i_ = $4;
THIS->plet_.iso_i_ = $2;
}
;
pre_requests:
- | pre_requests pre_request {
- THIS->pre_reqs.push ($2);
- $2->set_spot (THIS->here_input ());
+ {
}
- ;
-
-pre_request:
- open_request_parens {
- $$ = THIS->get_parens_request ($1);
+ | pre_requests open_request_parens {
+ Array<Request*>& r = *THIS->get_parens_request ($2);
+ for (int i = 0; i < r.size (); i++ )
+ r[i]->set_spot (THIS->here_input ());
+ THIS->pre_reqs.concat (r);
+ delete &r;
}
;
voice_command:
- PLET INT '/' INT {
- THIS->plet_.type_i_ = $4;
- THIS->plet_.iso_i_ = $2;
- }
- | DURATION STRING {
+ DURATION STRING {
THIS->set_duration_mode (*$2);
delete $2;
}