]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.22
authorfred <fred>
Fri, 10 Jan 1997 00:35:29 +0000 (00:35 +0000)
committerfred <fred>
Fri, 10 Jan 1997 00:35:29 +0000 (00:35 +0000)
src/lexer.l
src/note.cc
src/timedescription.cc
titledefs.tex [new file with mode: 0644]

index 22bda7c92eeb821d9ccb82ec97eb0e551fed9369..9f99dd27134fafd5c4129ce9297883beeb4088ba 100644 (file)
@@ -5,7 +5,7 @@
 #include "string.hh"
 #include "notename.hh"
 #include "lexer.hh"
-#include "vray.hh"
+#include "varray.hh"
 #include "parser.hh"
 #include "debug.hh"
 
@@ -31,7 +31,7 @@ AN            {AA}|{N}
 WORD           {A}{AN}*
 ALPHAWORD      {A}+
 INT            -?{N}+
-REAL           {INT}(\.{N}*)?
+REAL           {INT}?(\.{N}*)?
 
 OPTSIGN                !?
 PITCHMOD       ['`]*{OPTSIGN}
@@ -95,8 +95,6 @@ DOTS          \.+
        yylval.i = String(YYText()).value();
        return INT;
 }
-<notes>\|              {
-}
 <notes>[%#].*\n                { 
 
 }
@@ -110,21 +108,13 @@ DOTS              \.+
        return YYText()[0];
        
 }
-<notes>[\[)]   { /* parens () are NO mistake */
-       yylval.c = YYText()[0];
-       return OPEN_REQUEST_PARENS;
-}
-<notes>[\](]   { /* parens () are NO mistake */
-       yylval.c = YYText()[0];
-       return CLOSE_REQUEST_PARENS;
-}
 <notes>\"[^\"]*\" {
        String s (YYText()+1);
        s = s.left(s.len()-1);
        yylval.string = new String(s);
        return STRING;
 }
-<notes>[/.^>_-] {
+<notes>[()\[\]|/.^>_-] {
        return yylval.c = YYText()[0];
 
 }
index 30ded730d47f4910e89594854d9483d3b1ab5ae3..4454e67727b7c054754d27dcb2cec9a91471b7ed 100644 (file)
@@ -7,7 +7,7 @@
 #include "voice.hh"
 #include "notename.hh"
 #include "identparent.hh"
-#include "vray.hh"
+#include "varray.hh"
 #include "textdef.hh"
 
 int default_duration = 4, default_dots=0, default_octave=0;
@@ -149,6 +149,9 @@ get_request(char c)
 {
     Request* ret=0;
     switch (c) {
+    case '|':
+       ret = new Barcheck_req;
+       break;
     case '[':
     case ']':
     {
@@ -177,8 +180,9 @@ get_request(char c)
     case ']':
        ret->span()->spantype = Span_req::STOP;
        break;
+       
     default:
-       assert(false);
+
        break;
     }
 
@@ -186,9 +190,9 @@ get_request(char c)
 }
 
 void
-add_requests(Voice_element *v, svec<Request*> &req)
+add_requests(Voice_element *v, Array<Request*> &req)
 {
-    for (int i = 0; i < req.sz(); i++) {
+    for (int i = 0; i < req.size(); i++) {
        v->add(req[i]);
     }
     req.set_size(0);
@@ -203,7 +207,7 @@ get_scriptdef(char c)
        break;
     case  '+' : s = "stopped";
        break;
-    case '-' : s = "portato";
+    case '-' : s = "tenuto";
        break;
     case  '|':  s = "staccatissimo";
        break;
index 459c15a06de8a2592e737210d289ba84e3d552d8..ce9b667aafdba0994d0de51bd16ec56dba970cd5 100644 (file)
@@ -1,23 +1,33 @@
 #include "timedescription.hh"
 #include "debug.hh"
+String
+Time_description::str()const
+{
+    String s( "Time_description { at ");
+    s+=when;
+    s+="\nmeter " + String(whole_per_measure/one_beat) +":" +(1/one_beat);
+    s+= "\nposition "+String( bars) + ":"+ whole_in_measure +"\n}\n";
+    return s;
+}
 
 void
 Time_description::print() const
 {    
-    mtor << "Time_description { at "<<when<<'\n'; 
-    mtor << "meter " << whole_per_measure << ":" << 1/one_beat 
-        << "\nposition "<< bars << ":" << whole_in_measure <<"\n}\n";
+    mtor << str();
 }
 void
 Time_description::OK() const
 {
+#ifdef NDEBUG
     assert(whole_in_measure < whole_per_measure && 0 <= whole_in_measure);
     assert(one_beat);
+#endif
 }
+
 Time_description::Time_description(Moment dt, Time_description const *prev)
 {
     if (prev) {
-       assert(dt >0);
+       assert(dt >0);
        *this = *prev;
        when += + dt;
        whole_in_measure += dt;
@@ -51,8 +61,24 @@ Time_description::setpartial(Moment p)
        error_t ("Partial measure has incorrect size", when);
     whole_in_measure = whole_per_measure - p;
 }
+
 Moment
 Time_description::barleft()
 {
-return    whole_per_measure-whole_in_measure;
+    return whole_per_measure-whole_in_measure;
+}
+
+int
+Time_description::compare(Time_description &t1, Time_description&t2)
+{
+    int i = sign(t1.when-t2.when);
+
+    if (!i) {
+       assert(t1.bars==t2.bars);
+       assert(t1.one_beat == t2.one_beat);
+       assert(t1.whole_in_measure == t2.whole_in_measure);
+       assert(t1.whole_per_measure == t2.whole_per_measure);
+    }
+
+    return i;
 }
diff --git a/titledefs.tex b/titledefs.tex
new file mode 100644 (file)
index 0000000..33cf813
--- /dev/null
@@ -0,0 +1,15 @@
+\def\thetitle{}
+\def\thecomposer{}
+\def\theinstrument{}
+\def\title#1{\def\thetitle{#1}}
+\def\composer#1{\def\thecomposer{#1}}
+\def\instrument#1{\def\theinstrument{#1}}
+
+\def\maketit{
+  \begin{center}
+    {\Large\bfseries\thetitle}\\
+    \vskip12pt
+    {\bfseries\theinstrument}\hfill{\scshape\thecomposer}
+  \end{center}
+  \bigskip
+  }
\ No newline at end of file