2 input.cc -- implement Input
4 source file of the LilyPond music typesetter
6 (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
11 #include "flower-proto.hh"
15 #include "source-file.hh"
17 Input::Input (Source_file
*s
, char const *cl
)
36 Input::set_spot (Input
const &i
)
42 Produce GNU-compliant error message. Correcting lilypond source is
43 such a breeze if you ('re edidor) know (s) the error column too
47 [file:line:column:][warning:]message
51 Input::message (String message_string
) const
56 marked "Work in prgress" in GNU iostream
60 why not just return always -1 (unknown),
61 iso breaking the interface?
63 int col = cerr.rdbuf ()->column ();
67 // well, we don't want to loose first warning...
73 str
+= location_string () + String (": ");
75 str
+= message_string
;
79 str
+= source_file_
->error_string (defined_str0_
);
81 fprintf (stderr
, "%s\n", str
.to_str0 ());
86 Input::warning (String message_string
) const
88 message (_ ("warning: ") + message_string
);
91 Input::error (String s
) const
93 message (_ ("error: ")+ s
);
97 Input::non_fatal_error (String s
) const
99 message (_ ("non fatal error: ") + s
);
102 Input::location_string () const
105 return source_file_
->file_line_column_string (defined_str0_
);
107 return " (" + _ ("position unknown") + ")";
111 Input::line_number_string () const
114 return to_string (source_file_
->get_line (defined_str0_
));
120 Input::file_string () const
123 return source_file_
->name_string ();
130 Input::line_number () const
133 return source_file_
->get_line (defined_str0_
);
140 Input::column_number () const
143 return source_file_
->get_column (defined_str0_
);