Skip to content

Commit

Permalink
Release 1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Eliah-Lakhin committed Nov 11, 2022
0 parents commit 70ed01a
Show file tree
Hide file tree
Showing 136 changed files with 33,321 additions and 0 deletions.
247 changes: 247 additions & 0 deletions EULA.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
# End User License Agreement

This End User License Agreement(the "Agreement") is a legal document detailing
your rights and obligations related to using of my proprietary computer software
work(the "Work").

By downloading or using of this Work, you are agreeing to be bound by the terms
of this Agreement, and this Agreement will be effective upon the first of those
events to occur.

If you do not or cannot agree to the terms of this Agreement, do not use
this Work.

"I", "me" or "my" refers Ilya Lakhin (Илья Александрович Лахин in Russian),
the exclusive copyright holder of the Work responsible for providing this Work
to you under the terms of this Agreement.

"You" or "your" refers an individual or a legal entity exercising
permissions granted by this Agreement.

## The Work.

This Agreement is licensing work called "Lady Deirdre", a computer software
technology made for development of the programming languages source code
analysis, compilation, translation and interpretation software. This technology
has a number of applications including(but not limited to) development of the
programming languages compilers, script languages interpreters, live coding
systems, source code editors software, extensions for integrated development
environment software.

The Work consists of a set of source code files, documentation files,
example files, compilation scripts, and related content files. As a whole this
Work represents a set of computer software tools and compilable modules with
application programming interfaces to be integrated into the third party end
software products.

This Work was created and published worldwide by me through the GitHub public
repository in 2022:

https://github.com/Eliah-Lakhin/lady-deirdre

The Work licensed to you under this Agreement includes the foregoing published
files that is copied to your computer, any future updates and upgrades to this
Work made available to you by me, and any versions of any of the foregoing
that you make under the License.

## The License.

I grant you a non-exclusive, non-transferable, non-sublicensable worldwide
license to use, modify and distribute of this Work in ways expressively
permitted by the terms of this Agreement solely(the "License").

No license or other rights in any work or intellectual property rights owned
by me other than this Work are granted under this Agreement.

## Personal Use.

As long as you are not violating this Agreement or applicable law, you can
privately use this Work however you want. For example, you can use this Work
to try Lady Deirdre technology, or for personal educational, training, or
research purposes.

"Private use" means personal use of the Work such that you do not share
the Work or anything you make with it with the third party of this Agreement.

## Derivative Work.

You can make a Derivative Work from this Work if you assign to me
this Derivative Work.

"Assign" means that without any additional terms and conditions other than the
terms of this Agreement you grant me a fully-paid, exclusive, irrevocable,
unlimited in time, sublicensable, transferable license to use, reproduce,
distribute, publicly display, publicly perform, make, sell, offer to sell,
import, modify and make derivative works based on, and otherwise exploit your
Derivative Work for all current and future methods and forms of exploitation
in any country.

You represent and warrant that you have sufficient rights (including, but not
limited to intellectual property rights, moral rights and other personal rights)
in the Derivative Work that you provide to me to grant me the rights described
above. If any of the rights to be licensed to me may not be licensed under
applicable law, you hereby waive and agree not to assert any of those rights.

"Derivative Work" means any work that is based on the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work.

For the purposes of this Agreement, the term "Derivative Work" shall not include
works that remain separable from the Work, that uses application programming
interfaces of programming modules of the Work only, and that do not copy,
distribute, display, sell the Work or any parts of the Work to the third
parties in source or compiled form.

For example, if you fork my public GitHub repository to make some changes to
the Work, or if you make a pull request to my GitHub repository with the changes
to the Work, you assign those changes to me.

But if you make separated computer software that uses the Work through
the application programming interfaces of compilable modules of the Work only,
and without any changes to the Work, and your work does not incorporate or
distribute my Work in source or compiled form, this separated computer software
is not a Derivative Work.

## Extension Work.

In purpose to extend functional capabilities of the Work as a computer software,
you can make a work separable from my Work that will use my Work through
the application programming interfaces of compilable modules of my Work only,
and that will not incorporate or distribute my Work or any part of my Work
in source or compiled form(the "Extension Work").

As between you and me, you own all rights to the Extension Work, and this
Agreement does not limit your rights to your Extension Work under applicable
law as long as distribution, selling, using, reproducing, public displaying,
public performing, modifying or making derivatives of your Extension Work
does not permit the third party of this Agreement to incorporate my Work and
does not extend my liability to the third party of this Agreement.

## Products and Services.

You can develop a computer software product or a service that incorporates
the Work without changes in source or compiled form(the "Product").

