An attribute grammar-based programming language for composable language extensions
Clone or download
krame505 Merge pull request #301 from melt-umn/feature/disambiguation_classes
Raise a better error than NullPointerException when a parser attribute is uninitialized
Latest commit d7811ac Jan 21, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
generated Revert "Revert "Feature/monto+highlight"" Apr 20, 2017
grammars Fix type error with translation Jan 21, 2019
resources/ide_skeleton Stop using the language name to name ide artifacts, use the grammar. Feb 11, 2015
runtime Fix to formatting Jan 5, 2019
sandbox/bools Rename uses of 'Production' to 'Function' in Silver. Mar 13, 2012
support Increase default Silver heap and stack sizes, due to ableC-prolog cra… Jan 16, 2019
test More complete tests Jan 1, 2019
tutorials Fix some of the legacy problems with the simple tutorial Aug 19, 2018
.gitignore Remove IdeMessage, use langutil Message directly. Aug 8, 2018
COPYING adding new license - LGPL Apr 26, 2011
COPYING.LESSER adding new license - LGPL Apr 26, 2011
HISTORY kick off develop as 0.4.1 development... Oct 21, 2017
Jenkinsfile Ugh, change FETCH_COPPER_JARS from a boolean to a string Jan 15, 2019
README.md Update README.md Jun 6, 2018
build-everything Remove use of RunSilver. Regularize all tests/tutorials method of inv… Mar 22, 2018
deep-clean Remove use of RunSilver. Regularize all tests/tutorials method of inv… Mar 22, 2018
deep-rebuild to build this from old jars, we need home, so why not set it. Mar 22, 2018
fetch-jars Another typo Jan 15, 2019
make-dist Include silver:reflect grammar in dist Mar 2, 2018
make-ide Update self-compile script, so we can retarget it. Apr 21, 2016
make-ide-dist First audit of scripts. Use error checking. Apr 21, 2016
publish-jars More slight improvements to scripts Apr 21, 2016
self-compile Remove use of RunSilver. Regularize all tests/tutorials method of inv… Mar 22, 2018
update More slight improvements to scripts Apr 21, 2016

README.md

Silver

Silver is an attribute grammar-based language for the modular development of composable language extensions.

See About Silver below for more info.

See The Silver Install Guide for detailed information on how to get Silver set up.

Prerequisites

Silver requires: Java 7+, Ant, Bash, and wget. It can run on Linux, MacOS, and Windows Subsystem for Linux (WSL) in Windows 10.

Silver is written in Silver, which means after checkout, you need initial jars. You can download these with a helpful script:

./update

This will git pull to update, download jars, and clear any files generated by older versions of Silver. A one-stop-shop for updating after the initial clone.

About Silver

Silver is an extensible attribute grammar system that support many modern extensions to Knuth's original design. These include higher-order attributes, reference attributes, forwarding, aspects, and collections attributes. Its type system support parametric polymorphism. Silver is distributed with Copper, a parser and context-aware scanner generator.

Please note that Silver is a research project and while we do endeavor to create useful and quality software there may be bugs and missing functionality. Consult with us if you wish to use Silver for "serious" work. We otherwise make no guarantees about the features or performance of Silver.

Minnesota Extensible Language Tools (MELT) Group Department of Computer Science and Engineering University of Minnesota http://melt.cs.umn.edu

The Silver web site

Downloads, documentation, and related papers are available on the Silver web site:

http://melt.cs.umn.edu/silver

Information about Copper and sample language frameworks developed with Silver can be found on the MELT Group web site:

http://melt.cs.umn.edu

Acknowledgements

Silver is currently developed and maintained by

Past contributors include Derek Bodin, Lijesh Krishnan, and Jimin Gao.

We are very grateful to the National Science Foundation, the McKnight Foundation, DARPA, the University of Minnesota, and IBM for funding different aspects of our research and the development of Silver and Copper.

Licensing

Silver and Copper are distributed under the GNU Lesser General Public License. See the files COPYING and COPYING.LESSER for details of these licenses. More information can be found at http://www.gnu.org/licenses/.