summaryrefslogtreecommitdiff
path: root/libfrontend-elements
diff options
context:
space:
mode:
Diffstat (limited to 'libfrontend-elements')
-rw-r--r--libfrontend-elements/GPLv2340
-rw-r--r--libfrontend-elements/INSTALL25
-rw-r--r--libfrontend-elements/LICENSE25
-rw-r--r--libfrontend-elements/NEWS40
-rw-r--r--libfrontend-elements/README14
-rw-r--r--libfrontend-elements/build/bootstrap.make46
-rw-r--r--libfrontend-elements/build/cxx/configuration-dynamic.make14
-rw-r--r--libfrontend-elements/build/cxx/gnu/configuration-dynamic.make8
-rw-r--r--libfrontend-elements/build/export/libfrontend-elements/stub.make10
-rw-r--r--libfrontend-elements/build/import/libcult/LICENSE340
-rw-r--r--libfrontend-elements/build/import/libcult/configuration-dynamic.make4
-rw-r--r--libfrontend-elements/build/import/libcult/configuration-rules.make15
-rwxr-xr-xlibfrontend-elements/build/import/libcult/configure55
-rw-r--r--libfrontend-elements/build/import/libcult/stub.make30
l---------libfrontend-elements/build/import/libfrontend-elements/LICENSE1
-rw-r--r--libfrontend-elements/build/import/libfrontend-elements/configuration-rules.make15
-rwxr-xr-xlibfrontend-elements/build/import/libfrontend-elements/configure55
-rw-r--r--libfrontend-elements/build/import/libfrontend-elements/stub.make30
-rw-r--r--libfrontend-elements/build/ld/configuration-lib-dynamic.make13
-rw-r--r--libfrontend-elements/documentation/DIAGNOSTIC4
-rw-r--r--libfrontend-elements/documentation/TODO1
-rw-r--r--libfrontend-elements/documentation/default.css160
-rw-r--r--libfrontend-elements/documentation/index.xhtml77
-rw-r--r--libfrontend-elements/examples/diagnostic/driver.cxx29
-rw-r--r--libfrontend-elements/examples/diagnostic/makefile48
-rw-r--r--libfrontend-elements/examples/makefile16
-rw-r--r--libfrontend-elements/frontend-elements/context.cxx11
-rw-r--r--libfrontend-elements/frontend-elements/context.hxx133
-rw-r--r--libfrontend-elements/frontend-elements/diagnostic.cxx41
-rw-r--r--libfrontend-elements/frontend-elements/diagnostic.hxx364
-rw-r--r--libfrontend-elements/frontend-elements/diagnostic.ixx21
-rw-r--r--libfrontend-elements/frontend-elements/diagnostic.txx9
-rw-r--r--libfrontend-elements/frontend-elements/makefile63
-rw-r--r--libfrontend-elements/frontend-elements/token-stream.cxx10
-rw-r--r--libfrontend-elements/frontend-elements/token-stream.hxx99
-rw-r--r--libfrontend-elements/frontend-elements/traversal.cxx10
-rw-r--r--libfrontend-elements/frontend-elements/traversal.hxx293
-rw-r--r--libfrontend-elements/frontend-elements/traversal.ixx8
-rw-r--r--libfrontend-elements/frontend-elements/traversal.txx135
-rw-r--r--libfrontend-elements/frontend-elements/types.hxx16
-rw-r--r--libfrontend-elements/makefile15
-rw-r--r--libfrontend-elements/version1
42 files changed, 0 insertions, 2644 deletions
diff --git a/libfrontend-elements/GPLv2 b/libfrontend-elements/GPLv2
deleted file mode 100644
index 3912109..0000000
--- a/libfrontend-elements/GPLv2
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/libfrontend-elements/INSTALL b/libfrontend-elements/INSTALL
deleted file mode 100644
index 0f8459c..0000000
--- a/libfrontend-elements/INSTALL
+++ /dev/null
@@ -1,25 +0,0 @@
-Prerequisites
-
- build-time:
-
- - build >= 0.3.2 http://www.codesynthesis.com/projects/build/
- - g++ >= 3.4.3 http://gcc.gnu.org
-
- run-time:
-
- - libcult >= 1.4.1 http://kolpackov.net/projects/libcult/
-
-
-Building libfrontend-elements
-
- To build in the source directory simply say `make'. You can also
- build in a separate directory, e.g.,
-
- $ mkdir libfrontend-elements-i686-pc-linux-gnu
- $ cd libfrontend-elements-i686-pc-linux-gnu
- $ make -f ../libfrontend-elements-x.y.z/makefile
-
-
-Installing libfrontend-elements
-
- Not supported in this version.
diff --git a/libfrontend-elements/LICENSE b/libfrontend-elements/LICENSE
deleted file mode 100644
index 3204be4..0000000
--- a/libfrontend-elements/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-In addition, as a special exception, Boris Kolpackov gives permission
-to combine this library with other incompatibly-licensed modules in a
-single program and to distribute such a combination provided that there
-is no use of the functionality implemented by this library, directly
-or indirectly, by such modules. You must obey the GNU General Public
-License version 2 in all respects for all of the code used other than
-such modules. In particular, the resulting program must be licensed
-under a license compatible with the GNU General Public License version
-2. If you modify this copy of the library, you may extend this exception
-to your version of the library, but you are not obligated to do so. If
-you do not wish to do so, delete this exception statement from your
-version.
diff --git a/libfrontend-elements/NEWS b/libfrontend-elements/NEWS
deleted file mode 100644
index 68e3e22..0000000
--- a/libfrontend-elements/NEWS
+++ /dev/null
@@ -1,40 +0,0 @@
-Version 1.1.4
-
- * Add swap() to the context class.
-
-Version 1.1.3
-
- * Add support for libfrontend-elements bundling.
-
-Version 1.1.2
-
- * Add an exception to the licensing terms to allow combining with
- incompatibly-licensed modules in a single program. See the LICENSE
- file for details.
-
-Version 1.1.1
-
- * Fixed a bug in import stubs.
-
- * Got rid of warnings.
-
-Version 1.1.0
-
- * Upgraded to build-0.3.0.
-
-Version 1.0.3
-
- * Added non-const get function to context which returns non-const
- reference.
-
-Version 1.0.2
-
- * Upgraded to build-0.2.0.
-
-Version 1.0.1
-
- * Build system improvements.
-
-Version 1.0.0
-
- * First public release.
diff --git a/libfrontend-elements/README b/libfrontend-elements/README
deleted file mode 100644
index 7db441e..0000000
--- a/libfrontend-elements/README
+++ /dev/null
@@ -1,14 +0,0 @@
-libfrontend-elements is a collection of elementary building blocks
-for implementing compiler frontends in c++.
-
-See the NEWS file for the user-visible changes from the previous release.
-
-See the LICENSE file for distribution conditions.
-
-See the INSTALL file for prerequisites and installation instructions.
-
-See the documentation/index.xhtml file for documentation.
-
-The project page is at http://kolpackov.net/projects/libfrontend-elements/.
-
-Send bug reports or any other feedback to boris@kolpackov.net .
diff --git a/libfrontend-elements/build/bootstrap.make b/libfrontend-elements/build/bootstrap.make
deleted file mode 100644
index cafe739..0000000
--- a/libfrontend-elements/build/bootstrap.make
+++ /dev/null
@@ -1,46 +0,0 @@
-# file : build/bootstrap.make
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-project_name := libfrontend-elements
-
-# First try to include the bundled bootstrap.make if it exist. If that
-# fails, let make search for the external bootstrap.make.
-#
-build := build-0.3
-
--include $(dir $(lastword $(MAKEFILE_LIST)))../../$(build)/bootstrap.make
-
-ifeq ($(patsubst %build/bootstrap.make,,$(lastword $(MAKEFILE_LIST))),)
-include $(build)/bootstrap.make
-endif
-
-# Aliases
-#
-.PHONY: $(out_base)/ \
- $(out_base)/.test \
- $(out_base)/.clean
-
-ifdef %interactive%
-
-.PHONY: test clean
-
-test: $(out_base)/.test
-clean: $(out_base)/.clean
-
-ifneq ($(filter $(.DEFAULT_GOAL),test clean),)
-.DEFAULT_GOAL :=
-endif
-
-endif
-
-# Don't include dependency info for certain targets.
-#
-define include-dep
-$(call -include,$1)
-endef
-
-ifneq ($(filter $(MAKECMDGOALS),clean cleandoc disfigure),)
-include-dep =
-endif
diff --git a/libfrontend-elements/build/cxx/configuration-dynamic.make b/libfrontend-elements/build/cxx/configuration-dynamic.make
deleted file mode 100644
index 568ab40..0000000
--- a/libfrontend-elements/build/cxx/configuration-dynamic.make
+++ /dev/null
@@ -1,14 +0,0 @@
-cxx_id := gnu
-cxx_optimize := n
-cxx_debug := n
-cxx_rpath := n
-cxx_pp_extra_options := $(CPPFLAGS)
-cxx_extra_options := $(CXXFLAGS)
-cxx_ld_extra_options := $(LDFLAGS)
-cxx_extra_libs := $(LIBS)
-
-r := $(shell echo $(LDFLAGS) | sed -e 's/-L *\([^ ]*\)/-L\1/g')
-r := $(patsubst -L%,%,$(filter -L%,$(r)))
-r := $(shell echo $(r) | sed -e 's/ /:/g')
-
-cxx_extra_lib_paths := $(r)
diff --git a/libfrontend-elements/build/cxx/gnu/configuration-dynamic.make b/libfrontend-elements/build/cxx/gnu/configuration-dynamic.make
deleted file mode 100644
index f3fe64d..0000000
--- a/libfrontend-elements/build/cxx/gnu/configuration-dynamic.make
+++ /dev/null
@@ -1,8 +0,0 @@
-ifneq ($(CXX),)
-cxx_gnu := $(CXX)
-else
-cxx_gnu := g++
-endif
-
-cxx_gnu_libraries :=
-cxx_gnu_optimization_options :=
diff --git a/libfrontend-elements/build/export/libfrontend-elements/stub.make b/libfrontend-elements/build/export/libfrontend-elements/stub.make
deleted file mode 100644
index 27c0940..0000000
--- a/libfrontend-elements/build/export/libfrontend-elements/stub.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# file : build/import/libfrontend-elements/stub.make
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-$(call include-once,$(src_root)/frontend-elements/makefile,$(out_root))
-
-$(call export,\
- l: $(out_root)/frontend-elements/frontend-elements.l,\
- cpp-options: $(out_root)/frontend-elements/frontend-elements.l.cpp-options)
diff --git a/libfrontend-elements/build/import/libcult/LICENSE b/libfrontend-elements/build/import/libcult/LICENSE
deleted file mode 100644
index 3912109..0000000
--- a/libfrontend-elements/build/import/libcult/LICENSE
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/libfrontend-elements/build/import/libcult/configuration-dynamic.make b/libfrontend-elements/build/import/libcult/configuration-dynamic.make
deleted file mode 100644
index 73c92bb..0000000
--- a/libfrontend-elements/build/import/libcult/configuration-dynamic.make
+++ /dev/null
@@ -1,4 +0,0 @@
-libcult_installed := n
-src_root := $(abspath $(src_root)/../libcult)
-scf_root := $(src_root)/build
-out_root := $(src_root)
diff --git a/libfrontend-elements/build/import/libcult/configuration-rules.make b/libfrontend-elements/build/import/libcult/configuration-rules.make
deleted file mode 100644
index dc19df4..0000000
--- a/libfrontend-elements/build/import/libcult/configuration-rules.make
+++ /dev/null
@@ -1,15 +0,0 @@
-# file : build/import/libcult/configuration-rules.make
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2009 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-$(dcf_root)/import/libcult/configuration-dynamic.make: | $(dcf_root)/import/libcult/.
- $(call message,,$(scf_root)/import/libcult/configure $@)
-
-ifndef %foreign%
-
-disfigure::
- $(call message,rm $(dcf_root)/import/libcult/configuration-dynamic.make,\
-rm -f $(dcf_root)/import/libcult/configuration-dynamic.make)
-
-endif
diff --git a/libfrontend-elements/build/import/libcult/configure b/libfrontend-elements/build/import/libcult/configure
deleted file mode 100755
index afa4c9c..0000000
--- a/libfrontend-elements/build/import/libcult/configure
+++ /dev/null
@@ -1,55 +0,0 @@
-#! /usr/bin/env bash
-
-# file : build/import/libcult/configure
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2009 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-
-# $1 - out file
-#
-# bld_root - build root
-# project_name - project name
-#
-
-source $bld_root/dialog.bash
-
-
-$echo
-$echo "Configuring external dependency on 'libcult' for '$project_name'."
-$echo
-
-$echo
-$echo "Would you like to configure dependency on the installed "
-$echo "version of 'libcult' as opposed to the development build?"
-$echo
-
-installed=`read_y_n y`
-
-path=
-
-if [ "$installed" = "n" ]; then
-
-$echo
-$echo "Please enter the src_root for 'libcult'."
-$echo
-
-src_root=`read_path --directory --exist`
-
-$echo
-$echo "Please enter the out_root for 'libcult'."
-$echo
-
-out_root=`read_path --directory $src_root`
-
-fi
-
-echo libcult_installed := $installed >$1
-
-if [ "$installed" = "n" ]; then
-
-echo src_root := $src_root >>$1
-echo scf_root := \$\(src_root\)/build >>$1
-echo out_root := $out_root >>$1
-
-fi
diff --git a/libfrontend-elements/build/import/libcult/stub.make b/libfrontend-elements/build/import/libcult/stub.make
deleted file mode 100644
index f5f7691..0000000
--- a/libfrontend-elements/build/import/libcult/stub.make
+++ /dev/null
@@ -1,30 +0,0 @@
-# file : build/import/libcult/stub.make
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2009 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-$(call include-once,$(scf_root)/import/libcult/configuration-rules.make,$(dcf_root))
-
-libcult_installed :=
-
-$(call -include,$(dcf_root)/import/libcult/configuration-dynamic.make)
-
-ifdef libcult_installed
-
-ifeq ($(libcult_installed),y)
-
-$(call export,l: -lcult,cpp-options: )
-
-else
-
-# Include export stub.
-#
-$(call include,$(scf_root)/export/libcult/stub.make)
-
-endif
-
-else
-
-.NOTPARALLEL:
-
-endif
diff --git a/libfrontend-elements/build/import/libfrontend-elements/LICENSE b/libfrontend-elements/build/import/libfrontend-elements/LICENSE
deleted file mode 120000
index 5853aae..0000000
--- a/libfrontend-elements/build/import/libfrontend-elements/LICENSE
+++ /dev/null
@@ -1 +0,0 @@
-../../../LICENSE \ No newline at end of file
diff --git a/libfrontend-elements/build/import/libfrontend-elements/configuration-rules.make b/libfrontend-elements/build/import/libfrontend-elements/configuration-rules.make
deleted file mode 100644
index ab45f1c..0000000
--- a/libfrontend-elements/build/import/libfrontend-elements/configuration-rules.make
+++ /dev/null
@@ -1,15 +0,0 @@
-# file : build/import/libfrontend-elements/configuration-rules.make
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-$(dcf_root)/import/libfrontend-elements/configuration-dynamic.make: | $(dcf_root)/import/libfrontend-elements/.
- $(call message,,$(scf_root)/import/libfrontend-elements/configure $@)
-
-ifndef %foreign%
-
-disfigure::
- $(call message,rm $(dcf_root)/import/libfrontend-elements/configuration-dynamic.make,\
-rm -f $(dcf_root)/import/libfrontend-elements/configuration-dynamic.make)
-
-endif
diff --git a/libfrontend-elements/build/import/libfrontend-elements/configure b/libfrontend-elements/build/import/libfrontend-elements/configure
deleted file mode 100755
index c0b60f4..0000000
--- a/libfrontend-elements/build/import/libfrontend-elements/configure
+++ /dev/null
@@ -1,55 +0,0 @@
-#! /usr/bin/env bash
-
-# file : build/import/libfrontend-elements/configure
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-
-# $1 - out file
-#
-# bld_root - build root
-# project_name - project name
-#
-
-source $bld_root/dialog.bash
-
-
-$echo
-$echo "Configuring external dependency on 'libfrontend-elements' for '$project_name'."
-$echo
-
-$echo
-$echo "Would you like to configure dependency on the installed version"
-$echo "of 'libfrontend-elements' as opposed to the development build?"
-$echo
-
-installed=`read_y_n y`
-
-path=
-
-if [ "$installed" = "n" ]; then
-
-$echo
-$echo "Please enter the src_root for 'libfrontend-elements'."
-$echo
-
-src_root=`read_path --directory --exist`
-
-$echo
-$echo "Please enter the out_root for 'libfrontend-elements'."
-$echo
-
-out_root=`read_path --directory $src_root`
-
-fi
-
-echo libfrontend_elements_installed := $installed >$1
-
-if [ "$installed" = "n" ]; then
-
-echo src_root := $src_root >>$1
-echo scf_root := \$\(src_root\)/build >>$1
-echo out_root := $out_root >>$1
-
-fi
diff --git a/libfrontend-elements/build/import/libfrontend-elements/stub.make b/libfrontend-elements/build/import/libfrontend-elements/stub.make
deleted file mode 100644
index 7eb1153..0000000
--- a/libfrontend-elements/build/import/libfrontend-elements/stub.make
+++ /dev/null
@@ -1,30 +0,0 @@
-# file : build/import/libfrontend-elements/stub.make
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-$(call include-once,$(scf_root)/import/libfrontend-elements/configuration-rules.make,$(dcf_root))
-
-libfrontend_elements_installed :=
-
-$(call -include,$(dcf_root)/import/libfrontend-elements/configuration-dynamic.make)
-
-ifdef libfrontend_elements_installed
-
-ifeq ($(libfrontend_elements_installed),y)
-
-$(call export,l: -lfrontend-elements -lcult,cpp_options: )
-
-else
-
-# Include export stub.
-#
-$(call include,$(scf_root)/export/libfrontend-elements/stub.make)
-
-endif
-
-else
-
-.NOTPARALLEL:
-
-endif
diff --git a/libfrontend-elements/build/ld/configuration-lib-dynamic.make b/libfrontend-elements/build/ld/configuration-lib-dynamic.make
deleted file mode 100644
index 74c8885..0000000
--- a/libfrontend-elements/build/ld/configuration-lib-dynamic.make
+++ /dev/null
@@ -1,13 +0,0 @@
-ld_lib_type := archive
-
-ifneq ($(AR),)
-ld_lib_ar := $(AR)
-else
-ld_lib_ar := ar
-endif
-
-ifneq ($(RANLIB),)
-ld_lib_ranlib := $(RANLIB)
-else
-ld_lib_ranlib := ranlib
-endif
diff --git a/libfrontend-elements/documentation/DIAGNOSTIC b/libfrontend-elements/documentation/DIAGNOSTIC
deleted file mode 100644
index b9b6004..0000000
--- a/libfrontend-elements/documentation/DIAGNOSTIC
+++ /dev/null
@@ -1,4 +0,0 @@
-@@ How am I going to address the problem of translation?
-
-@@ Check Cult::Trace for any new ideas.
-
diff --git a/libfrontend-elements/documentation/TODO b/libfrontend-elements/documentation/TODO
deleted file mode 100644
index 27d4041..0000000
--- a/libfrontend-elements/documentation/TODO
+++ /dev/null
@@ -1 +0,0 @@
-@@ Add example for traversal.
diff --git a/libfrontend-elements/documentation/default.css b/libfrontend-elements/documentation/default.css
deleted file mode 100644
index 7242a94..0000000
--- a/libfrontend-elements/documentation/default.css
+++ /dev/null
@@ -1,160 +0,0 @@
-body {
- font-family : sans-serif;
- font-weight : normal;
-
- color : black;
- background : white;
-
- max-width : 42em;
- padding : 2em 2em 2em 3em;
- margin : 0 auto;
-}
-
-h1, h2, h3, h4, h5, h6 {
- font-family : sans-serif;
- font-weight : 500;
-}
-
-h1 { font-size : 170%; }
-h2 { font-size : 145%; }
-h3 { font-size : 125%; }
-h4 { font-size : 110%; }
-h5 { font-size : 106%; }
-h6 { font-size : 100%; }
-
-
-p.indent {
- margin-left : 1.5em;
-}
-
-
-/* table of content */
-ul.toc li {
- padding : .4em 0em 0em 0em;
-}
-
-
-
-/* list of links */
-ul.menu {
- list-style-type : none;
-}
-
-ul.menu li {
- padding-top : 0.3em;
- padding-bottom : 0.3em;
-}
-
-
-
-/* @@ I should probably use child selector here */
-/* list with multiline list-elements */
-ul.multiline li {
- padding-top : 0.4em;
- padding-bottom : 0.4em;
-}
-
-ol.multiline li {
- padding-top : 0.4em;
- padding-bottom : 0.4em;
-}
-
-dl.multiline dd {
- padding-top : 0.4em;
- padding-bottom : 0.4em;
-}
-
-/* code */
-
-code {
- font-size : 114%;
- font-family : monospace;
-}
-
-
-/* C++ code snippet */
-pre.cxx {
-
- margin-top : 0em;
- margin-bottom : 2em;
-
- margin-left : 1em;
-}
-
-
-
-/* make code snippet */
-pre.make {
-
- margin-top : 0em;
- margin-bottom : 2em;
-
- margin-left : 1em;
-}
-
-
-
-/* terminal output */
-pre.term {
-
- margin-top : 0em;
- margin-bottom : 2em;
-
- margin-left : 1em;
-}
-
-
-/* Images */
-div.center {
- text-align: center;
-}
-
-/* Navigation. */
-#navigation {
- margin-top: 1em;
- border-bottom: 1px dashed #000000;
-}
-
-#content {
- margin-top: 2.5em;
-}
-
-
-/* Document info. */
-#docinfo {
- margin-top: 4em;
- border-top: 1px dashed #000000;
- font-size: 70%;
-}
-
-/* distribution terms */
-div.terms {
- font-size : 114%;
- font-family : monospace;
-}
-
-
-
-/* Footnote */
-
-#footnote {
- margin-top: 2em;
-}
-
-#footnote hr {
- margin-left: 0;
- margin-bottom: 1.5em;
- width: 8em;
- border-top: 1px solid #000000;
- border-right: none;
- border-bottom: none;
- border-left: none;
-
-}
-
-#footnote p {
- font-size: .91em;
- text-indent: -0.8em;
- padding-left: 0.8em;
-}
-
diff --git a/libfrontend-elements/documentation/index.xhtml b/libfrontend-elements/documentation/index.xhtml
deleted file mode 100644
index ad12e50..0000000
--- a/libfrontend-elements/documentation/index.xhtml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : documentation/index.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2005-2010 Boris Kolpackov
-license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
-
--->
-
-<head>
-
- <title>libfrontend-elements/documentation</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
- <meta name="keywords" content="c++,library,compiler,frontend"/>
- <meta name="description" content="libfrontend-elements/documentation"/>
-
- <link rel="stylesheet" type="text/css" href="default.css"/>
-
-</head>
-
-<body>
-
-<div id="navigation">
-<p>
-<a href=".."><code>libfrontend-elements</code></a> <code>/</code>
-<code>documentation</code>
-</p>
-</div>
-
-<div id="content">
-<p><i>libfrontend-elements</i> consists of the following
-elements:</p>
-
-<ul class="menu">
- <li><code>context</code></li>
- <li><code>diagnostic</code></li>
- <li><code>token-stream</code></li>
- <li><code>traversal</code></li>
-</ul>
-
-
-<p>Context is essentially a heterogeneous map of names to instances of
-arbitrary types. It is primarily used to allow arbitrary annotations of
-<em>semantic graph</em> nodes and edges, which are often useful
-during code generation.</p>
-
-<p>Diagnostic framework allows to implement consistent and extensible
-compiler diagnostic without incurring significant notational burden.</p>
-
-<p><code>TokenStream</code> is a generic interface which is usually
-implemented by a <em>lexical analyzer</em>.</p>
-
-<p>Traversal is a significant enhancement of a well-known <em>visitor</em>
-idiom which is often used to traverse <em>semantic graphs</em>.</p>
-
-</div>
-
-<div id="docinfo">
-<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
-href="http://kolpackov.net">Boris Kolpackov</a>.</p>
-
-<div class="terms">
-Permission is granted to copy, distribute and/or modify this document under
-the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
-Documentation License, version 1.2</a>; with no Invariant Sections, no
-Front-Cover Texts and no Back-Cover Texts.
-</div>
-</div>
-
-</body>
-</html>
diff --git a/libfrontend-elements/examples/diagnostic/driver.cxx b/libfrontend-elements/examples/diagnostic/driver.cxx
deleted file mode 100644
index edb8a18..0000000
--- a/libfrontend-elements/examples/diagnostic/driver.cxx
+++ /dev/null
@@ -1,29 +0,0 @@
-// file : examples/diagnostic/driver.cxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#include <cult/types.hxx>
-
-#include <frontend-elements/diagnostic.hxx>
-
-using namespace Cult::Types;
-using namespace FrontendElements::Diagnostic;
-
-// Some ideas: The first letter (`e') in `epsyntx' is for error.
-// The second letter identifies part of the system (p - parser).
-//
-//
-Error epsyntx ("EPSYNTX");
-
-Warning wscoer ("WS001");
-
-Stream dout;
-
-Int
-main ()
-{
- dout << epsyntx << "foo.cxx" << 1UL << 12UL << "syntax error";
-
- dout << wscoer << "foo.cxx" << 2UL << "type coercion";
-}
diff --git a/libfrontend-elements/examples/diagnostic/makefile b/libfrontend-elements/examples/diagnostic/makefile
deleted file mode 100644
index 0945a81..0000000
--- a/libfrontend-elements/examples/diagnostic/makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-# file : examples/diagnostic/makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make
-
-cxx_tun := driver.cxx
-cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o))
-cxx_od := $(cxx_obj:.o=.o.d)
-
-frontend_elements.l := $(out_root)/frontend-elements/frontend-elements.l
-frontend_elements.l.cpp-options := $(out_root)/frontend-elements/frontend-elements.l.cpp-options
-
-diagnostic := $(out_base)/diagnostic
-clean := $(out_base)/.clean
-
-
-# Build.
-#
-$(diagnostic): $(cxx_obj) $(frontend_elements.l)
-
-$(cxx_obj) $(cxx_od): $(frontend_elements.l.cpp-options)
-
-$(call include-dep,$(cxx_od))
-
-
-# Convenience alias for default target.
-#
-$(out_base)/: $(diagnostic)
-
-
-# Clean.
-#
-$(clean): $(diagnostic).o.clean \
- $(addsuffix .cxx.clean,$(cxx_obj)) \
- $(addsuffix .cxx.clean,$(cxx_od))
-
-
-# How to.
-#
-$(call include,$(bld_root)/cxx/o-e.make)
-$(call include,$(bld_root)/cxx/cxx-o.make)
-$(call include,$(bld_root)/cxx/cxx-d.make)
-
-# Dependencies.
-#
-$(call import,$(src_root)/frontend-elements/makefile)
diff --git a/libfrontend-elements/examples/makefile b/libfrontend-elements/examples/makefile
deleted file mode 100644
index 7d7abd3..0000000
--- a/libfrontend-elements/examples/makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : examples/makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make
-
-default := $(out_base)/
-clean := $(out_base)/.clean
-
-examples := $(out_base)/diagnostic
-
-$(default): $(addsuffix /,$(examples))
-$(clean): $(addsuffix /.clean,$(examples))
-
-$(foreach e,$(subst $(out_base),$(src_base),$(examples)),$(call import,$e/makefile))
diff --git a/libfrontend-elements/frontend-elements/context.cxx b/libfrontend-elements/frontend-elements/context.cxx
deleted file mode 100644
index 295ce74..0000000
--- a/libfrontend-elements/frontend-elements/context.cxx
+++ /dev/null
@@ -1,11 +0,0 @@
-// file : frontend-elements/context.cxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#include <frontend-elements/context.hxx>
-
-namespace FrontendElements
-{
-}
-
diff --git a/libfrontend-elements/frontend-elements/context.hxx b/libfrontend-elements/frontend-elements/context.hxx
deleted file mode 100644
index 9a31da2..0000000
--- a/libfrontend-elements/frontend-elements/context.hxx
+++ /dev/null
@@ -1,133 +0,0 @@
-// file : frontend-elements/context.hxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#ifndef FRONTEND_ELEMENTS_CONTEXT_HXX
-#define FRONTEND_ELEMENTS_CONTEXT_HXX
-
-#include <frontend-elements/types.hxx>
-
-#include <cult/containers/any.hxx>
-#include <cult/containers/map.hxx>
-
-namespace FrontendElements
-{
- class Context: public NonCopyable
- {
- typedef
- Cult::Containers::Map<String, Cult::Containers::Any>
- Map;
-
- public:
- struct NoEntry {};
- struct Typing {};
-
- Context ()
- {
- }
-
- Void
- swap (Context& c)
- {
- map_.swap (c.map_);
- }
-
- Size
- count (Char const* key) const
- {
- return map_.count (key);
- }
-
- template <typename X>
- X&
- get (Char const* key)
- {
- Map::Iterator i (map_.find (key));
-
- if (i == map_.end ())
- throw NoEntry ();
-
- try
- {
- return i->second. template value<X> ();
- }
- catch (Cult::Containers::Any::Typing const&)
- {
- throw Typing ();
- }
- }
-
- template <typename X>
- X const&
- get (Char const* key) const
- {
- Map::ConstIterator i (map_.find (key));
-
- if (i == map_.end ())
- throw NoEntry ();
-
- try
- {
- return i->second. template value<X> ();
- }
- catch (Cult::Containers::Any::Typing const&)
- {
- throw Typing ();
- }
- }
-
- template <typename X>
- X const&
- get (Char const* key, X const& default_value) const
- {
- Map::ConstIterator i (map_.find (key));
-
- if (i == map_.end ())
- return default_value;
-
- try
- {
- return i->second. template value<X> ();
- }
- catch (Cult::Containers::Any::Typing const&)
- {
- throw Typing ();
- }
- }
-
- template <typename X>
- Void
- set (Char const* key, X const& value)
- {
- try
- {
- if (!map_.insert (Map::Pair (key, value)).second)
- {
- Map::Iterator i (map_.find (key));
- i->second.template value <X> () = value;
- }
- }
- catch (Cult::Containers::Any::Typing const&)
- {
- throw Typing ();
- }
- }
-
- Void
- remove (Char const* key)
- {
- Map::Iterator i (map_.find (key));
-
- if (i == map_.end ())
- throw NoEntry ();
-
- map_.erase (i);
- }
-
- private:
- Map map_;
- };
-}
-
-#endif // FRONTEND_ELEMENTS_CONTEXT_HXX
diff --git a/libfrontend-elements/frontend-elements/diagnostic.cxx b/libfrontend-elements/frontend-elements/diagnostic.cxx
deleted file mode 100644
index c99061f..0000000
--- a/libfrontend-elements/frontend-elements/diagnostic.cxx
+++ /dev/null
@@ -1,41 +0,0 @@
-// file : frontend-elements/diagnostic.cxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#include <frontend-elements/diagnostic.hxx>
-
-#include <iostream>
-
-namespace FrontendElements
-{
- namespace Diagnostic
- {
- using std::cerr;
- using std::endl;
-
- Log& Log::
- operator<< (Record const& r)
- {
- cerr << r.file () << ":" << r.line ();
-
- if (r.char_p ()) cerr << ":" << r.char_ ();
-
- cerr << ": ";
-
- r.kind ().print (cerr);
-
- cerr << ": " << r.text () << endl;
-
- return *this;
- }
-
- Log& Log::
- instance ()
- {
- static Log l;
- return l;
- }
- }
-}
-
diff --git a/libfrontend-elements/frontend-elements/diagnostic.hxx b/libfrontend-elements/frontend-elements/diagnostic.hxx
deleted file mode 100644
index 6cc48da..0000000
--- a/libfrontend-elements/frontend-elements/diagnostic.hxx
+++ /dev/null
@@ -1,364 +0,0 @@
-// file : frontend-elements/diagnostic.hxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#ifndef FRONTEND_ELEMENTS_DIAGNOSTIC_HXX
-#define FRONTEND_ELEMENTS_DIAGNOSTIC_HXX
-
-#include <frontend-elements/types.hxx>
-
-#include <ostream>
-#include <sstream>
-
-namespace FrontendElements
-{
- namespace Diagnostic
- {
- struct Kind
- {
- virtual
- ~Kind ()
- {
- }
-
- Kind (String const& id)
- : id_ (id)
- {
- }
-
- Char const*
- id () const
- {
- return id_.c_str ();
- }
-
- virtual std::ostream&
- print (std::ostream& o) const = 0;
-
- private:
- String id_;
- };
-
- struct Error: Kind
- {
- virtual
- ~Error ()
- {
- }
-
- Error (String const& id)
- : Kind (id)
- {
- }
-
- virtual std::ostream&
- print (std::ostream& o) const
- {
- return o << "error " << id ();
- }
- };
-
- struct Warning: Kind
- {
- virtual
- ~Warning ()
- {
- }
-
- Warning (String const& id)
- : Kind (id)
- {
- }
-
- virtual std::ostream&
- print (std::ostream& o) const
- {
- return o << "warning " << id ();
- }
- };
-
- struct Remark: Kind
- {
- virtual
- ~Remark ()
- {
- }
-
- Remark (String const& id)
- : Kind (id)
- {
- }
-
- virtual std::ostream&
- print (std::ostream& o) const
- {
- return o << "remark " << id ();
- }
- };
-
- struct Info: Kind
- {
- virtual
- ~Info ()
- {
- }
-
- Info (String const& id)
- : Kind (id)
- {
- }
-
- virtual std::ostream&
- print (std::ostream& o) const
- {
- return o << "info " << id ();
- }
- };
-
- //
- //
- //
- namespace Bits
- {
- class Mediator;
- }
-
- class Record: public NonCopyable
- {
- public:
- Record (Kind const& kind,
- String const& file,
- UnsignedLong line,
- UnsignedLong char_)
- : kind_ (&kind),
- file_p_ (true),
- file_ (file),
- line_p_ (true),
- line_ (line),
- char_p_ (true),
- char__ (char_)
- {
- }
-
- Record (Kind const& kind,
- String const& file,
- UnsignedLong line)
- : kind_ (&kind),
- file_p_ (true),
- file_ (file),
- line_p_ (true),
- line_ (line),
- char_p_ (false)
- {
- }
-
- private:
- Record ()
- : kind_ (0),
- file_p_ (false),
- line_p_ (false),
- char_p_ (false)
- {
- }
-
-
- Void
- kind (Kind const& kind)
- {
- kind_ = &kind;
- }
-
- friend class Bits::Mediator;
-
- friend Record&
- operator<< (Bits::Mediator const&, Kind const&);
-
- public:
- class Undefined {};
-
- Kind const&
- kind () const
- {
- return *kind_;
- }
-
- Char const*
- file () const
- {
- if (file_p_) return file_.c_str ();
-
- throw Undefined ();
- }
-
- UnsignedLong
- line () const
- {
- if (line_p_) return line_;
-
- throw Undefined ();
- }
-
- Boolean
- char_p () const
- {
- return char_p_;
- }
-
- UnsignedLong
- char_ () const
- {
- if (char_p_) return char__;
-
- throw Undefined ();
- }
-
- String
- text () const
- {
- return o_.str ();
- }
-
- public:
- Record&
- operator<< (Char const* s)
- {
- if (!char_p_ && !line_p_ && !file_p_)
- {
- file_ = s;
- file_p_ = true;
- }
- else
- o_ << s;
-
- return *this;
- }
-
- //@@ Make it Int.
- //
- Record&
- operator<< (UnsignedLong l)
- {
- if (file_p_ && !char_p_)
- {
- if (line_p_)
- {
- char__ = l;
- char_p_ = true;
- }
- else
- {
- line_ = l;
- line_p_ = true;
- }
- }
- else
- o_ << l;
-
- return *this;
- }
-
- template <typename X>
- Record&
- operator<< (X const& x)
- {
- o_ << x;
- return *this;
- }
-
- private:
- Kind const* kind_;
-
- Boolean file_p_;
- String file_;
-
- Boolean line_p_;
- UnsignedLong line_;
-
- Boolean char_p_;
- UnsignedLong char__;
-
- std::ostringstream o_;
- };
-
-
- //
- //
- //
- class Log: public NonCopyable
- {
- public:
- virtual
- ~Log ()
- {
- }
-
- public:
- virtual Log&
- operator<< (Record const& r);
-
- public:
- static Log&
- instance ();
- };
-
-
- //
- //
- //
- class Stream;
-
- namespace Bits
- {
- class Mediator
- {
- public:
- Mediator (Stream& s)
- : s_ (s)
- {
- }
-
- ~Mediator ();
-
- Stream& s_;
- mutable Record r_;
- };
- }
-
- class Stream: public NonCopyable
- {
- public:
- Stream (Log& l = Log::instance ())
- : log_ (l)
- {
- }
-
- public:
- Stream&
- operator<< (Record const& r)
- {
- log_ << r;
- return *this;
- }
-
- friend Record&
- operator<< (Bits::Mediator const& m, Kind const& k)
- {
- Record& r (m.r_);
-
- r.kind (k);
-
- return r;
- }
-
- private:
- Log& log_;
- };
-
- }
-}
-
-#include <frontend-elements/diagnostic.ixx>
-#include <frontend-elements/diagnostic.txx>
-
-#endif // FRONTEND_ELEMENTS_DIAGNOSTIC_HXX
diff --git a/libfrontend-elements/frontend-elements/diagnostic.ixx b/libfrontend-elements/frontend-elements/diagnostic.ixx
deleted file mode 100644
index d32325d..0000000
--- a/libfrontend-elements/frontend-elements/diagnostic.ixx
+++ /dev/null
@@ -1,21 +0,0 @@
-// file : frontend-elements/diagnostic.ixx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-namespace FrontendElements
-{
- namespace Diagnostic
- {
- namespace Bits
- {
- inline
- Mediator::
- ~Mediator ()
- {
- s_ << r_;
- }
- }
- }
-}
-
diff --git a/libfrontend-elements/frontend-elements/diagnostic.txx b/libfrontend-elements/frontend-elements/diagnostic.txx
deleted file mode 100644
index b8391f4..0000000
--- a/libfrontend-elements/frontend-elements/diagnostic.txx
+++ /dev/null
@@ -1,9 +0,0 @@
-// file : frontend-elements/diagnostic.txx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-namespace FrontendElements
-{
-}
-
diff --git a/libfrontend-elements/frontend-elements/makefile b/libfrontend-elements/frontend-elements/makefile
deleted file mode 100644
index 8ca30b0..0000000
--- a/libfrontend-elements/frontend-elements/makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# file : frontend-elements/makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make
-
-cxx_tun := context.cxx \
- diagnostic.cxx \
- token-stream.cxx \
- traversal.cxx
-
-cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o))
-cxx_od := $(cxx_obj:.o=.o.d)
-
-frontend_elements.l := $(out_base)/frontend-elements.l
-frontend_elements.l.cpp-options := $(out_base)/frontend-elements.l.cpp-options
-
-clean := $(out_base)/.clean
-
-
-# Secure default target.
-#
-$(frontend_elements.l):
-
-
-# Import libcult.
-#
-$(call import,\
- $(scf_root)/import/libcult/stub.make,\
- l: cult.l,cpp-options: cult.l.cpp-options)
-
-# Build.
-#
-$(frontend_elements.l): $(cxx_obj) $(cult.l)
-
-$(cxx_obj) $(cxx_od): $(frontend_elements.l.cpp-options)
-
-$(frontend_elements.l.cpp-options): value := -I$(src_root)
-$(frontend_elements.l.cpp-options): $(cult.l.cpp-options)
-
-$(call include-dep,$(cxx_od))
-
-
-# Convenience alias for default target.
-#
-$(out_base)/: $(frontend_elements.l)
-
-
-# Clean.
-#
-$(clean): $(frontend_elements.l).o.clean \
- $(frontend_elements.l.cpp-options).clean \
- $(addsuffix .cxx.clean,$(cxx_obj)) \
- $(addsuffix .cxx.clean,$(cxx_od))
-
-
-
-# How to.
-#
-$(call include,$(bld_root)/cxx/o-l.make)
-$(call include,$(bld_root)/cxx/cxx-o.make)
-$(call include,$(bld_root)/cxx/cxx-d.make)
diff --git a/libfrontend-elements/frontend-elements/token-stream.cxx b/libfrontend-elements/frontend-elements/token-stream.cxx
deleted file mode 100644
index dab785a..0000000
--- a/libfrontend-elements/frontend-elements/token-stream.cxx
+++ /dev/null
@@ -1,10 +0,0 @@
-// file : frontend-elements/token-stream.cxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#include <frontend-elements/token-stream.hxx>
-
-namespace FrontendElements
-{
-}
diff --git a/libfrontend-elements/frontend-elements/token-stream.hxx b/libfrontend-elements/frontend-elements/token-stream.hxx
deleted file mode 100644
index 023842f..0000000
--- a/libfrontend-elements/frontend-elements/token-stream.hxx
+++ /dev/null
@@ -1,99 +0,0 @@
-// file : frontend-elements/token-stream.hxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#ifndef FRONTEND_ELEMENTS_TOKEN_STREAM_HXX
-#define FRONTEND_ELEMENTS_TOKEN_STREAM_HXX
-
-#include <frontend-elements/types.hxx>
-
-#include <string> // std::char_traits
-#include <istream>
-
-namespace FrontendElements
-{
- //
- //
- template <typename Token>
- class TokenStream
- {
- public:
- virtual
- ~TokenStream ()
- {
- }
-
- public:
- virtual Token
- next () = 0;
- };
-
-
- //
- //
- template <>
- class TokenStream<Char>
- {
- public:
- typedef
- std::char_traits<FrontendElements::Char>
- Traits;
-
- typedef
- Traits::int_type
- AsInt;
-
- typedef
- Traits::char_type
- AsChar;
-
- public:
- virtual
- ~TokenStream ()
- {
- }
-
- public:
- virtual AsInt
- next () = 0;
-
- static AsChar
- to_char (AsInt i)
- {
- return Traits::to_char_type (i);
- }
-
- static AsInt
- eos ()
- {
- return Traits::eof ();
- }
- };
-
- class InputStreamAdapter: public TokenStream<Char>
- {
- public:
- virtual
- ~InputStreamAdapter ()
- {
- }
-
- InputStreamAdapter (std::istream& is)
- : is_ (is)
- {
- }
-
- public:
- virtual AsInt
- next ()
- {
- return is_.get ();
- }
-
- private:
- std::istream& is_;
- };
-}
-
-#endif // FRONTEND_ELEMENTS_TOKEN_STREAM_HXX
diff --git a/libfrontend-elements/frontend-elements/traversal.cxx b/libfrontend-elements/frontend-elements/traversal.cxx
deleted file mode 100644
index 079a2a8..0000000
--- a/libfrontend-elements/frontend-elements/traversal.cxx
+++ /dev/null
@@ -1,10 +0,0 @@
-// file : frontend-elements/traversal.cxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#include <frontend-elements/traversal.hxx>
-
-namespace FrontendElements
-{
-}
diff --git a/libfrontend-elements/frontend-elements/traversal.hxx b/libfrontend-elements/frontend-elements/traversal.hxx
deleted file mode 100644
index b320484..0000000
--- a/libfrontend-elements/frontend-elements/traversal.hxx
+++ /dev/null
@@ -1,293 +0,0 @@
-// file : frontend-elements/traversal.hxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#ifndef FRONTEND_ELEMENTS_TRAVERSAL_HXX
-#define FRONTEND_ELEMENTS_TRAVERSAL_HXX
-
-#include <frontend-elements/types.hxx>
-
-#include <cult/containers/map.hxx>
-#include <cult/containers/set.hxx>
-#include <cult/containers/vector.hxx>
-
-#include <cult/rtti/type-info.hxx>
-
-#include <cult/trace/stream.hxx>
-
-//@@ Move to trace next time you are about to uncomment this.
-//
-// #include <iostream>
-// using std::wcerr;
-// using std::endl;
-
-
-namespace FrontendElements
-{
- namespace Traversal
- {
- //
- //
- template<typename X>
- class TraverserBase
- {
- protected:
- virtual
- ~TraverserBase ();
-
- virtual Void
- trampoline (X&) = 0;
-
- virtual Void
- trampoline (X const&) = 0;
-
- template <typename>
- friend class DispatcherBase;
- };
-
-
- //
- //
- template <typename X>
- class DispatcherBase
- {
- typedef
- Cult::RTTI::TypeId
- TypeId;
-
- typedef
- Cult::RTTI::TypeInfo
- TypeInfo;
-
- public:
- virtual
- ~DispatcherBase ();
-
- virtual Void
- dispatch (X&);
-
- virtual Void
- dispatch (X const&);
-
- Void
- map (TypeId id, TraverserBase<X>& t)
- {
- //wcerr << "map for " << id.name () << " to " << &t
- // << " in " << &traversal_map_ << endl;
-
- Traversers& traversers (traversal_map_[id]);
- traversers.push_back (&t);
- }
-
- public:
- typedef
- Cult::Containers::Vector<TraverserBase<X>*>
- Traversers;
-
- typedef
- Cult::Containers::Map<TypeId, Traversers>
- TraversalMap;
-
- typedef
- typename TraversalMap::ConstIterator
- Iterator;
-
- Iterator
- begin () const
- {
- return traversal_map_.begin ();
- }
-
- Iterator
- end () const
- {
- return traversal_map_.end ();
- }
-
- protected:
- static Cult::Trace::Stream tout;
-
- private:
- template<typename Y>
- Void
- dispatch_ (Y&);
-
- private:
-
- struct TypeInfoComparator
- {
- Boolean
- operator () (TypeInfo const& a, TypeInfo const& b) const
- {
- return a.type_id () < b.type_id ();
- }
- };
-
- typedef
- Cult::Containers::Map<TypeInfo, UnsignedLong, TypeInfoComparator>
- LevelMap;
-
- typedef
- Cult::Containers::Set<TypeInfo, TypeInfoComparator>
- TypeInfoSet;
-
- static UnsignedLong
- compute_levels (TypeInfo const& ti, UnsignedLong cur, LevelMap& map);
-
- static Void
- flatten_tree (TypeInfo const& ti, TypeInfoSet& set);
-
- private:
- TraversalMap traversal_map_;
- };
-
-
- //
- //
- template <typename X>
- class Dispatcher: public virtual DispatcherBase<X>
- {
- public:
- Dispatcher ()
- : merge_ (true)
- {
- }
-
- Void
- traverser (DispatcherBase<X>& d)
- {
- for (typename DispatcherBase<X>::Iterator
- i (d.begin ()), e (d.end ()); i != e; ++i)
- {
- for (typename DispatcherBase<X>::Traversers::ConstIterator
- t (i->second.begin ()), e (i->second.end ()); t != e; ++t)
- {
- dispatcher_.map (i->first, **t);
- }
- }
- }
-
- public:
- virtual Void
- dispatch (X& x)
- {
- merge ();
- dispatcher_.dispatch (x);
- }
-
- virtual Void
- dispatch (X const& x)
- {
- merge ();
- dispatcher_.dispatch (x);
- }
-
- using DispatcherBase<X>::begin;
- using DispatcherBase<X>::end;
-
- private:
- Void
- merge ()
- {
- if (merge_)
- {
- for (typename DispatcherBase<X>::Iterator
- i (begin ()), e (end ()); i != e; ++i)
- {
- for (typename DispatcherBase<X>::Traversers::ConstIterator
- t (i->second.begin ()), e (i->second.end ()); t != e; ++t)
- {
- dispatcher_.map (i->first, **t);
- }
- }
-
- merge_ = false;
- }
- }
-
- protected:
- template <typename I, typename Y>
- Void
- iterate_and_dispatch (I begin, I end, DispatcherBase<Y>& d)
- {
- for (; begin != end; ++begin)
- {
- d.dispatch (*begin);
- }
- }
-
- template <typename T, typename A, typename I, typename Y>
- Void
- iterate_and_dispatch (I begin,
- I end,
- DispatcherBase<Y>& d,
- T& t,
- Void (T::*next)(A&),
- A& a)
- {
- for (; begin != end;)
- {
- d.dispatch (*begin);
-
- if (++begin != end && next != 0)
- (t.*next) (a);
- }
- }
-
- private:
- Boolean merge_;
- DispatcherBase<X> dispatcher_;
- };
-
-
- //
- //
- template <typename T, typename X>
- struct Traverser : TraverserBase<X>, virtual Dispatcher<X>
- {
- typedef T Type;
-
- Traverser ()
- {
- map (typeid (Type), *this);
- }
-
- virtual Void
- traverse (Type&)
- {
- abort ();
- }
-
- virtual Void
- traverse (Type const&)
- {
- abort ();
- }
-
- protected:
- virtual Void
- trampoline (X& x)
- {
- //wcerr << "trampoline for " << &i << " to type "
- // << typeid (type).name () << endl;
-
- traverse (dynamic_cast<Type&> (x));
- }
-
- virtual Void
- trampoline (X const& x)
- {
- //wcerr << "trampoline for " << &i << " to type "
- // << typeid (Type).name () << endl;
-
- traverse (dynamic_cast<Type const&> (x));
- }
- };
- }
-}
-
-#include <frontend-elements/traversal.ixx>
-#include <frontend-elements/traversal.txx>
-
-#endif // FRONTEND_ELEMENTS_TRAVERSAL_HXX
diff --git a/libfrontend-elements/frontend-elements/traversal.ixx b/libfrontend-elements/frontend-elements/traversal.ixx
deleted file mode 100644
index 47c7314..0000000
--- a/libfrontend-elements/frontend-elements/traversal.ixx
+++ /dev/null
@@ -1,8 +0,0 @@
-// file : frontend-elements/traversal.ixx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-namespace FrontendElements
-{
-}
diff --git a/libfrontend-elements/frontend-elements/traversal.txx b/libfrontend-elements/frontend-elements/traversal.txx
deleted file mode 100644
index 6e6bfa3..0000000
--- a/libfrontend-elements/frontend-elements/traversal.txx
+++ /dev/null
@@ -1,135 +0,0 @@
-// file : frontend-elements/traversal.txx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-namespace FrontendElements
-{
- namespace Traversal
- {
- // TraverserBase
- //
-
- template<typename X>
- TraverserBase<X>::
- ~TraverserBase ()
- {
- }
-
- // DispatcherBase
- //
-
- template <typename X>
- DispatcherBase<X>::
- ~DispatcherBase ()
- {
- }
-
- template <typename X>
- Void DispatcherBase<X>::
- dispatch (X& x)
- {
- dispatch_ (x);
- }
-
- template <typename X>
- void DispatcherBase<X>::
- dispatch (X const& x)
- {
- dispatch_ (x);
- }
-
- template <typename X>
- template <typename Y>
- void DispatcherBase<X>::
- dispatch_ (Y& y)
- {
- LevelMap levels;
-
- TypeInfo const& ti (Cult::RTTI::lookup (typeid (y)));
-
- UnsignedLong max (compute_levels (ti, 0, levels));
-
- tout << "starting dispatch process for " << ti.type_id ().name ()
- << " with " << max << " levels";
-
- for (UnsignedLong l (0); l < max + 1; ++l)
- {
- TypeInfoSet dispatched;
-
- for (typename LevelMap::ConstIterator
- i (levels.begin ()), e (levels.end ()); i != e; ++i)
- {
- if (i->second == l)
- {
- typename TraversalMap::ConstIterator v (
- traversal_map_.find (i->first.type_id ()));
-
- if (v != traversal_map_.end ())
- {
- tout << "dispatching traversers for " << ti.type_id ().name ()
- << " as " << i->first.type_id ().name ();
-
- Traversers const& traversers (v->second);
-
- for (typename Traversers::ConstIterator
- ti (traversers.begin ()), te (traversers.end ()); ti != te; ++ti)
- {
- (*ti)->trampoline (y);
- }
-
- flatten_tree (i->first, dispatched);
- }
- }
- }
-
- // Remove traversed types from the level map.
- //
- for (typename TypeInfoSet::ConstIterator i (dispatched.begin ());
- i != dispatched.end (); ++i)
- {
- levels.erase (*i);
- }
- }
- }
-
-
- template <typename X>
- UnsignedLong DispatcherBase<X>::
- compute_levels (TypeInfo const& ti, UnsignedLong cur, LevelMap& map)
- {
- UnsignedLong ret (cur);
-
- if (map.find (ti) == map.end () || map[ti] < cur) map[ti] = cur;
-
- for (TypeInfo::BaseIterator i (ti.begin_base ());
- i != ti.end_base (); ++i)
- {
- UnsignedLong tmp (compute_levels (i->type_info (), cur + 1, map));
-
- if (tmp > ret)
- ret = tmp;
- }
-
- return ret;
- }
-
- template <typename X>
- Void DispatcherBase<X>::
- flatten_tree (TypeInfo const& ti, TypeInfoSet& set)
- {
- set.insert (ti);
-
- for (TypeInfo::BaseIterator i = ti.begin_base ();
- i != ti.end_base (); ++i)
- {
- flatten_tree (i->type_info (), set);
- }
- }
-
- template <typename X>
- Cult::Trace::Stream DispatcherBase<X>::
- tout ("frontend-elements::traversal", 5);
- }
-}
-
diff --git a/libfrontend-elements/frontend-elements/types.hxx b/libfrontend-elements/frontend-elements/types.hxx
deleted file mode 100644
index f9a6905..0000000
--- a/libfrontend-elements/frontend-elements/types.hxx
+++ /dev/null
@@ -1,16 +0,0 @@
-// file : frontend-elements/types.hxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#ifndef FRONTEND_ELEMENTS_TYPES_HXX
-#define FRONTEND_ELEMENTS_TYPES_HXX
-
-#include <cult/types.hxx>
-
-namespace FrontendElements
-{
- using namespace Cult::Types;
-}
-
-#endif // FRONTEND_ELEMENTS_TYPES_HXX
diff --git a/libfrontend-elements/makefile b/libfrontend-elements/makefile
deleted file mode 100644
index 99af2f9..0000000
--- a/libfrontend-elements/makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# file : makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))build/bootstrap.make
-
-default := $(out_base)/
-clean := $(out_base)/.clean
-
-$(default): $(out_base)/frontend-elements/ $(out_base)/examples/
-$(clean): $(out_base)/frontend-elements/.clean $(out_base)/examples/.clean
-
-$(call import,$(src_base)/frontend-elements/makefile)
-$(call import,$(src_base)/examples/makefile)
diff --git a/libfrontend-elements/version b/libfrontend-elements/version
deleted file mode 100644
index 65087b4..0000000
--- a/libfrontend-elements/version
+++ /dev/null
@@ -1 +0,0 @@
-1.1.4