You may only publicly distribute this Product as expressively permitted by
the terms of this section of the Agreement, and you agree to pay me Quarterly
Royalties from Revenue generated by your Product under the terms of this section
of the Agreement.

1. You must ensure to inform your Product Users about copyright attribution of
the Work by including the name of the Work, my name as a copyright holder
of the Work, and the link to the GitHub repository where my Work was
published (as described in "The Work" section of this Agreement).

2. You can permit your Product Users to use, reproduce, display, publicly
perform the Work in compiled form as an inseparable part of your Product
and for the purpose of your Product functional availability only.

3. You may not permit your Product Users to incorporate the Work into their
own products, projects, or other services.

4. In your Product's end user license agreement you must include necessary
warranty terms that otherwise would infringe the warranty terms of this
Agreement.

5. If the total Revenue generated by your Product during the Product lifetime
is lesser or equal to $200,000 in USD (or the market equal value in other
currencies), you will not owe me royalty payments under this
Agreement(the "Royalty-Free Limit").

6. If the total Revenue generated by your Product during the Product lifetime
has exceeded the Royalty-Free Limit, the Agreement obligates you to pay me
"Quarterly Royalties", and this obligation will be effective upon this
event to occur.

7. Quarterly Royalties are calculated by multiplying the calendar quarterly
gross Revenue by the factor of 0,02(two percents). Within 30 days after
the end of each calendar quarter in which you earn Revenue, you must report
the quarterly Revenue to me on a per Product basis, and pay me the 2% of
the quarterly Revenue.

8. To the extent of the applicable law, all Quarterly Royalty payments are
non-refundable under all circumstances.

9. I reserve the right to charge additional 1% late fee per calendar quarter
compounding for any amount unpaid after the required due date.

10. You are responsible for all taxes and transactional expenses on all
payments required to be made by you under this Agreement other than the
taxes of my income.

"Product Users" means any individual or an entity who receives a copy of your
Product, or to whom you provide a service(directly or through the third party
distributors or service providers) using your Product.

"Revenue" means total gross revenue generated by your Product worldwide
directly, and regardless of who receives the revenue. Revenue sources
include(but not limited to) such sources as digital or retail sales of the
Product, revenue from paid subscriptions to the Product as a service, donations
and crowdfund campaigns associated with the Product, any payments from the third
party distributors or the third party agents distributing, selling or offering
the Product.

## Distribution.

You can distribute or display copies of the Work without changes through network
to the third parties of this Agreement who have legal rights to receive these
copies as long as the distribution or displaying of the Work is free of
charge to the third party, and free of charge to me, and the distribution or
displaying will not extend my liability to the third parties of this Agreement.

When you distribute or display the Work to the third party you must ensure that
the third party also gets the text of this Agreement or a link
to this Agreement on GitHub:

https://github.com/Eliah-Lakhin/lady-deirdre/blob/master/EULA.md

For example, GitHub or any other Internet content distribution service that I
use to publish this Work or to publish any updates and upgrades to the Work also
receive the right under this term of the Agreement to distribute or to display
my Work without changes to the users who are also bound by this Agreement terms.

## Warranty.

**As far as the law allows, this software comes as is, without any warranty or
condition, and I will not be liable to anyone for any damages related to
this software or this License, under any kind of legal claim.**

## Third Party Software.

By entering into this Agreement, you are accepting to the license terms of the
third party software incorporated into this Work that precedence over any
inconsistencies with the terms of this Agreement. You agree that the owners of
the third party software are intended third party beneficiary to this Agreement
in relation to your use of the third party software incorporated into this Work.

When you make a Derivative Work, or by making any contribution into this Work,
or otherwise use this Work in source or compiled form, you are not permitted
(and you may not permit others) to include, incorporate, combine or mix any
third party software or parts of it in source or compiled form that would
directly or indirectly require that all or a part of this Work be governed under
any terms other than those of this Agreement.

In particular, you may not incorporate any third party software licensed under
the GNU General Public License into this Work.

## Amendments, Continuation, Additional Terms.

I reserve the right to change and amend the terms of this Agreement,
to replace or amend this Agreement with another public license terms,
or to stop offering of this Work to public without any offering replacement.

Once you have agreed to the new terms and amendments, the new terms will
supersede the terms agreed previously.

You are not required to accept new terms or amendments, and this Agreement
will continue to govern your use of the Work you already have access to.
But if you do not or cannot agree to the new terms or amendments you will not
be allowed to use any new versions, updates, upgrades and changes in this Work
governed by new terms and amendments.

This Agreement does not supersede, amend or otherwise affect other agreements
you may have between you and me.

This Agreement does not have any obligations to make new versions and upgrades
to the Work, or to make available for access or download any versions or
upgrades to this Work.
56 changes: 56 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Lady Deirdre.

[![Lady Deirdre Main Crate API Docs](https://img.shields.io/docsrs/lady-deirdre?label=Main%20Docs)](https://docs.rs/lady-deirdre)
[![Lady Deirdre Macro Crate API Docs](https://img.shields.io/docsrs/lady-deirdre-derive?label=Macro%20Docs)](https://docs.rs/lady-deirdre-derive)
[![Lady Deirdre Main Crate](https://img.shields.io/crates/v/lady-deirdre?label=Main%20Crate)](https://crates.io/crates/lady-deirdre)
[![Lady Deirdre Macro Crate](https://img.shields.io/crates/v/lady-deirdre-derive?label=Macro%20Crate)](https://crates.io/crates/lady-deirdre-derive)

Compiler front-end foundation technology.

If you want to create your own programming language with IDE support from
day one, or if you are going to develop new IDE from scratch, or a programming
language LSP plugin, this Technology is for you!

Lady Deirdre provides a framework to develop Lexical Scanner, Syntax Parser and
Semantic Analyser that could work in live coding environment applying
user-input changes incrementally to all underlying data structures.

This Technology represents a set of essential instruments to develop modern
programming language compilers with seamless IDE integration.

**Features**:

- Written in Rust entirely.
- Derive-macros to define PL Grammar directly on Enum types.
- Smart error recovery system out of the box.
- Dependency-free no-std ready API.
- Works faster than Tree Sitter.

**Links:**
- [Main Crate API Documentation](https://docs.rs/lady-deirdre).
- [Macro Crate API Documentation](https://docs.rs/lady-deirdre-derive).
- [Repository](https://github.com/Eliah-Lakhin/lady-deirdre).
- [Examples, Tests, Benchmarks](https://github.com/Eliah-Lakhin/lady-deirdre/tree/master/work/crates/examples).
- [End User License Agreement](https://github.com/Eliah-Lakhin/lady-deirdre/blob/master/EULA.md).

**This Work is a proprietary software with source available code.**

To copy, use, distribute, and contribute into this Work you must agree to
the terms of the [End User License Agreement](https://github.com/Eliah-Lakhin/lady-deirdre/blob/master/EULA.md).

The Agreement let you use this Work in commercial and non-commercial purposes.
Commercial use of the Work is free of charge to start, but the Agreement
obligates you to pay me royalties under certain conditions.

If you want to contribute into the source code of this Work, the Agreement
obligates you to assign me all exclusive rights to the Derivative Work made by
you (this includes GitHub forks and pull requests to my repository).

The Agreement does not limit rights of the third party software developers as
long as the third party software uses public API of this Work only, and the
third party software does not incorporate or distribute this Work directly.

If you do not or cannot agree to the terms of this Agreement, do not use
this Work.

Copyright (c) 2022 Ilya Lakhin (Илья Александрович Лахин). All rights reserved.
39 changes: 39 additions & 0 deletions work/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
################################################################################
# This file is a part of the "Lady Deirdre" Work, #
# a compiler front-end foundation technology. #
# #
# This Work is a proprietary software with source available code. #
# #
# To copy, use, distribute, and contribute into this Work you must agree to #
# the terms of the End User License Agreement: #
# #
# https://github.com/Eliah-Lakhin/lady-deirdre/blob/master/EULA.md. #
# #
# The Agreement let you use this Work in commercial and non-commercial #
# purposes. Commercial use of the Work is free of charge to start, #
# but the Agreement obligates you to pay me royalties #
# under certain conditions. #
# #
# If you want to contribute into the source code of this Work, #
# the Agreement obligates you to assign me all exclusive rights to #
# the Derivative Work or contribution made by you #
# (this includes GitHub forks and pull requests to my repository). #
# #
# The Agreement does not limit rights of the third party software developers #
# as long as the third party software uses public API of this Work only, #
# and the third party software does not incorporate or distribute #
# this Work directly. #
# #
# AS FAR AS THE LAW ALLOWS, THIS SOFTWARE COMES AS IS, WITHOUT ANY WARRANTY #
# OR CONDITION, AND I WILL NOT BE LIABLE TO ANYONE FOR ANY DAMAGES #
# RELATED TO THIS SOFTWARE, UNDER ANY KIND OF LEGAL CLAIM. #
# #
# If you do not or cannot agree to the terms of this Agreement, #
# do not use this Work. #
# #
# Copyright (c) 2022 Ilya Lakhin (Илья Александрович Лахин). #
# All rights reserved. #
################################################################################

[workspace]
members = ["crates/*"]
Loading

0 comments on commit 70ed01a

Please sign in to comment.