]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/input.hh
Imported Upstream version 2.19.45
[lilypond.git] / lily / include / input.hh
index a11f8f8c1b25f787bd632aaa41bc7388eea3340f..aab0d117a66a561b7f6a0cea4c727a97b64d3e24 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1997--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
 #define INPUT_HH
 
 #include "lily-proto.hh"
+#include "smobs.hh"
 
 /**
    Base class for anything that records its poisition in the parse file.
 */
-class Input
+class Input : public Simple_smob<Input>
 {
   char const *start_;
   char const *end_;
   Source_file *source_file_;
 public:
+  static const char * const type_p_name_;
+  int print_smob (SCM, scm_print_state *) const;
+  static SCM equal_p (SCM, SCM);
+  SCM mark_smob () const;
   Source_file *get_source_file () const;
   char const *start () const;
   char const *end () const;
@@ -66,11 +71,14 @@ protected:
   string message_string (const string &msg) const;
 };
 
-#include "smobs.hh"
-
-SCM make_input (Input spot);
-Input *unsmob_input (SCM);
-
 extern Input dummy_input_global;
 
+// The parser calls syntax functions with a lot of arguments
+SCM with_location (SCM loc, SCM proc);
+SCM with_location (SCM loc, SCM proc, SCM);
+SCM with_location (SCM loc, SCM proc, SCM, SCM);
+SCM with_location (SCM loc, SCM proc, SCM, SCM, SCM);
+SCM with_location (SCM loc, SCM proc, SCM, SCM, SCM, SCM);
+SCM with_location (SCM loc, SCM proc, SCM, SCM, SCM, SCM, SCM);
+
 #endif // INPUT_HH