]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/parser.yy
Doc-hu: updated top of Learning
[lilypond.git] / lily / parser.yy
index d2f3a8c4dc9e9f0eae7f1512c673fbeabadcdf6d..84c7a9575c49b86bf0deed9398c36b079a4d7456 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1997--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
                  Jan Nieuwenhuizen <janneke@gnu.org>
 
   LilyPond is free software: you can redistribute it and/or modify
@@ -564,7 +564,11 @@ assignment_id:
 assignment:
        assignment_id '=' identifier_init  {
                PARSER->lexer_->set_identifier ($1, $3);
-
+       }
+       | assignment_id property_path '=' identifier_init {
+               SCM path = scm_cons (scm_string_to_symbol ($1), $2);
+               PARSER->lexer_->set_identifier (path, $4);
+       ;
 /*
  TODO: devise standard for protection in parser.
 
@@ -1316,6 +1320,17 @@ context_mod:
        | context_def_mod STRING {
                $$ = scm_list_2 ($1, $2);
        }
+       | context_def_mod embedded_scm {
+          if (ly_symbol2scm ("consists") != $1)
+          {
+            $$ = SCM_EOL;
+             PARSER->parser_error (@1, _ ("only \\consists takes non-string argument."));
+          }
+          else
+          {
+            $$ = scm_list_2 ($1, $2);
+          }
+       }
        ;
 
 context_prop_spec: