Here you can find a proof-of-concept implementation of ModelCC for Java, coded by Luis Quesada when he was a graduate student at the Department of Computer Science and Artificial Intelligence at the University of Granada (Spain). The provided implementation employs an optimized Earley-like chart parser, a dynamic programming algorithm for parsing context-free grammars that runs in cubic time for arbitrary context-free grammars, in quadratic time for unambiguous context-free grammars, and in linear time for most LR(k) grammars.
IMPORTANT NOTE: This version of ModelCC has been superseded by an improved implementation, which can be found in the download section.
ModelCC is distributed under the ModelCC Shared Software License below. Please, make sure that you read and understand all the terms in the ModelCC Shared Software License before you use our software in your own projects.
ModelCC Shared Software License
This License governs use of the accompanying Software, and your use of the Software constitutes acceptance of this license.
You may use this Software for any non-commercial purpose, subject to the restrictions in this license. Some purposes which can be non-commercial are teaching, academic research, and personal experimentation.
You may also distribute this Software with books or other teaching materials, or publish the Software on websites, that are intended to teach the use of the Software.
You may not use or distribute this Software or any derivative works in any form for commercial purposes. Examples of commercial purposes would be running business operations, licensing, leasing, or selling the Software, or distributing the Software for use with commercial products.
You may modify this Software and distribute the modified Software for non-commercial purposes, however, you may not grant rights to the Software or derivative works that are broader than those provided by this License. For example, you may not distribute modifications of the Software under terms that would permit commercial use, or under terms that purport to require the Software or derivative works to be sublicensed to others.
You may use any information in intangible form that you remember after accessing the Software. However, this right does not grant you a license to any of the authors' copyrights or patents for anything you might create using such information.
In return, we simply require that you agree:
- Not to remove any copyright or other notices from the Software.
- That if you distribute the Software in source or object form, you will include a verbatim copy of this license.
- That if you distribute derivative works of the Software in source code form you do so only under a license that includes all of the provisions of this License, and if you distribute derivative works of the Software in object form you do so only under a license that complies with this License.
- That if you have modified the Software or created derivative works, and distribute such modifications or derivative works, you will cause the modified files to carry prominent notices so that recipients know that they are not receiving the original Software. Such notices must state:
(i) that you have changed the Software; and
(ii) the date of any changes.
- That the Software comes "as is", with no warranties. This means no express, implied or statutory warranty, including without limitation, warranties of merchantability or fitness for a particular purpose or any warranty of title or non-infringement. Also, you must pass this disclaimer on whenever you distribute the Software or derivative works.
- That the authors will not be liable for any damages related to the Software or this license, including direct, indirect, special, consequential or incidental damages, to the maximum extent the law permits, no matter what legal theory it is based on. Also, you must pass this limitation of liability on whenever you distribute the Software or derivative works.
- That if you sue anyone over patents that you think may apply to the Software or anyone's use of the Software, your license to the Software ends automatically.
- That your rights under the License end automatically if you breach it in any way.
- The authors reserve all rights not expressly granted to you in this license.