X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Finput.hh;h=2ae9f093eed3fa7d9cf580f25ac6e1c7825e346b;hb=c6911c343c9eb17831220c416b5f100670af96e7;hp=efb358a8fbb2f0cd5b8bffc6fa65b797095ad5d2;hpb=e24df7c27635dc996c466295eacf2981bddccaf7;p=lilypond.git diff --git a/lily/include/input.hh b/lily/include/input.hh index efb358a8fb..2ae9f093ee 100644 --- a/lily/include/input.hh +++ b/lily/include/input.hh @@ -1,46 +1,76 @@ /* - input.hh -- declare Input + This file is part of LilyPond, the GNU music typesetter. - source file of the LilyPond music typesetter + Copyright (C) 1997--2012 Han-Wen Nienhuys - (c) 1997--2005 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #ifndef INPUT_HH #define INPUT_HH -#include "flower-proto.hh" +#include "lily-proto.hh" /** - Base class for anything that records its poisition in the parse file. - */ -class Input { -public: + Base class for anything that records its poisition in the parse file. +*/ +class Input +{ char const *start_; char const *end_; - Source_file * source_file_; - - void warning (String) const; // should use member func? - void non_fatal_error (String) const; - void error (String) const; - void message (String) const; + Source_file *source_file_; +public: + Source_file *get_source_file () const; + char const *start () const; + char const *end () const; + + void set (Source_file *, char const *, char const *); + void error (string) const; + void programming_error (string) const; + void non_fatal_error (string) const; + void warning (string) const; + void message (string) const; + void debug_output (string) const; void set_spot (Input const &); void step_forward (); void set_location (Input const &, Input const &); + Input spot () const; - String location_string () const; - String line_number_string () const; + string location_string () const; + string line_number_string () const; + string file_string ()const; - String file_string ()const; int line_number ()const; int column_number ()const; int end_line_number ()const; int end_column_number ()const; - + void get_counts (int *, int *, int *, int *) const; + Input (Input const &i); Input (); +protected: + string message_location () const; + string message_string (string msg) const; }; +#include "smobs.hh" + +SCM make_input (Input spot); +Input *unsmob_input (SCM); + +extern Input dummy_input_global; + #endif // INPUT_HH