Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(957)

Unified Diff: lily/lily-parser-scheme.cc

Issue 4974046: Make #{ #} accept everything an assignment accepts. (Closed)
Patch Set: Document #{ ... #} functionality and its new uses. Patch countdown? Created 12 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lily/lily-parser.cc ('k') | lily/parser.yy » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lily/lily-parser-scheme.cc
diff --git a/lily/lily-parser-scheme.cc b/lily/lily-parser-scheme.cc
index 1107af999592991478f479aa8e2db8d3a46441ba..dc6b652b3d285503ff089ea1b587632868f5c80e 100644
--- a/lily/lily-parser-scheme.cc
+++ b/lily/lily-parser-scheme.cc
@@ -207,6 +207,25 @@ LY_DEFINE (ly_parser_parse_string, "ly:parser-parse-string",
return SCM_UNSPECIFIED;
}
+LY_DEFINE (ly_parse_string_expression, "ly:parse-string-expression",
+ 2, 0, 0, (SCM parser_smob, SCM ly_code),
+ "Parse the string @var{ly-code} with @var{parser-smob}."
+" Return the contained music expression.")
+{
+ LY_ASSERT_SMOB (Lily_parser, parser_smob, 1);
+ Lily_parser *parser = unsmob_lily_parser (parser_smob);
+ LY_ASSERT_TYPE (scm_is_string, ly_code, 2);
+
+ if (!parser->lexer_->is_clean ())
+ {
+ parser->parser_error (_ ("ly:parse-string-expression is only valid with a new parser."
+ " Use ly:parser-include-string instead."));
+ return SCM_UNSPECIFIED;
+ }
+
+ return parser->parse_string_expression (ly_scm2string (ly_code));
+}
+
LY_DEFINE (ly_parser_include_string, "ly:parser-include-string",
2, 0, 0, (SCM parser_smob, SCM ly_code),
"Include the string @var{ly-code} into the input stream"
« no previous file with comments | « lily/lily-parser.cc ('k') | lily/parser.yy » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b