]> git.donarmstrong.com Git - lilypond.git/commitdiff
better expect-error handling. Thinko for is_main_input_ reset.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 5 Jan 2007 11:48:46 +0000 (12:48 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 5 Jan 2007 11:48:46 +0000 (12:48 +0100)
THANKS
lily/lexer.ll
lily/lily-parser-scheme.cc
ly/init.ly

diff --git a/THANKS b/THANKS
index f1f333c0abcb1eb714b5d9ed6605aaa3d46bae50..c15d646d2ba1875250c30b052e8f932462b8c346 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -30,6 +30,7 @@ Carl Sorensen
 Christian Hitz
 David Bobroff
 Eduardo Vieira
+Georg Dummer
 Jay Anderson
 Jean-Marie Mouchel
 Kazuhiro Suzuki
index 6e34777e266bff5406cce92bdc082a686627bd3b..9ce0da012d5faf14f5eff0fc00beb63e5cd3d6fd 100644 (file)
@@ -570,8 +570,11 @@ BOM_UTF8   \357\273\277
 <*><<EOF>> {
        if (is_main_input_)
        {
-               /* 2 = init.ly + current file. */ 
-               is_main_input_ = include_stack_.size () >= 2;
+               /* 2 = init.ly + current file.
+                  > because we're before closing, but is_main_input_ should
+                  reflect after.
+               */ 
+               is_main_input_ = include_stack_.size () > 2;
                if (!close_input ())
                /* Returns YY_NULL */
                        yyterminate ();
index cd46e9774b403b6280749603645975582844a6d9..47a0095a445fed9e074dfa9b0f48ff504c31d2ae 100644 (file)
@@ -268,3 +268,13 @@ LY_DEFINE (ly_parser_clear_error, "ly:parser-clear-error",
   
   return SCM_UNSPECIFIED;
 }
+
+LY_DEFINE (ly_parser_has_error_p, "ly:parser-has-error?",
+          1, 0, 0, (SCM parser),
+          "Does @var{parser} have an error flag?")
+{
+  Lily_parser *p = unsmob_lily_parser (parser);
+  SCM_ASSERT_TYPE (p, parser, SCM_ARG1, __FUNCTION__, "Lilypond parser");
+
+  return scm_from_bool (p->error_level_ || p->lexer_->error_level_);
+}
index da97ded0e6c662740b7e0d30ffe750b0b29206ae..f6c928e301ec8f6e6af0cca07b2a89241b8f25cc 100644 (file)
@@ -42,5 +42,6 @@
    (apply ly:make-book $defaultpaper $defaultheader toplevel-scores)))
 
 
-#(if expect-error
-  (ly:parser-clear-error parser))
+#(if (eq? expect-error (ly:parser-has-error? parser))
+  (ly:parser-clear-error parser)
+  (ly:parser-error parser (_ "expected error, but none found")))