Input_command::Input_command()
{
- when = -1;
}
-Input_command::Input_command(Real w)
-{
- when =w;
-}
Input_command::operator Command()
{
- Command c(when);
- if (!args.sz())
+ Command c;
+ if (!args.size())
return c;
c.code = INTERPRET;
Input_command*
-get_partial_command(Real u)
+get_partial_command(Moment u)
{
Input_command*c = new Input_command;
c->args.add("PARTIAL");
}
Input_command*
-get_grouping_command(svec<int>a )
+get_goto_command(String s)
+{
+ Input_command*c = new Input_command;
+ c->args.add("GOTO");
+ c->args.add(s);
+ return c;
+}
+
+Input_command*
+get_cadenza_toggle(int i)
+{
+
+ Input_command*c = new Input_command;
+ c->args.add("CADENZA");
+ c->args.add(i);
+ return c;
+}
+Input_command*
+get_grouping_command(Array<int>a )
{
Input_command*c = new Input_command;
- c->args.add("GROUPING");
- for (int i=0; i < a.sz(); i ++)
+ c->args.add("GROUPING");
+ for (int i=0; i < a.size(); i ++)
c->args.add(a[i]);
return c;
}
Input_command*
-get_key_interpret_command(svec<String>a )
+get_key_interpret_command(Array<int >a )
{
Input_command*c = new Input_command;
c->args.add("KEY");
- for (int i=0; i < a.sz(); i ++)
+ for (int i=0; i < a.size(); i ++) {
c->args.add(a[i]);
-
+ }
return c;
}
}
Input_command *
-get_bar_command(Real w)
+get_newmeasure_command()
{
Input_command*c = new Input_command;
- c->when = w;
- c->args.add( "BAR");
- c->args.add( "|");
-
+ c->args.add( "NEWMEASURE");
return c;
}
Input_command *
-get_skip_command(int n, Real m)
+get_skip_command(int n, Moment m)
{
Input_command*c = new Input_command;
void
Input_command::print()const
{
- mtor << "{ at " << when;
- if (args.sz()) {
+#ifndef NPRINT
+ mtor << "{ ";
+ if (args.size()) {
mtor<< " args: ";
- for (int i = 0; i<args.sz(); i++)
+ for (int i = 0; i<args.size(); i++)
mtor << "`"<<args[i] <<"',";
}
mtor << "}\n";
+#endif
}
Input_command*
c->args.add(w);
return c;
}
+
+Input_command*
+get_bar_command(String w)
+{
+ Input_command*c = new Input_command;
+ c->args.add("BAR");
+ c->args.add(w);
+ return c;
+}
+
+Array<int>
+get_default_grouping(int count)
+{
+ Array<int> s;
+ if (!(count % 3 )) {
+ for (int i=0; i < count/3; i++)
+ s.add(3);
+ } else if (!(count %2)) {
+ for (int i=0; i < count/2; i++)
+ s.add(2);
+ }else {
+ s.add(2);
+ s.concat(get_default_grouping(count-2));
+ }
+ return s;
+}