/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1996--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1996--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
LilyPond is free software: you can redistribute it and/or modify
#include "pitch.hh"
#include "source-file.hh"
#include "std-string.hh"
-#include "string-convert.hh"
#include "version.hh"
#include "warn.hh"
return token;
}
-<INITIAL,notes,lyrics>{
+<INITIAL,notes,lyrics,chords>{
\<\< {
yylval = SCM_UNSPECIFIED;
return DOUBLE_ANGLE_OPEN;
}
}
-<INITIAL,notes>{
+<INITIAL,notes,chords>{
\< {
yylval = SCM_UNSPECIFIED;
return ANGLE_OPEN;
void
Lily_lexer::push_extra_token (Input const &where, int token_type, SCM scm)
{
- extra_tokens_ = scm_cons (scm_cons2 (make_input (where),
+ extra_tokens_ = scm_cons (scm_cons2 (where.smobbed_copy (),
scm_from_int (token_type),
scm), extra_tokens_);
}
int
Lily_lexer::scan_scm_id (SCM sid)
{
- if (is_music_function (sid))
+ if (Music_function *fun = Music_function::unsmob (sid))
{
int funtype = SCM_FUNCTION;
yylval = sid;
- SCM s = get_music_function_signature (sid);
+ SCM s = fun->get_signature ();
SCM cs = scm_car (s);
if (scm_is_pair (cs))
if (scm_is_pair (handle)) {
yylval = scm_cdr (handle);
- if (Pitch::unsmob (yylval))
+ if (Pitch::is_smob (yylval))
return (YYSTATE == notes) ? NOTENAME_PITCH : TONICNAME_PITCH;
else if (scm_is_symbol (yylval))
return DRUM_PITCH;
SCM v = scm_car (p);
if (Music *m = Music::unsmob (v))
{
- if (!Input::unsmob (m->get_property ("origin")))
+ if (!Input::is_smob (m->get_property ("origin")))
m->set_spot (override_input (here_input ()));
}
if (Music *m = Music::unsmob (sval))
{
- if (!Input::unsmob (m->get_property ("origin")))
+ if (!Input::is_smob (m->get_property ("origin")))
m->set_spot (override_input (here_input ()));
}
{
Lilypond_version current ( MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL );
Lilypond_version ver (s);
- if (int (ver) < oldest_version)
+ if (!ver)
+ {
+ non_fatal_error (_f ("Invalid version string \"%s\"", s));
+ return false;
+ }
+ if (ver < oldest_version)
{
non_fatal_error (_f ("file too old: %s (oldest supported: %s)", ver.to_string (), oldest_version.to_string ()));
non_fatal_error (_ ("consider updating the input with the convert-ly script"));
string left = frac.substr (0, i);
string right = frac.substr (i + 1, (frac.length () - i + 1));
- int n = String_convert::dec2int (left);
- int d = String_convert::dec2int (right);
- return scm_cons (scm_from_int (n), scm_from_int (d));
+ return scm_cons (scm_c_read_string (left.c_str ()),
+ scm_c_read_string (right.c_str ()));
}
SCM