]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/parse-scm.hh
Issue 3769: Lexer/Parser: Don't package location data in SCM_TOKEN semantic value
[lilypond.git] / lily / include / parse-scm.hh
index 5ed392d6692bc417e9c9ffe999c77e51bc21f202..6234a84fec712efcbfc5085e46afebf4261c7963 100644 (file)
 extern bool parse_protect_global;
 extern bool parsed_objects_should_be_dead;
 
-struct Parse_start
+class Parse_start
 {
-  char const *str;
-  int nchars;
-  Input start_location_;
-  bool safe_;
-  SCM (*func_) (Parse_start *ps);
+public:
   SCM form_;
+  Input &location_;
+  bool safe_;
   Lily_parser *parser_;
 
-  Parse_start ()
+  Parse_start (SCM form, Input &location, bool safe, Lily_parser *parser) :
+    form_ (form), location_ (location), safe_ (safe), parser_ (parser)
   {
-    str = 0;
-    nchars = 0;
-    safe_ = false;
-    parser_ = 0;
-    form_ = SCM_UNDEFINED;
-    func_ = 0;
   }
 };
 
 SCM catch_protected_parse_body (void *);
 SCM protected_ly_parse_scm (Parse_start *, bool);
-SCM ly_parse_scm (char const *, int *, Input, bool, Lily_parser *);
+SCM ly_parse_scm (Input&, bool, Lily_parser *);
 SCM ly_eval_scm (SCM, Input, bool, Lily_parser *);
 
 #endif /* PARSE_SCM_HH */