[libpuma] Initial import.
Jerry James
jjames at fedoraproject.org
Tue Oct 21 15:20:42 UTC 2014
commit 66b84344b0fad0d9c77cd143dc3e1eb78db273f4
Author: Jerry James <jamesjer at betterlinux.com>
Date: Tue Oct 21 09:20:23 2014 -0600
Initial import.
.gitignore | 1 +
ac++.1 | 65 ++
ag++.1 | 62 ++
libpuma-doxygen.patch | 150 ++++
libpuma-lexertl.patch | 2165 +++++++++++++++++++++++++++++++++++++++++++++++++
libpuma-shared.patch | 37 +
libpuma-test.patch | 26 +
libpuma.spec | 230 ++++++
sources | 1 +
9 files changed, 2737 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..132c0f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/ac-woven-1.2.tar.gz
diff --git a/ac++.1 b/ac++.1
new file mode 100644
index 0000000..8d80d61
--- /dev/null
+++ b/ac++.1
@@ -0,0 +1,65 @@
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "AspectC++" "1" "10 February 2005" "" ""
+.SH NAME
+aspectc++ \- aspect weaver for C++
+.SH SYNOPSIS
+.sp
+\fBac++\fR \fB -p \fIsrcdir\fB -d \fIdestdir\fB\fR
+.sp
+\fBac++\fR \fB -c \fIinput\fB -o \fIoutput\fB\fR
+.SH "DESCRIPTION"
+.PP
+This manual page documents briefly the
+\fBac++\fR command.
+.PP
+\fBac++\fR is the AspectC++ weaver. \fBac++\fR
+does source-to-source translation. This manual page documents the minimum
+needed in order to use \fBac++\fR\&. For a better reference,
+see AspectC++ documentation.
+.PP
+The first syntax form above invokes \fBac++\fR in WPT
+mode, while the second one invokes it in STU mode (see OPERATION MODES
+below)
+.SH "OPERATION MODES"
+.PP
+\fBWPT\fR (whole program transformation) mode does the
+translation of the entire source tree into another one. This is useful to
+apply all the aspects of one source tree, generating other source tree
+with the aspects woven into the sources.
+.PP
+To use WPT mode, run \fBac++\fR with the first syntax form.
+Specify the original source tree in the \fBsrcdir\fR
+argument, and a name for the destination source tree in the
+\fBdestdir\fR argument.
+.PP
+\fBSTU\fR (single translation unit) mode does the
+translation of one translation unit, namely a C++ single file, for
+exemple. This mode applies to the translation units all aspects that
+affect it.
+.PP
+To use STU mode, run \fBac++\fR with the second syntax form.
+Specify the translation unit in the \fBinput\fR argument,
+and the output file in the \fBoutput\fR argument. The
+\fB-c\fR works as in \fBg++\fR: if omitted,
+you're telling to \fBac++\fR to compile the source into an
+executable; if present, source will be compiled into an object (.o) file.
+.SH "OPTIONS"
+.PP
+Further options can be seen in AspectC++ documentation.
+.SH "SEE ALSO"
+.PP
+ag++ (1), g++ (1).
+.PP
+Again: for full reference on AspectC++ usage, see AspectC++
+documentation. It can be obtained from
+\fBhttp://www.aspectc.org\fR
+.SH "AUTHOR"
+.PP
+This manual page was written by Antonio S. de A. Terceiro <<asaterceiro at inf.ufrgs.br>> for the Debian
+system (but may be used by others). Permission is granted to copy,
+distribute and/or modify this document under the terms of the GNU
+General Public License, Version 2 any later version published by the Free
+Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public
+License can be found in /usr/share/common-licenses/GPL.
diff --git a/ag++.1 b/ag++.1
new file mode 100644
index 0000000..5f0a8aa
--- /dev/null
+++ b/ag++.1
@@ -0,0 +1,62 @@
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "AspectC++" "1" "10 February 2005" "" ""
+.SH NAME
+ag++ \- a frontend to ac++ and g++
+.SH SYNOPSIS
+.sp
+\fBag++\fR \fB -o \fIoutput\fB \fIinput.cpp\fB\fR
+.sp
+\fBag++\fR \fB -c -o \fIoutput.o\fB -o \fIinput.cpp\fB\fR
+.SH "DESCRIPTION"
+.PP
+This manual page documents briefly the
+\fBag++\fR command.
+.PP
+\fBag++\fR is a frontend to ac++ and g++ provided by
+AspectC++. For a better (and more
+complete) reference, see the AspectC++ documentation.
+.PP
+\fBag++\fR
+is called much like g++ itself. Check the two syntax forms above
+and follow these explanations:
+.PP
+The first syntax form takes \fBinput.cpp\fR and generates
+an executable named \fBoutput\fR, after weaving into
+input.cpp all the aspects that crosscut it.
+\fBinput.cpp\fR has restrictions as it would have if we
+were compiling a regular C++ program: it must have an
+\fBmain()\fR function, and everything you already know.
+.PP
+The second syntax form takes \fBinput.cpp\fR and generates
+an object file named \fBoutput.o\fR, after weaving into
+\fBinput.cpp\fR all the aspects that crosscut it.
+.PP
+\fBNote:\fR in both cases, \fBinput.cpp\fR
+isn't actually changed. \fBg++\fR weaves to temporary files.
+.PP
+Common \fBg++\fR arguments, like
+\fB-I INDCIR\fR,
+\fB-L LIBCIR\fR,
+\fB-l libfoo\fR, and so on,
+are recognized by \fBag++\fR and rightly passed to
+\fBg++\fR\&.
+.SH "OPTIONS"
+.PP
+Further options can be seen in AspectC++ documentation.
+.SH "SEE ALSO"
+.PP
+ag++ (1), g++ (1).
+.PP
+Again: for full reference on AspectC++ usage, see AspectC++
+documentation. It can be obtained from
+\fBhttp://www.aspectc.org\fR
+.SH "AUTHOR"
+.PP
+This manual page was written by Antonio S. de A. Terceiro <<asaterceiro at inf.ufrgs.br>> for
+the Debian system (but may be used by others). Permission is
+granted to copy, distribute and/or modify this document under
+the terms of the GNU General Public License, Version 2 any
+later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public
+License can be found in /usr/share/common-licenses/GPL.
diff --git a/libpuma-doxygen.patch b/libpuma-doxygen.patch
new file mode 100644
index 0000000..193a2e2
--- /dev/null
+++ b/libpuma-doxygen.patch
@@ -0,0 +1,150 @@
+--- ./aspectc++/Puma/src/common/OptsParser.h.orig 2013-09-17 10:53:05.000000000 -0600
++++ ./aspectc++/Puma/src/common/OptsParser.h 2014-02-03 21:00:00.000000000 -0700
+@@ -75,7 +75,7 @@ public:
+ FINISH = 0 /**< All options are handled */
+ };
+
+- /** \enum
++ /** \enum ArgType
+ * Type of argument associated to an option
+ */
+ enum ArgType {
+@@ -84,7 +84,7 @@ public:
+ AT_OPTIONAL = 2 /**< %Option has optionally an argument */
+ };
+
+- /** \struct
++ /** \struct Option
+ * Type for specifying an array of options recognized by the %Option %Parser.
+ * An array of this type has to be passed to the constructor OptsParser::OptsParser()
+ */
+--- ./aspectc++/Puma/src/infos/CTemplateInstance.h.orig 2012-05-08 04:08:58.000000000 -0600
++++ ./aspectc++/Puma/src/infos/CTemplateInstance.h 2013-08-23 19:00:00.000000000 -0600
+@@ -115,7 +115,7 @@ public:
+ /** Get the scope in which the template was instantiated. */
+ CScopeInfo *PointOfInstantiationScope () const;
+ /** Set the point of instantiation (e.g. the template-id).
+- * \param tplid The template-id used to instantiate the template.
++ * \param poi The point of instantiation.
+ * \param scope The scope in which the template was instantiated. */
+ void PointOfInstantiation (CTree *poi, CScopeInfo *scope);
+
+@@ -138,7 +138,7 @@ public:
+ bool isInstantiated () const;
+
+ /** Indicate a delayed parse problem during instantiation.
+- * \param is true for yes, false for no. */
++ * \param has true for yes, false for no. */
+ void hasDelayedParseProblem (bool has);
+
+ /** Check whether this instance had a delayed parse problem. */
+--- ./aspectc++/Puma/src/infos/CCandidateInfo.h.orig 2012-05-08 04:08:58.000000000 -0600
++++ ./aspectc++/Puma/src/infos/CCandidateInfo.h 2013-08-23 19:00:00.000000000 -0600
+@@ -42,11 +42,13 @@ class CFunctionInfo;
+ * because of delayed parsing of member functions and the
+ * initializers of their arguments. Here is an example:
+ *
++ * \verbatim
+ * struct has_deref {
+ * template <typename Type> static long test(Type *, Type * = 42);
+ * static char test(void *);
+ * static const int value = sizeof(test((long *) 0));
+ * };
++ * \endverbatim
+ *
+ * Here the first 'test' is selected, but an error message will
+ * have to be issued. This is not considered as a substitution
+--- ./aspectc++/Puma/src/infos/types/CTypeInfo.h.orig 2013-07-04 11:31:32.000000000 -0600
++++ ./aspectc++/Puma/src/infos/types/CTypeInfo.h 2013-08-23 19:00:00.000000000 -0600
+@@ -214,7 +214,7 @@ public:
+ * \param tdef Print the name of a typedef instead of the underlying type.
+ * \param elaborated_type_spec Print elaborated type specifier before
+ * class, union, and enumeration types.
+- * \param unnamed Print unnamed namespaces as '<unnamed>' */
++ * \param unnamed Print unnamed namespaces as '\<unnamed\>' */
+ void TypeText (ostream &os, const char *name = (const char*)0,
+ bool abs = false, bool tdef = false,
+ bool elaborated_type_spec = false,
+--- ./aspectc++/Puma/src/infos/CObjectInfo.h.orig 2011-07-27 21:03:58.000000000 -0600
++++ ./aspectc++/Puma/src/infos/CObjectInfo.h 2013-05-28 20:00:00.000000000 -0600
+@@ -425,9 +425,9 @@ public:
+ /** Get the name of entity described by this semantic object. */
+ const DString& Name () const;
+ /** Get the qualified name of the entity described by this semantic object.
+- * \param abs Create root qualified name (like ::X::Y::Z).
++ * \param abs Create root qualified name (like \::X\::Y\::Z).
+ * \param tdef Insert the name of a typedef instead of the named type.
+- * \param unnamed Don't ignore unnamed namespaces (like <unnamed>::foo). */
++ * \param unnamed Don't ignore unnamed namespaces (like \<unnamed\>\::foo). */
+ const char *QualName (bool abs = false, bool tdef = false,
+ bool unnamed = false);
+ /** Get the semantic information object for the definition of an entity.
+--- ./aspectc++/Puma/src/parser/cparser/CTree.h.orig 2013-06-09 09:43:16.000000000 -0600
++++ ./aspectc++/Puma/src/parser/cparser/CTree.h 2013-08-23 19:00:00.000000000 -0600
+@@ -3126,7 +3126,6 @@ class CT_InitDeclarator : public CT_Decl
+ public:
+ /** Constructor.
+ * \param d The declarator.
+- * \param e Optional extension list.
+ * \param i The initializer. */
+ CT_InitDeclarator (CTree *d, CTree *i = 0) {
+ AddSon (sons[0], d); AddSon (sons[1], i);
+--- ./aspectc++/Puma/src/parser/Syntax.h.orig 2012-04-13 08:47:25.000000000 -0600
++++ ./aspectc++/Puma/src/parser/Syntax.h 2013-05-28 20:00:00.000000000 -0600
+@@ -191,8 +191,8 @@ public:
+ template <class T> bool seq (bool (T::*rule)());
+ /** Parse a sequence of the given grammar rule by calling RULE::check() in a loop.
+ * \param s A pointer to the syntax object on which the rule should be executed
+- * \param SYNTAX The type of syntax
+- * \param RULE The class that represents the grammar rule
++ * \tparam SYNTAX The type of syntax
++ * \tparam RULE The class that represents the grammar rule
+ * \return True if parsed successfully. */
+ template <typename SYNTAX, typename RULE> static bool seq (SYNTAX &s);
+ /** Parse a sequence of rule-separator pairs.
+@@ -221,8 +221,8 @@ public:
+ template <class T> bool list (bool (T::*rule)(), int* separators, bool trailing_separator = false);
+ /** Parse a sequence of rule-separator pairs by calling RULE::check() in a loop.
+ * \param s A pointer to the syntax object on which the rule should be executed
+- * \param SYNTAX The type of syntax
+- * \param RULE The class that represents the grammar rule
++ * \tparam SYNTAX The type of syntax
++ * \tparam RULE The class that represents the grammar rule
+ * \param sep The separator token
+ * \param trailing_sep True if a trailing separator token is allowed.
+ * \return True if parsed successfully. */
+@@ -230,8 +230,8 @@ public:
+ static bool list (SYNTAX &s, int sep, bool trailing_sep = false);
+ /** Parse a sequence of rule-separator pairs by calling RULE::check() in a loop.
+ * \param s A pointer to the syntax object on which the rule should be executed
+- * \param SYNTAX The type of syntax
+- * \param RULE The class that represents the grammar rule
++ * \tparam SYNTAX The type of syntax
++ * \tparam RULE The class that represents the grammar rule
+ * \param separators The separator tokens
+ * \param trailing_sep True if a trailing separator token is allowed.
+ * \return True if parsed successfully. */
+@@ -246,8 +246,8 @@ public:
+ * \return False if at EOF or a finish_token is read, true otherwise. */
+ template <class T> bool catch_error (bool (T::*rule)(), const char* msg, int* finish_tokens, int* skip_tokens);
+ /** Parse a grammar rule automatically catching parse errors.
+- * \param SYNTAX The type of syntax
+- * \param RULE The class that represents the grammar rule
++ * \tparam SYNTAX The type of syntax
++ * \tparam RULE The class that represents the grammar rule
+ * \param s A pointer to the syntax object on which the rule should be executed
+ * \param msg The error message to show if the rule fails.
+ * \param finish_tokens Set of token types that abort parsing the rule.
+@@ -257,9 +257,9 @@ public:
+ template <class SYNTAX, class RULE>
+ static bool catch_error (SYNTAX &s, const char *msg, int *finish_tokens, int *skip_tokens);
+ /** First parse rule1 and if that rule fails discard all errors and parse the rule2.
+- * \param SYNTAX The type of syntax
+- * \param RULE1 The class that represents the first grammar rule
+- * \param RULE2 The class that represents the second grammar rule
++ * \tparam SYNTAX The type of syntax
++ * \tparam RULE1 The class that represents the first grammar rule
++ * \tparam RULE2 The class that represents the second grammar rule
+ * \param s The syntax object on which the rules should be executed */
+ template <class RULE1, class RULE2, class SYNTAX>
+ static bool ambiguous (SYNTAX &s);
diff --git a/libpuma-lexertl.patch b/libpuma-lexertl.patch
new file mode 100644
index 0000000..363c8cb
--- /dev/null
+++ b/libpuma-lexertl.patch
@@ -0,0 +1,2165 @@
+--- ./aspectc++/AspectC++/ACModel/MatchName.cc.orig 2013-07-06 09:42:17.000000000 -0600
++++ ./aspectc++/AspectC++/ACModel/MatchName.cc 2014-08-21 18:00:00.000000000 -0600
+@@ -69,7 +69,7 @@ bool MatchName::MRegComp::matches (const
+ string input (name);
+ string::const_iterator iter = input.begin ();
+ string::const_iterator end = input.end ();
+- lexertl::match_results results (iter, end);
++ lexertl::smatch results (iter, end);
+ try {
+ lexertl::lookup (_compiled, results);
+ }
+--- ./aspectc++/AspectC++/PointCutExprParser.cc.orig 2013-04-03 07:25:28.000000000 -0600
++++ ./aspectc++/AspectC++/PointCutExprParser.cc 2014-08-21 18:00:00.000000000 -0600
+@@ -92,7 +92,7 @@ PointCutExpr *PointCutExprParser::parse
+ PointCutSearcher &searcher) {
+ string::const_iterator iter = input.begin ();
+ string::const_iterator end = input.end ();
+- lexertl::match_results results (iter, end);
++ lexertl::smatch results (iter, end);
+
+ lexertl::lookup (state_machine_, results);
+ PointCutExpr *result = parse_or_expr (results, searcher);
+@@ -103,7 +103,7 @@ PointCutExpr *PointCutExprParser::parse
+ return result;
+ }
+
+-PointCutExpr *PointCutExprParser::parse_or_expr (lexertl::match_results &results,
++PointCutExpr *PointCutExprParser::parse_or_expr (lexertl::smatch &results,
+ PointCutSearcher &searcher) {
+
+ PointCutExpr *result = parse_and_expr (results, searcher);
+@@ -116,7 +116,7 @@ PointCutExpr *PointCutExprParser::parse_
+ return result;
+ }
+
+-PointCutExpr *PointCutExprParser::parse_and_expr (lexertl::match_results &results,
++PointCutExpr *PointCutExprParser::parse_and_expr (lexertl::smatch &results,
+ PointCutSearcher &searcher) {
+
+ PointCutExpr *result = parse_unary_expr (results, searcher);
+@@ -129,7 +129,7 @@ PointCutExpr *PointCutExprParser::parse_
+ return result;
+ }
+
+-PointCutExpr *PointCutExprParser::parse_unary_expr (lexertl::match_results &results,
++PointCutExpr *PointCutExprParser::parse_unary_expr (lexertl::smatch &results,
+ PointCutSearcher &searcher) {
+
+ PointCutExpr *result = parse_primary_expr (results, searcher);
+@@ -210,7 +210,7 @@ PointCutExpr *PointCutExprParser::parse_
+ return result;
+ }
+
+-PointCutExpr *PointCutExprParser::parse_primary_expr (lexertl::match_results &results,
++PointCutExpr *PointCutExprParser::parse_primary_expr (lexertl::smatch &results,
+ PointCutSearcher &searcher) {
+
+ PointCutExpr *result = 0;
+--- ./aspectc++/AspectC++/PointCutExprParser.h.orig 2013-03-17 12:43:09.000000000 -0600
++++ ./aspectc++/AspectC++/PointCutExprParser.h 2014-08-21 18:00:00.000000000 -0600
+@@ -34,10 +34,10 @@ class PointCutExprParser {
+
+ // private constructor; this is a singleton
+ PointCutExprParser ();
+- PointCutExpr *parse_or_expr (lexertl::match_results &, PointCutSearcher &searcher);
+- PointCutExpr *parse_and_expr (lexertl::match_results &, PointCutSearcher &searcher);
+- PointCutExpr *parse_unary_expr (lexertl::match_results &, PointCutSearcher &searcher);
+- PointCutExpr *parse_primary_expr (lexertl::match_results &, PointCutSearcher &searcher);
++ PointCutExpr *parse_or_expr (lexertl::smatch &, PointCutSearcher &searcher);
++ PointCutExpr *parse_and_expr (lexertl::smatch &, PointCutSearcher &searcher);
++ PointCutExpr *parse_unary_expr (lexertl::smatch &, PointCutSearcher &searcher);
++ PointCutExpr *parse_primary_expr (lexertl::smatch &, PointCutSearcher &searcher);
+
+ public:
+ static PointCutExprParser *instance () {
+--- ./aspectc++/Puma/gen-release/step1/inc/Puma/CLexerBuffer.h.orig 2012-02-14 07:10:56.000000000 -0700
++++ ./aspectc++/Puma/gen-release/step1/inc/Puma/CLexerBuffer.h 2014-07-29 21:00:00.000000000 -0600
+@@ -59,6 +59,12 @@ public:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+--- ./aspectc++/Puma/gen-release/step1/inc/Puma/CLexer.h.orig 2013-06-09 09:43:16.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step1/inc/Puma/CLexer.h 2014-08-18 21:00:00.000000000 -0600
+@@ -70,7 +70,7 @@ public:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step1/inc/Puma/LexerBuffer.h.orig 2012-02-14 07:48:59.000000000 -0700
++++ ./aspectc++/Puma/gen-release/step1/inc/Puma/LexerBuffer.h 2014-07-29 21:00:00.000000000 -0600
+@@ -55,7 +55,7 @@ public:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+--- ./aspectc++/Puma/gen-release/step1/inc/Puma/PreExprLexer.h.orig 2012-01-14 14:27:22.000000000 -0700
++++ ./aspectc++/Puma/gen-release/step1/inc/Puma/PreExprLexer.h 2014-08-18 21:00:00.000000000 -0600
+@@ -57,7 +57,7 @@ public:
+ PreExprLexer &_lexer;
+ LexerBuffer::ConstIterator _iter;
+ LexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<LexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<LexerBuffer::ConstIterator, std::size_t> _results;
+ bool _error;
+
+ public:
+--- ./aspectc++/Puma/gen-release/step1/src/RegComp.cc.orig 2012-01-04 07:35:06.000000000 -0700
++++ ./aspectc++/Puma/gen-release/step1/src/RegComp.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -65,7 +65,7 @@ bool RegComp::match (const string &str /
+ string input (str);
+ string::const_iterator iter = input.begin ();
+ string::const_iterator end = input.end ();
+- lexertl::match_results results (iter, end);
++ lexertl::smatch results (iter, end);
+ try {
+ lexertl::lookup (_sm, results);
+ }
+--- ./aspectc++/Puma/gen-release/step2/inc/Puma/CLexerBuffer.h.orig 2013-10-03 16:04:50.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/inc/Puma/CLexerBuffer.h 2014-07-29 21:00:00.000000000 -0600
+@@ -174,6 +174,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+--- ./aspectc++/Puma/gen-release/step2/inc/Puma/CLexer.h.orig 2013-10-03 16:04:50.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/inc/Puma/CLexer.h 2014-08-18 21:00:00.000000000 -0600
+@@ -250,7 +250,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/inc/Puma/LexerBuffer.h.orig 2013-10-03 16:04:50.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/inc/Puma/LexerBuffer.h 2014-07-29 21:00:00.000000000 -0600
+@@ -170,7 +170,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+--- ./aspectc++/Puma/gen-release/step2/inc/Puma/PreExprLexer.h.orig 2013-10-03 16:04:50.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/inc/Puma/PreExprLexer.h 2014-08-18 21:00:00.000000000 -0600
+@@ -172,7 +172,7 @@ private:
+ PreExprLexer &_lexer;
+ LexerBuffer::ConstIterator _iter;
+ LexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<LexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<LexerBuffer::ConstIterator, std::size_t> _results;
+ bool _error;
+
+ public:
+--- ./aspectc++/Puma/gen-release/step2/src/CBuilder.cc.orig 2013-10-03 16:02:34.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CBuilder.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -77927,7 +77927,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -78065,6 +78065,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -78278,7 +78284,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -97582,7 +97588,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -98000,7 +98006,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -98523,7 +98529,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -162755,7 +162761,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CCBuilder.cc.orig 2013-10-03 16:01:17.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CCBuilder.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -78098,7 +78098,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -78236,6 +78236,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -78449,7 +78455,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -98356,7 +98362,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -98774,7 +98780,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -99297,7 +99303,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -179106,7 +179112,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CCLexer.cc.orig 2013-10-03 16:01:09.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CCLexer.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -3363,7 +3363,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -3501,6 +3501,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -3714,7 +3720,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -5922,7 +5928,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -8529,7 +8535,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -10122,7 +10128,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CCNameLookup.cc.orig 2013-10-03 16:01:26.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CCNameLookup.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -14829,7 +14829,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -14967,6 +14967,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -15180,7 +15186,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -15598,7 +15604,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -16121,7 +16127,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -65220,7 +65226,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -105150,7 +105156,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CCSemantic.cc.orig 2013-10-03 16:01:54.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CCSemantic.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -108765,7 +108765,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -108903,6 +108903,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -109116,7 +109122,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -126687,7 +126693,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -127105,7 +127111,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -127628,7 +127634,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -308690,7 +308696,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CCSemExpr.cc.orig 2013-10-03 16:01:35.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CCSemExpr.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -24553,7 +24553,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -24691,6 +24691,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -24904,7 +24910,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -25322,7 +25328,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -25845,7 +25851,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -108925,7 +108931,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -135397,7 +135403,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CCSemVisitor.cc.orig 2013-10-03 16:01:44.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CCSemVisitor.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -52452,7 +52452,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -52590,6 +52590,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -52803,7 +52809,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -55292,7 +55298,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -55722,7 +55728,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -57315,7 +57321,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -84482,7 +84488,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CCSyntax.cc.orig 2013-10-03 16:02:05.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CCSyntax.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -79894,7 +79894,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -80032,6 +80032,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -80245,7 +80251,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -97816,7 +97822,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -98234,7 +98240,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -98757,7 +98763,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -217611,7 +217617,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CFunctionInfo.cc.orig 2013-10-03 16:04:17.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CFunctionInfo.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -27537,7 +27537,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -27675,6 +27675,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -27888,7 +27894,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -28306,7 +28312,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -28829,7 +28835,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -63602,7 +63608,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -103422,7 +103428,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CLexer.cc.orig 2013-10-03 16:01:02.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CLexer.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -3290,7 +3290,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -3428,6 +3428,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -3641,7 +3647,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -5914,7 +5920,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -8399,7 +8405,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -8829,7 +8835,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -10422,7 +10428,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CPrintVisitor.cc.orig 2013-10-03 16:03:44.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CPrintVisitor.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -24736,7 +24736,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -24874,6 +24874,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -25087,7 +25093,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -27576,7 +27582,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -28006,7 +28012,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -29599,7 +29605,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -70080,7 +70086,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CProject.cc.orig 2013-10-03 16:03:36.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CProject.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -5847,7 +5847,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -5985,6 +5985,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -6198,7 +6204,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -6616,7 +6622,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -7139,7 +7145,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -16381,7 +16387,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -60562,7 +60568,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CScanner.cc.orig 2013-10-03 16:00:55.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CScanner.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -5641,7 +5641,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -5779,6 +5779,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -5992,7 +5998,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -6410,7 +6416,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -6933,7 +6939,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -11028,7 +11034,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CSemantic.cc.orig 2013-10-03 16:03:11.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CSemantic.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -21706,7 +21706,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -21844,6 +21844,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -22057,7 +22063,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -22475,7 +22481,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -22998,7 +23004,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -94611,7 +94617,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -178849,7 +178855,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CSemDatabase.cc.orig 2013-10-03 16:04:09.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CSemDatabase.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -9146,7 +9146,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -9284,6 +9284,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -9497,7 +9503,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -9915,7 +9921,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -10438,7 +10444,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -54129,7 +54135,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -93839,7 +93845,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CSemDeclSpecs.cc.orig 2013-10-03 16:03:28.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CSemDeclSpecs.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -51153,7 +51153,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -51291,6 +51291,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -51504,7 +51510,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -53993,7 +53999,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -54423,7 +54429,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -56016,7 +56022,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -71306,7 +71312,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CSemExpr.cc.orig 2013-10-03 16:02:52.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CSemExpr.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -68043,7 +68043,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -68181,6 +68181,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -68394,7 +68400,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -70883,7 +70889,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -71313,7 +71319,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -72906,7 +72912,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -87647,7 +87653,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CSemVisitor.cc.orig 2013-10-03 16:03:20.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CSemVisitor.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -65846,7 +65846,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -65984,6 +65984,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -66197,7 +66203,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -68686,7 +68692,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -69116,7 +69122,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -70709,7 +70715,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -85450,7 +85456,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CSyntax.cc.orig 2013-10-03 16:03:02.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CSyntax.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -79438,7 +79438,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -79576,6 +79576,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -79789,7 +79795,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -97360,7 +97366,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -97778,7 +97784,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -98301,7 +98307,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -171962,7 +171968,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/CTree.cc.orig 2013-10-03 16:02:43.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/CTree.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -90656,7 +90656,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -90794,6 +90794,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -91007,7 +91013,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -93496,7 +93502,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -93926,7 +93932,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -95519,7 +95525,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -122115,7 +122121,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/InstantiationParser.cc.orig 2013-10-03 16:02:15.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/InstantiationParser.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -26807,7 +26807,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -26945,6 +26945,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -27158,7 +27164,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -27576,7 +27582,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -28099,7 +28105,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -104066,7 +104072,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -245259,7 +245265,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/InstantiationSyntax.cc.orig 2013-10-03 16:02:25.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/InstantiationSyntax.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -79918,7 +79918,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -80056,6 +80056,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -80269,7 +80275,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -97840,7 +97846,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -98258,7 +98264,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -98781,7 +98787,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -230343,7 +230349,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/Parser.cc.orig 2013-10-03 16:04:00.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/Parser.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -26784,7 +26784,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -26922,6 +26922,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -27135,7 +27141,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -27553,7 +27559,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -28076,7 +28082,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -54909,7 +54915,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -94861,7 +94867,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/PreExprParser.cc.orig 2013-10-03 16:04:32.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/PreExprParser.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -2130,7 +2130,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -2336,7 +2336,7 @@ private:
+ PreExprLexer &_lexer;
+ LexerBuffer::ConstIterator _iter;
+ LexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<LexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<LexerBuffer::ConstIterator, std::size_t> _results;
+ bool _error;
+
+ public:
+--- ./aspectc++/Puma/gen-release/step2/src/PreFileIncluder.cc.orig 2013-10-03 16:00:32.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/PreFileIncluder.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -6073,7 +6073,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -6211,6 +6211,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -6424,7 +6430,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -6842,7 +6848,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -7365,7 +7371,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -15218,7 +15224,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -62091,7 +62097,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/PreParser.cc.orig 2013-10-03 16:04:40.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/PreParser.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -5799,7 +5799,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -5937,6 +5937,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -6150,7 +6156,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -6568,7 +6574,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -7091,7 +7097,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -20723,7 +20729,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -67486,7 +67492,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/PreprocessorParser.cc.orig 2013-10-03 16:00:40.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/PreprocessorParser.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -9191,7 +9191,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -9329,6 +9329,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -9542,7 +9548,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -9960,7 +9966,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -10483,7 +10489,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -17008,7 +17014,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -63881,7 +63887,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/gen-release/step2/src/RegComp.cc.orig 2012-01-04 07:35:06.000000000 -0700
++++ ./aspectc++/Puma/gen-release/step2/src/RegComp.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -65,7 +65,7 @@ bool RegComp::match (const string &str /
+ string input (str);
+ string::const_iterator iter = input.begin ();
+ string::const_iterator end = input.end ();
+- lexertl::match_results results (iter, end);
++ lexertl::smatch results (iter, end);
+ try {
+ lexertl::lookup (_sm, results);
+ }
+--- ./aspectc++/Puma/gen-release/step2/src/Syntax.cc.orig 2013-10-03 16:03:52.000000000 -0600
++++ ./aspectc++/Puma/gen-release/step2/src/Syntax.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -39002,7 +39002,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+@@ -39140,6 +39140,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+@@ -39353,7 +39359,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -39771,7 +39777,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -40294,7 +40300,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -63310,7 +63316,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+@@ -103536,7 +103542,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/include/Puma/CLexerBuffer.h.orig 2013-10-03 16:04:50.000000000 -0600
++++ ./aspectc++/Puma/include/Puma/CLexerBuffer.h 2014-07-29 21:00:00.000000000 -0600
+@@ -174,6 +174,12 @@ private:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+--- ./aspectc++/Puma/include/Puma/CLexer.h.orig 2013-10-03 16:04:50.000000000 -0600
++++ ./aspectc++/Puma/include/Puma/CLexer.h 2014-08-18 21:00:00.000000000 -0600
+@@ -250,7 +250,7 @@ private:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/include/Puma/LexerBuffer.h.orig 2013-10-03 16:04:50.000000000 -0600
++++ ./aspectc++/Puma/include/Puma/LexerBuffer.h 2014-07-29 21:00:00.000000000 -0600
+@@ -170,7 +170,7 @@ private:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
+--- ./aspectc++/Puma/include/Puma/PreExprLexer.h.orig 2013-10-03 16:04:50.000000000 -0600
++++ ./aspectc++/Puma/include/Puma/PreExprLexer.h 2014-08-18 21:00:00.000000000 -0600
+@@ -172,7 +172,7 @@ private:
+ PreExprLexer &_lexer;
+ LexerBuffer::ConstIterator _iter;
+ LexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<LexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<LexerBuffer::ConstIterator, std::size_t> _results;
+ bool _error;
+
+ public:
+--- ./aspectc++/Puma/src/basics/RegComp.cc.orig 2012-01-04 07:35:06.000000000 -0700
++++ ./aspectc++/Puma/src/basics/RegComp.cc 2014-08-18 21:00:00.000000000 -0600
+@@ -65,7 +65,7 @@ bool RegComp::match (const string &str /
+ string input (str);
+ string::const_iterator iter = input.begin ();
+ string::const_iterator end = input.end ();
+- lexertl::match_results results (iter, end);
++ lexertl::smatch results (iter, end);
+ try {
+ lexertl::lookup (_sm, results);
+ }
+--- ./aspectc++/Puma/src/cpp/PreExprLexer.h.orig 2012-01-14 14:27:22.000000000 -0700
++++ ./aspectc++/Puma/src/cpp/PreExprLexer.h 2014-08-18 21:00:00.000000000 -0600
+@@ -57,7 +57,7 @@ public:
+ PreExprLexer &_lexer;
+ LexerBuffer::ConstIterator _iter;
+ LexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<LexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<LexerBuffer::ConstIterator, std::size_t> _results;
+ bool _error;
+
+ public:
+--- ./aspectc++/Puma/src/scanner/CLexerBuffer.h.orig 2012-02-14 07:10:56.000000000 -0700
++++ ./aspectc++/Puma/src/scanner/CLexerBuffer.h 2014-07-29 21:00:00.000000000 -0600
+@@ -59,6 +59,12 @@ public:
+ LexerBuffer::ConstIterator (ptr), _continuations (0), _lines (0) {}
+ ConstIterator (const ConstIterator &r) :
+ LexerBuffer::ConstIterator (r), _continuations (r._continuations), _lines (r._lines) {}
++ ConstIterator &operator = (const ConstIterator &r) {
++ _ptr = r._ptr;
++ _continuations = r._continuations;
++ _lines = r._lines;
++ return *this;
++ }
+ ConstIterator &operator ++ () { next (); return *this; }
+ ConstIterator operator ++ (int) { ConstIterator res(*this); next (); return res; }
+ ConstIterator &adjust () { skip_nl (); return *this; }
+--- ./aspectc++/Puma/src/scanner/CLexer.h.orig 2013-06-09 09:43:16.000000000 -0600
++++ ./aspectc++/Puma/src/scanner/CLexer.h 2014-08-18 21:00:00.000000000 -0600
+@@ -70,7 +70,7 @@ public:
+ CLexerBuffer::ConstIterator _start;
+ CLexerBuffer::ConstIterator _iter;
+ CLexerBuffer::ConstIterator _end;
+- lexertl::basic_match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
++ lexertl::match_results<CLexerBuffer::ConstIterator, std::size_t> _results;
+ enum { LM_NORMAL, LM_PRE, LM_DIR } _line_mode;
+ bool _error;
+ int _number;
+--- ./aspectc++/Puma/src/scanner/LexerBuffer.h.orig 2012-02-14 07:48:59.000000000 -0700
++++ ./aspectc++/Puma/src/scanner/LexerBuffer.h 2014-07-29 21:00:00.000000000 -0600
+@@ -55,7 +55,7 @@ public:
+
+ ConstIterator (const char *ptr = 0) : _ptr (ptr) {}
+ ConstIterator (const ConstIterator &r) : _ptr (r._ptr) {}
+- ConstIterator &operator = (ConstIterator &r) { _ptr = r._ptr; return *this; }
++ ConstIterator &operator = (const ConstIterator &r) { _ptr = r._ptr; return *this; }
+ bool operator == (const ConstIterator &r) const { return _ptr == r._ptr; }
+ bool operator != (const ConstIterator &r) const { return _ptr != r._ptr; }
+ ConstIterator &operator ++ () { _ptr++; return *this; }
diff --git a/libpuma-shared.patch b/libpuma-shared.patch
new file mode 100644
index 0000000..c3a2801
--- /dev/null
+++ b/libpuma-shared.patch
@@ -0,0 +1,37 @@
+--- ./aspectc++/Ag++/Makefile.orig 2012-02-17 05:39:52.000000000 -0700
++++ ./aspectc++/Ag++/Makefile 2014-08-21 21:00:00.000000000 -0600
+@@ -33,7 +33,7 @@ ifneq ($(_TARGET),macosx)
+ LDFLAGS += -static
+ endif
+
+-LDFLAGS += -Wl,-Bstatic -L$(PUMA)/lib/$(TARGET) -lPuma
++LDFLAGS += -L$(PUMA)/lib/$(TARGET) -lPuma
+
+ ifneq ($(SHARED),)
+ LDFLAGS += -Wl,-Bdynamic
+--- ./aspectc++/AspectC++/Makefile.orig 2013-10-03 11:35:54.000000000 -0600
++++ ./aspectc++/AspectC++/Makefile 2014-08-21 21:00:00.000000000 -0600
+@@ -27,7 +27,7 @@ ifneq ($(_TARGET),macosx)
+ ifeq ($(SHARED),)
+ LDFLAGS += -static
+ endif
+- LDFLAGS += -Wl,-Bstatic -L$(PUMA)/lib/$(TARGET) -lPuma
++ LDFLAGS += -L$(PUMA)/lib/$(TARGET) -lPuma
+ ifneq ($(SHARED),)
+ LDFLAGS += -Wl,-Bdynamic
+ endif
+--- ./aspectc++/Puma/src/compile.mk.orig 2012-01-04 07:35:06.000000000 -0700
++++ ./aspectc++/Puma/src/compile.mk 2014-08-21 18:00:00.000000000 -0600
+@@ -27,10 +27,10 @@ DEPFILES := $(addprefix $(DEPDIR)/, $(
+
+ LIBRARY := $(LIBDIR)/libPuma.a
+ # disable building of shared library, we link statically
+-# SHARED := $(LIBDIR)/libPuma.so
++SHARED := $(LIBDIR)/libPuma.so
+ LIBRARIES := $(LIBRARY)
+ ifeq ($(_TARGET),linux)
+-LIBRARIES := $(LIBRARIES) $(SHARED)
++LIBRARIES := $(SHARED)
+ endif
+
+ CPPFLAGS += -I $(EXTDIR) -I $(STEP2)/inc
diff --git a/libpuma-test.patch b/libpuma-test.patch
new file mode 100644
index 0000000..6e8cf0e
--- /dev/null
+++ b/libpuma-test.patch
@@ -0,0 +1,26 @@
+--- ./aspectc++/AspectC++/tests/RepoInvalid/feature.ref.orig 2013-10-01 11:19:54.000000000 -0600
++++ ./aspectc++/AspectC++/tests/RepoInvalid/feature.ref 2014-08-28 22:00:00.000000000 -0600
+@@ -1,3 +1,4 @@
++make[2]: Entering directory '/builddir/build/BUILD/libpuma-1.2/aspectc++/AspectC++/tests/RepoInvalid'
+ Weaving main.cc
+ * Running ac++ 1.2
+ * Handling Translation Unit `main.cc'.
+@@ -16,4 +17,5 @@ Weaving main.cc
+ Aspect ordering ...
+ Updating project repository 'repo.inv'
+ Aborting
++make[2]: Leaving directory '/builddir/build/BUILD/libpuma-1.2/aspectc++/AspectC++/tests/RepoInvalid'
+ error: project repository 'repo.inv' cannot be opened or is invalid
+--- ./aspectc++/AspectC++/tests/RepoVersion/feature.ref.orig 2013-10-01 11:19:54.000000000 -0600
++++ ./aspectc++/AspectC++/tests/RepoVersion/feature.ref 2014-08-28 22:00:00.000000000 -0600
+@@ -1,3 +1,4 @@
++make[2]: Entering directory '/builddir/build/BUILD/libpuma-1.2/aspectc++/AspectC++/tests/RepoVersion'
+ Weaving main.cc
+ * Running ac++ 1.2
+ * Handling Translation Unit `main.cc'.
+@@ -33,4 +34,5 @@ Weaving main.cc
+ * Done
+ Compiling main.acc
+ Linking
++make[2]: Leaving directory '/builddir/build/BUILD/libpuma-1.2/aspectc++/AspectC++/tests/RepoVersion'
+ warning: project file version '0.0.1' differs from ac++ version
diff --git a/libpuma.spec b/libpuma.spec
new file mode 100644
index 0000000..7069548
--- /dev/null
+++ b/libpuma.spec
@@ -0,0 +1,230 @@
+%global gccver %(gcc --version | sed -n 's/gcc (GCC) \\([[:digit:].]*\\).*/\\1/p')
+
+Name: libpuma
+Version: 1.2
+Release: 2%{?dist}
+Summary: Library for parsing and manipulating C/C++ source code
+
+License: GPLv2+
+URL: http://aspectc.org/
+Source0: http://aspectc.org/releases/%{version}/ac-woven-%{version}.tar.gz
+# Man pages from Debian
+Source1: ac++.1
+Source2: ag++.1
+# http://www.aspectc.org/bugzilla/show_bug.cgi?id=519
+Patch0: %{name}-doxygen.patch
+# Fedora-specific: build a shared library instead of a static library.
+Patch1: %{name}-shared.patch
+# Fedora-specific: fix a few tests
+Patch2: %{name}-test.patch
+# Fedora-specific: adapt to the newer lexertl in Fedora.
+Patch3: %{name}-lexertl.patch
+
+BuildRequires: doxygen
+BuildRequires: graphviz
+BuildRequires: lexertl-devel
+BuildRequires: libxml2-devel
+
+# The generated config depends on a specific version of gcc/g++
+Requires: gcc-c++ = %{gccver}
+Requires: libstdc++-devel%{?_isa}
+Requires: glibc-devel%{?_isa}
+
+%description
+PUMA is a library of C++ classes for parsing and manipulating C/C++
+source code. It provides different levels of analyzing source code,
+i.e. lexical, syntactical, and semantical analyses. Additionally, PUMA
+contains its own C preprocessor following the macro language understood
+by the GNU C preprocessor (cpp).
+
+The parsers for C and C++ are based on an extensible recursive descent
+parser architecture that can be easily adapted for your own needs by
+inheriting from one of the parsers. They are oriented on the ISO/IEC
+standards defined in ISO/IEC 9899:1999(E) and ISO/IEC 14882:1998(E) but
+also supporting a list of extensions to the C and C++ languages. The
+information about the source code being analyzed is organized in an
+attributed syntax tree referring to a separate structure of semantic
+information.
+
+For the purpose of manipulating source code PUMA provides a syntax based
+mechanism for searching code structures. Manipulations on the source
+code can be collected and validated before executing them in a single
+transaction.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+Header files and library links for developing applications that use
+AspectC++.
+
+%package doc
+Summary: Documentation for %{name}
+BuildArch: noarch
+
+%description doc
+User and developer documentation for %{name}.
+
+%package -n aspectc++
+Summary: Compiler for C/C++ with aspect-oriented extensions
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description -n aspectc++
+AspectC++ extends the AspectJ approach to object-oriented programming to
+the C and C++ languages. This package contains a compiler for
+extensions to the C and C++ languages that recognizees a set of aspect-
+oriented extensions.
+
+%prep
+%setup -q -c
+%patch0
+%patch1
+%patch2
+%patch3
+
+# Remove prebuilt objects
+rm -f aspectc++/Puma/tools/lemon/lemon
+
+# Show compiler flags
+sed -i 's/@\$(C/$(C/' aspectc++/Puma/src/compile.mk \
+ aspectc++/AspectC++/Makefile aspectc++/AspectC++/ACModel/Makefile \
+ aspectc++/Ag++/Makefile
+
+# Fix an install directory
+if [ "%{_libdir}" = "%{_prefix}/lib64" ]; then
+ sed -i 's,\$(PREFIX)/lib,$(PREFIX)/lib64,' aspectc++/Puma/Makefile
+fi
+
+# Use the system lexertl instead of the bundled version
+rm -fr aspectc++/Puma/extern/lexertl
+cp -a %{_includedir}/lexertl aspectc++/Puma/extern/lexertl
+
+# Pass build flags to the linker, and set an soname
+sed "s|-shared|& %{optflags} $RPM_LD_FLAGS -Wl,-h,libPuma.so.0 -Wl,--as-needed|" \
+ -i aspectc++/Puma/src/compile.mk
+
+# Change the default location of the config file, for multilib builds
+sed -i 's,/etc/puma.config,%{_libdir}/%{name}/puma.config,' \
+ aspectc++/Puma/gen-release/step1/src/Config.cc \
+ aspectc++/Puma/gen-release/step2/src/Config.cc \
+ aspectc++/Puma/src/common/Config.cc
+
+# Fix a test that is broken on 64-bit systems
+%if %{__isa_bits} == 64
+sed -i 's/unsigned int/unsigned long int/' \
+ aspectc++/AspectC++/tests/ExecAdviceNewDelete/feature.ref
+%endif
+
+# Do the initial build of the prewoven sources in a separate build dir
+cp -a aspectc++ aspectc++.prewoven
+
+%build
+# Phase 1: bootstrap by building the tools with the prewoven sources.
+pushd aspectc++.prewoven
+
+# Support __int128 if gcc supports it
+if gcc -dM -E - <<<'' | grep -Fq __SIZEOF_INT128__; then
+ export AC_OPTFLAGS=--gnu-int128
+fi
+BUILDFLAGS="%{optflags} -fsigned-char -Wno-unused-local-typedefs $RPM_LD_FLAGS"
+
+# Build the bootstrap binaries
+make %{?_smp_mflags} -C Puma compile CFLAGS="$BUILDFLAGS -fPIC"
+ln -s libPuma.so Puma/lib/linux-release/libPuma.so.0
+make %{?_smp_mflags} -C AspectC++ CFLAGS="$BUILDFLAGS" SHARED=1
+make %{?_smp_mflags} -C Ag++ CFLAGS="$BUILDFLAGS" SHARED=1
+
+# Generate a config for the binaries to use
+export LD_LIBRARY_PATH=$PWD/Puma/lib/linux-release
+AspectC++/bin/linux-release/ag++ --gen_config
+export PUMA_CONFIG=$PWD/puma.config
+ACPP=$PWD/AspectC++/bin/linux-release/ac++
+popd
+
+# Phase 2: use the bootstrap tools to do a full build from the unwoven sources
+pushd aspectc++
+
+# Weave Puma
+make %{?_smp_mflags} -C Puma clean
+make %{?_smp_mflags} -C Puma all CFLAGS="$BUILDFLAGS -fPIC" AC=$ACPP
+make %{?_smp_mflags} -C Puma doc CFLAGS="$BUILDFLAGS -fPIC" AC=$ACPP
+ln -s libPuma.so Puma/lib/linux-release/libPuma.so.0
+unset LD_LIBRARY_PATH
+
+# Rebuild ac++ and ag++ with the newly woven Puma
+make %{?_smp_mflags} -C AspectC++ CFLAGS="$BUILDFLAGS" SHARED=1
+make %{?_smp_mflags} -C Ag++ CFLAGS="$BUILDFLAGS" SHARED=1
+popd
+
+%install
+# Install the library
+make -C aspectc++/Puma install PREFIX=%{buildroot}%{_prefix}
+mv %{buildroot}%{_libdir}/libPuma.so %{buildroot}%{_libdir}/libPuma.so.0.0.0
+rm -f %{buildroot}%{_libdir}/libPuma.so.0
+ln -s libPuma.so.0.0.0 %{buildroot}%{_libdir}/libPuma.so.0
+ln -s libPuma.so.0 %{buildroot}%{_libdir}/libPuma.so
+
+# Install the binaries
+mkdir -p %{buildroot}%{_bindir}
+cp -p aspectc++/AspectC++/bin/linux-release/* %{buildroot}%{_bindir}
+cp -p aspectc++/Ag++/bin/linux-release/* %{buildroot}%{_bindir}
+
+# Install the man pages
+mkdir -p %{buildroot}%{_mandir}/man1
+cp -p %{SOURCE1} %{SOURCE2} %{buildroot}%{_mandir}/man1
+
+# Generate the default config
+mkdir -p %{buildroot}%{_libdir}/%{name}
+pushd %{buildroot}%{_libdir}/%{name}
+LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/ag++ --gen_config
+chmod 0644 puma.config
+popd
+
+# Fix permissions
+chmod 0755 %{buildroot}%{_libdir}/libPuma.so.0.0.0 %{buildroot}%{_bindir}/*
+
+%check
+export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
+export PUMA_CONFIG=%{buildroot}%{_libdir}/%{name}/puma.config
+make -C aspectc++/Puma test
+make -C aspectc++/AspectC++ test SHARED=1
+make -C aspectc++/Ag++ test SHARED=1
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%doc aspectc++/Puma/README
+%license aspectc++/Puma/COPYING
+%{_libdir}/libPuma.so.*
+%{_libdir}/%{name}/
+
+%files devel
+%{_includedir}/Puma/
+%{_libdir}/libPuma.so
+
+%files doc
+%doc aspectc++/Puma/doc/RefMan/html aspectc++/Puma/examples
+%doc aspectc++/Puma/doc/UsersManual/UsersManual.pdf
+%doc aspectc++/AspectC++/doc/CompilerManual/CompilerManual.pdf
+%doc aspectc++/AspectC++/doc/LanguageReference/*.pdf
+%doc aspectc++/AspectC++/doc/NoE_ExecModelSurvey/ac++exec-survey.pdf
+%doc aspectc++/AspectC++/doc/NoE_ShortSurvey/ac++lang-survey.pdf
+%doc aspectc++/AspectC++/doc/QuickRef/ac++quickref.pdf
+
+%files -n aspectc++
+%doc aspectc++/README
+%{_bindir}/*
+%{_mandir}/man1/*
+
+%changelog
+* Wed Oct 15 2014 Jerry James <loganjerry at gmail.com> - 1.2-2
+- Do not fix the FSF's address in the license file (or anywhere else)
+- Drop -doc subpackage dependencies
+- Add dependencies from main package to libstdc++-devel and glibc-devel
+- Move puma.config to the main package, and put it in _libdir/libpuma
+
+* Fri Aug 29 2014 Jerry James <loganjerry at gmail.com> - 1.2-1
+- Initial RPM
diff --git a/sources b/sources
index e69de29..f7a7223 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+b43cf409efd773395feba296be327773 ac-woven-1.2.tar.gz
More information about the scm-commits
mailing list