Merge branch 'dev' into 8-reporting-of-error-messages

This commit is contained in:
Galfour 2019-06-06 17:37:49 +00:00
commit 1aff86d464
31 changed files with 10295 additions and 325 deletions

View File

@ -1,67 +0,0 @@
# 1 "examples/counter.ligo"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 17 "/usr/include/stdc-predef.h" 3 4
# 32 "<command-line>" 2
# 1 "examples/counter.ligo"
type action is
| Increment of int
| Decrement of int
const coeficient : int = 2;
function main (const p : action ; const s : int) : (list(operation) * int) is
block {skip} with ((nil : list(operation)),
case p of
| Increment n -> s + n
| Decrement n -> s - n
end)

View File

@ -0,0 +1,18 @@
---
id: back-end
title: Back End
---
The Back-End is the part that compiles down to Michelson. Instead of a single compilation step, it is separated in two parts.
## Transpiler and Mini_C
The Transpiler is a function that takes as input the Typed AST, and outputs expressions in a language that is basically a Michelson based on with named variables and first-class-environments.
On the one hand, there are cases in the AST like `E_if_bool` or `E_make_empty_list` that would be directly translated in Michelson like `IF {} {}` or `NIL`.
On the other hand, there are cases in the AST like `E_variable` or `E_environment_select` that specifically target the compiler.
The files of the Transpiler are in `transpiler/`, while those of Mini_c are in `mini_c/`.
## Compiler
The previous LIGOs compilation to Michelson model was quite complicated. The current one is quite straightforward, where the environment of variables (x -> 12, y -> “foo”) is compiled as Michelson stack (12 :: foo).
It has been simplified for multiple reasons:
Having a simple model reduces its number of points of failure.
Having a simple model makes optimizing it easier.
We submitted a change to the Tezos protocol that actually make it more efficient.

View File

@ -0,0 +1,15 @@
---
id: front-end
title: Front End
---
The Front-End is the part that deals with all syntactical matters. LIGO supports multiple Front-Ends. Each Front-End is composed of three different parts.
## Parser
A Parser is a function that takes a string of source code and outputs a structured representation of the program. This part usually uses Menhir, a parser generator compatible with OCaml.
Its files are in `parser/parser_name`.
## Concrete Syntax Tree
The CST is the aforementioned structured representation of the program. Is is structurally very close to the source code, and is mostly an intermediary there because manipulating string is not practical.
Its files are in `parser/parser_name`.
## Simplifier
A Simplifier is a function that takes a CST and outputs the corresponding Common AST. This is the actual bridge between a given syntax and LIGO.
Its files are in `simplify/parser_name`.

View File

@ -0,0 +1,16 @@
---
id: middle-end
title: Middle End
---
The Middle-End is the core of LIGO. It is also composed of three parts.
## Common AST
The Common AST is the closest thing to what could be called “LIGO lang”. As such, it should be as simple as possible. Collapsing particular cases in more general constructs is encouraged. Documenting it is crucial for people wholl write new parsers or editor support for Front-end related things.
Its files are in `ast_simplified/`, of interest is the definition of the AST itself in `ast_simplified/types.ml`.
## Type Checker
The Type Checker, among other things, checks that a given AST is valid with regard to type-safety. It also annotates expressions with their types, free-variables and local environments.
As time passes, we want to make the type-system stronger, to encode arbitrarily complex properties in an extensible manner.
Its files are in `typer/`.
## Typed AST
The Typed AST is the result of Type Checker. On top of it, we also want to define/export many features aiming at making building tools on top LIGO as easy as possible.
Its files are in `ast_typed/`, of interest is the definition of the Typed AST itself in `ast_typed/types.ml`.

View File

@ -0,0 +1,16 @@
---
id: overview
title: Overview
---
After going through the design principles and a few considerations linked to them, getting the Big Picture needs diving in technical matters.
![LIGO Overview](/img/big-picture-overview.png)
As shown in the Schema, LIGOs compiler is separated in roughly 3 separate parts:
- The Middle End. This is the core of LIGO. It defines its core data-structure (the Common AST), and its type-checking algorithm.
- The Front End. This is the bridge between a given syntax and the Common AST.
- The Back End. This is the bridge between the Common AST and a given compilation target. Currently, our only target is Michelson, but well also target Marigold, and if Tezos moves to Web Assembly, Web Assembly.

View File

@ -0,0 +1,21 @@
---
id: vendors
title: Vendors
---
Next to LIGOs main pipeline, we use some other libraries, that are in the folder `vendors`.
## ligo-utils
This, quite expectedly, defines utilities that are used in LIGO.
There are three kinds of utilities, corresponding to their dependencies.
`tezos-utils` contain utilities that depend on some Tezos libraries.
`proto-alpha-utils` contain utilities that depend on the compilation of some Tezos protocol. It is very big and thus cant be compiled in JS. This is because of a dependency to this that we dont have LIGO in the browser yet.
`simple-utils` contain most utilities. For instance, in `simple-utils` are `X_list` and `X_option`, that extend the `List` module and the `option` type found in `Pervasives`.
Of particular interest in `simple-utils` is `trace.ml`, a module used pervasively in LIGOs code-base. It deals with exceptions (and soon enough debugging annotations) in a functional manner. It offers a lot of utilities to build, combine and propagate exceptions. Given its used everywhere, that it relies on some advanced features of OCaml (higher order functions, ppx preprocessing) and that it exposes **a lot** of functions, its a good idea to look at this files documentation.
## tezos-modded
`tezos-modded` is a modded version of Tezos. There are modifications in it that are quite useful (exposing more functions from the protocol, giving more options to functions already defined), but not integrated yet.
It should in the end be integrated into the Tezos protocol, but until then, we use this.

View File

@ -0,0 +1,40 @@
---
id: getting-started
title: Getting started
---
## Where
As weve seen, LIGO is big, as such, it is easier to start focus on a specific part of LIGO. As very vague suggestions:
If you want to immediately see the result of your contributions, you might want to start with the Front-End. This is what most people will directly see of LIGO.
If you want to get into Programming Language Theory, you might want to start with the Middle-End. This is where the Type System and the Language Definition are (the closest thing so far that youll find in a research paper).
If you want to get into the nitty gritty details of compiling to special targets, youll want to focus on the Back-End.
If you want to develop tooling on top of LIGO (editor integration, for instance), youll want to look at `Ast_typed/types.ml`. This is where most information that is relevant to devs will be (for now).
If you really want to get a grasp of the whole pipeline, search for issues tagged with “Everything”, theyll have you look at multiple parts of the code base.
## What
Likely, the first issues will be about:
Adding tests
Extending the languages by adding new operators
Adding tests
Refactoring
Writing documentation and tutorials for users
Adding tests
Writing internal documentation when you understand a part of the code base
>Tests are **really** important, we dont have lots of them, and mostly regression ones. This cant be stressed enough. Some features are missing not because we cant add them, but because we dont know so as no tests tell us they are missing.
## How
Issues will be added to the Gitlab, tagged with On-boarding and Front-End / Middle-End / Back-End / Everything. If you try to tackle one issue, and you have **any** problem, please tell us, by creating a new Gitlab issue, contacting us on Riot, Discord or even by mail! Problems might include:
Installing the repository or the tools needed to work on it
OCaml weirdness
Understanding undocumented parts of the code base
Documented parts of the code base too
**Anything really**
---
## FAQ
### I dont know much about OCaml, where should I start? What should I have in mind?
Id suggesting going through Real World OCaml to get a feel for the language, to know what are its features, and to know what to Google when youre lost.
Beyond that, Id say, start hacking! Either on LIGOs code base, or on any personal project.
There is a Discord server if you want real-time help (which makes things go way faster than waiting for an answer on stackoverflow or looking mindlessly at the monitor).
### I want to add [X] to LIGO! Where should I begin?
Trying to add a new feature from scratch instead of building upon one can be quite complicated. However, if youre motivated, contact us! Well tell you what we see as the most likely plan to get the result you want to achieve.

View File

@ -0,0 +1,10 @@
---
id: origin
title: Origin
---
LIGO is a programming language that aims to provide developers with an uncomplicated and safer way to implement smart-contracts. LIGO is currently being implemented for the Tezos blockchain and as a result, it compiles down to Michelson - the native smart-contract language of Tezos.
> Smart-contracts are programs that run within a blockchain network.
LIGO was initially meant to be a language for developing Marigold, on top of a hacky framework called Meta-Michelson. However, due to the attention received by the Tezos community, a decision has been put into action to develop LIGO as a standalone language that will support Tezos directly as well.

View File

@ -0,0 +1,45 @@
---
id: philosophy
title: Philosophy
---
To understand LIGOs design choices, its important to get its philosophy. There are two main concerns that we have in mind when building LIGO.
## Safety
Once a smart-contract is deployed, it will likely be impossible to change it. You must get it right on the first try, and LIGO should help as much as possible. There are multiple ways to make LIGO a safer language for smart-contracts.
### Automated Testing
Automated Testing is the process through which a program will run some other program, and check that this other program behaves correctly.
There already is a testing library for LIGO programs written in OCaml that is used to test LIGO itself. Making it accessible to users will greatly improve safety. A way to do so would be to make it accessible from within LIGO.
### Static Analysis
Static analysis is the process of having a program analyze another one.
For instance, type systems are a kind of static analysis through which it is possible to find lots of bugs. There is already a fairly simple type system in LIGO, and we plan to make it much stronger.
### Conciseness
Writing less code gives you less room to introduce errors and that's why LIGO encourages writing lean rather than chunky smart-contracts.
---
## Ergonomics
Having an ergonomic product is crucial on multiple levels:
Making features easily accessible ensures theyll actually get used.
Not wasting users time on idiosyncrasies frees more time for making contracts safer or building apps.
Keeping users in a Flow state makes it possible to introduce more complex features in the language.
There are multiple ways to improve ergonomics.
### The Language
LIGO should contain as few surprises as possible. This is usually known as the principle of least surprise.
Most programmers who will use LIGO have already spent a lot of time learning to develop in an existing language, with its own set of conventions and expectations. These expectations are often the most important to accommodate. This is why C-style syntaxes are especially popular (e.g. JavaScript), C-style is well known and new languages want to take advantage of that familiarity. Therefore as an extension of the principle of least surprise, LIGO supports more than one syntax. The least surprising language for a new developer is the one that they have already learned how to use. Its probably not practical to replicate the syntax of every programming language, so LIGO takes the approach of replicating the structure used by languages from a particular paradigm.
It is packaged in a Docker container, so that no particular installation instructions are required.
### Editor Support
Without editor support, a lot of manipulations are very cumbersome. Checking for errors, testing, examining code, refactoring code, etc. This is why there is ongoing work on editor support, starting with highlighting and code-folding.
### Docs
Docs include documentation of the languages, tutorials, as well as examples and design patterns.
Were a long way from there. But having extensive docs is part of our goals.

View File

@ -0,0 +1,20 @@
---
id: long-term
title: Longer term
---
Soon enough, the Schema for the front-end will look like this:
![LIGO Overview](/img/generic-front-end.png)
Basically, as we support more syntaxes (up to half a dozen), well have a bigger need for a unified representation and generation of the helpers around it.
For instance:
Parsers. So far, parsers are generated by LR grammars. LR grammars have a steep learning curve, regularly making not worth it for someone to learn the whole formalism to extend a given grammar with a few cases. Generating those LR Grammars would thus save a lot of time.
Displayers. The idea is that if you can parse and display code in a given syntax, it becomes much easier to have a translator between each syntax. So that not only it becomes possible for users to write code in their favorite syntax, but also to only read code in their favorite syntax.
BNFs. BNF grammars are a common formalism to represent grammars. They are understood by many tools, and are an easy way to document a given syntax.
## Super Type System
Soon enough, the Schema for the middle-end will look like this:
![LIGO Overview](/img/super-type-system.png)
Basically, this schema shows that the Back-End will stop being the main consumer of the Typed AST, and the External World will in its stead.
As such, annotating the AST with quality information, documenting it and exposing the libraries that produced the information in the first place will be paramount.
The imagined type-system so far is a mixture of MLF, extensible data-types and Algebraic Effects.

View File

@ -0,0 +1,20 @@
---
id: short-term
title: Short term
---
## Documentation and Testing
We lack documentation and tests. Top priority.
Tests are needed at multiple levels:
Unit tests. Most utility functions should be tested individually.
Interface tests. Parts of the pipeline (Typer, Transpiler-Compiler, etc.) should be tested as black boxes.
Integration tests. Typical user scenarios, as interacted with the CLI, should be tested.
## Exposing Features
Many features have already been developed or nearly developed, and mostly need to be shown some attention, and then be exposed to the outside world, for instance:
Testing LIGO code
Step-by-step interpreter
LIGO in the browser
Propagating source locations for error messages
Dry-running a contract
## Refactoring
For the longer-term, its crucial to refactor big parts of the code base. This is needed to lower the complexity of the code base, so that its easier both for everyone (including API consumers) to interact with it.

View File

@ -1,65 +0,0 @@
# 1 "examples/functions.ligo"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 17 "/usr/include/stdc-predef.h" 3 4
# 32 "<command-line>" 2
# 1 "examples/functions.ligo"
function multiply (const a : int ; const b : int) : int is
begin
const result : int = a * b ;
end with result
function add (const a : int ; const b : int) : int is
block { skip } with a + b
function main (const p : unit ; const s : unit) : (list(operation) * unit) is
block {skip} with ((nil : list(operation)), s)

View File

@ -1,2 +0,0 @@
#!/bin/bash
docker run -v $PWD:$PWD -w $PWD stovelabs/granary-ligo $@

View File

@ -1,71 +0,0 @@
# 1 "examples/multiple-entrypoints.ligo"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 17 "/usr/include/stdc-predef.h" 3 4
# 32 "<command-line>" 2
# 1 "examples/multiple-entrypoints.ligo"
type action is
| Increment of int
| Decrement of int
function add (const a : int ; const b : int) : int is
block { skip } with a + b
function subtract (const a : int ; const b : int) : int is
block { skip } with a - b
function main (const p : action ; const s : int) : (list(operation) * int) is
block {skip} with ((nil : list(operation)),
case p of
| Increment n -> add(s, n)
| Decrement n -> subtract(s, n)
end)

View File

@ -1,60 +0,0 @@
# 1 "examples/variables.ligo"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 17 "/usr/include/stdc-predef.h" 3 4
# 32 "<command-line>" 2
# 1 "examples/variables.ligo"
const four : int = 4;
const name : string = "John Doe";
function main (const p : unit ; const s : int) : (list(operation) * int) is
block {skip} with ((nil : list(operation)), s)

View File

@ -95,7 +95,10 @@ class Footer extends React.Component {
height="45"
/>
</a>
<section className="copyright">{this.props.config.copyright}</section>
<section className="copyright">
<div>Icons made by <a href="https://www.flaticon.com/authors/lucy-g" title="Lucy G">Lucy G</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a> is licensed by <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></div>
{this.props.config.copyright}
</section>
</footer>
);
}

9652
gitlab-pages/website/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,35 @@ class HomeSplash extends React.Component {
const SplashContainer = props => (
<div className="homeContainer">
<div className="homeSplashFade">
<div className="wrapper homeWrapper">{props.children}</div>
<div className="wrapper homeWrapper">
<div class="tabs">
<div class="nav-tabs">
<div id="tab-group-3-tab-4" class="nav-link active" data-group="group_3"
data-tab="tab-group-3-content-4">Pascaligo</div>
{/* <div id="tab-group-3-tab-5" class="nav-link" data-group="group_3"
data-tab="tab-group-3-content-5">Camligo</div> */}
</div>
<div class="tab-content">
<div id="tab-group-3-content-4" class="tab-pane active" data-group="group_3" tabIndex="-1">
<div>
<span>
<pre><code class="hljs css language-Pascal">// variant defining pseudo multi-entrypoint actions<br />type action is<br />| Increment of int<br />| Decrement of int<br /><br />function add (const a : int ; const b : int) : int is<br /> block {'{ skip }'} with a + b<br /><br />function subtract (const a : int ; const b : int) : int is<br /> block {'{ skip }'} with a - b<br /><br />// real entrypoint that re-routes the flow based on the action provided<br />function main (const p : action ; const s : int) : (list(operation) * int) is<br /> block {'{ skip }'} with ((nil : list(operation)),<br /> case p of<br /> | Increment n -&gt; add(s, n)<br /> | Decrement n -&gt; subtract(s, n)<br /> end)<br /></code></pre>
</span>
</div>
</div>
<div id="tab-group-3-content-5" class="tab-pane" data-group="group_3" tabIndex="-1">
<div>
<span>
SOON
</span>
</div>
</div>
</div>
</div>
{props.children}
</div>
</div>
</div>
);
@ -37,7 +65,6 @@ class HomeSplash extends React.Component {
const ProjectTitle = () => (
<h2 className="projectTitle">
{siteConfig.title}
<small>{siteConfig.tagline}</small>
</h2>
);
@ -60,12 +87,12 @@ class HomeSplash extends React.Component {
return (
<SplashContainer>
{/* <Logo img_src={`${baseUrl}img/undraw_monitor.svg`} /> */}
<div className="inner">
<ProjectTitle siteConfig={siteConfig} />
<PromoSection>
<Button href={docUrl('setup-installation.html')}>Getting started</Button>
<Button href={docUrl('language-basics-variables.html')}>Language reference</Button>
<Button href={docUrl('contributors/origin.html')}>Contributing</Button>
</PromoSection>
</div>
</SplashContainer>
@ -145,28 +172,31 @@ class Index extends React.Component {
);
const Features = () => (
<div className="features">
<h1 className="sectionTitle blockTitle">Features</h1>
<Block layout="fourColumn">
{[
{
content: 'Write in PascaLIGO (pascal-like syntax) or CameLIGO (caml-like syntax). If you know OCaml, you can also add your own syntax.',
image: ``,
image: `${baseUrl}img/edit.svg`,
imageAlign: 'top',
title: 'Syntax Agnostic',
},
{
content: 'Write types, then code, and benefit from the safety coming from type systems.',
image: ``,
image: `${baseUrl}img/lightning.svg`,
imageAlign: 'top',
title: 'Strong Type System',
},
{
content: 'With Granary, you can use LIGO as a lib from NodeJS.',
image: ``,
image: `${baseUrl}img/puzzle.svg`,
imageAlign: 'top',
title: 'Easy Integration',
}
]}
</Block>
</div>
);
const Roadmap = () => (
@ -202,12 +232,12 @@ class Index extends React.Component {
</div>
);
const Showcase = () => {
if ((siteConfig.users || []).length === 0) {
const Partners = () => {
if ((siteConfig.partners || []).length === 0) {
return null;
}
const showcase = siteConfig.users
const showcase = siteConfig.partners
.filter(user => user.pinned)
.map(user => (
<a href={user.infoLink} key={user.infoLink}>
@ -219,8 +249,36 @@ class Index extends React.Component {
return (
<div className="productShowcaseSection paddingBottom">
<h2>Who is Using This?</h2>
<p>This project is used by all these people</p>
<h1 className="sectionTitle">Partners</h1>
<div className="logos">{showcase}</div>
{/* <div className="more-users">
<a className="button" href={pageUrl('users.html')}>
More {siteConfig.title} Users
</a>
</div> */}
</div>
);
};
const Team = () => {
if ((siteConfig.team || []).length === 0) {
return null;
}
const showcase = siteConfig.team
.filter(user => user.pinned)
.map(user => (
<a href={user.infoLink} key={user.infoLink}>
<img src={user.image} alt={user.caption} title={user.caption} />
<p>{user.caption}</p>
</a>
));
const pageUrl = page => baseUrl + (language ? `${language}/` : '') + page;
return (
<div className="productShowcaseSection paddingBottom team">
<h1 className="sectionTitle">Team</h1>
<div className="logos">{showcase}</div>
{/* <div className="more-users">
<a className="button" href={pageUrl('users.html')}>
@ -235,13 +293,15 @@ class Index extends React.Component {
<div>
<HomeSplash siteConfig={siteConfig} language={language} />
<div className="mainContainer">
<Features />
<Roadmap />
{/* <Roadmap /> */}
{/* <FeatureCallout /> */}
{/* {/* <LearnHow /> */}
{/* <TryOut /> */}
{/* <Description /> */}
{/* <Showcase /> */}
<Team />
<Partners />
</div>
</div>
);

View File

@ -3,5 +3,17 @@
"Setup": ["setup-installation"],
"Language Basics": ["language-basics-variables", "language-basics-functions", "language-basics-entrypoints", "language-basics-operators"],
"API": ["api-cli-commands"]
},
"contributors-docs": {
"Introduction": ["contributors/origin", "contributors/philosophy"],
"Big Picture": [
"contributors/big-picture/overview",
"contributors/big-picture/front-end",
"contributors/big-picture/middle-end",
"contributors/big-picture/back-end",
"contributors/big-picture/vendors"
],
"Road Map": ["contributors/road-map/short-term", "contributors/road-map/long-term"],
"Contributing": ["contributors/contributing/getting-started"]
}
}

View File

@ -9,20 +9,79 @@
// site configuration options.
// List of projects/orgs using your project for the users page.
const users = [
const partners = [
{
caption: 'User1',
caption: 'Nomadic Labs',
// You will need to prepend the image path with your baseUrl
// if it is not '/', like: '/test-site/img/image.jpg'.
image: '/img/undraw_open_source.svg',
infoLink: 'https://www.facebook.com',
image: 'https://media.licdn.com/dms/image/C560BAQGE4y1pddQlrw/company-logo_200_200/0?e=2159024400&v=beta&t=aszI_Js3VuY7P20n1pYVAJmeRhM1kC_ftMrowcQa2ZQ',
infoLink: 'https://www.nomadic-labs.com/',
pinned: true,
},
{
caption: 'Tocqueville Group',
// You will need to prepend the image path with your baseUrl
// if it is not '/', like: '/test-site/img/image.jpg'.
image: 'https://tqgroup.io/static/images/logo.svg',
infoLink: 'https://tqgroup.io/',
pinned: true,
},
{
caption: 'Stove Labs',
// You will need to prepend the image path with your baseUrl
// if it is not '/', like: '/test-site/img/image.jpg'.
image: 'https://stove-labs.com/logo_transparent.png',
infoLink: 'https://stove-labs.com',
pinned: true,
},
];
const team = [
{
caption: 'Gabriel Alfour',
// You will need to prepend the image path with your baseUrl
// if it is not '/', like: '/test-site/img/image.jpg'.
image: 'https://thepowerofthedream.org/wp-content/uploads/2015/09/generic-profile-picture-600x600.jpg',
infoLink: '#',
pinned: true,
},
{
caption: 'Georges Duperon',
// You will need to prepend the image path with your baseUrl
// if it is not '/', like: '/test-site/img/image.jpg'.
image: 'https://thepowerofthedream.org/wp-content/uploads/2015/09/generic-profile-picture-600x600.jpg',
infoLink: '#',
pinned: true,
},
{
caption: 'Christian Rinderknecht',
// You will need to prepend the image path with your baseUrl
// if it is not '/', like: '/test-site/img/image.jpg'.
image: 'https://thepowerofthedream.org/wp-content/uploads/2015/09/generic-profile-picture-600x600.jpg',
infoLink: '#',
pinned: true,
},
{
caption: 'Brice Aldrich',
// You will need to prepend the image path with your baseUrl
// if it is not '/', like: '/test-site/img/image.jpg'.
image: 'https://thepowerofthedream.org/wp-content/uploads/2015/09/generic-profile-picture-600x600.jpg',
infoLink: '#',
pinned: true,
},
{
caption: 'Matej Sima',
// You will need to prepend the image path with your baseUrl
// if it is not '/', like: '/test-site/img/image.jpg'.
image: 'https://scontent-frt3-2.xx.fbcdn.net/v/t1.0-9/56644817_2276459725943174_4007605942056124416_n.jpg?_nc_cat=107&_nc_ht=scontent-frt3-2.xx&oh=e8a86a2cfe76798cbdc28a0769ebccb1&oe=5D5423F0',
infoLink: 'https://sk.linkedin.com/in/matejsima',
pinned: true,
},
];
const siteConfig = {
title: 'LIGO', // Title for your website.
tagline: 'LIGO is a statically typed high-level smart-contract language that compiles down to Tezos. It seeks be easy to use, extensible and safe.',
tagline: 'LIGO is a statically typed high-level smart-contract language that compiles down to Michelson. It seeks to be easy to use, extensible and safe.',
url: 'https://your-docusaurus-test-site.com', // Your website URL
baseUrl: '/', // Base URL for your project */
// For github.io type URLs, you would set the url and baseUrl like:
@ -40,20 +99,22 @@ const siteConfig = {
headerLinks: [
{doc: 'setup-installation', label: 'Docs'},
{doc: 'api-cli-commands', label: 'CLI'},
{doc: 'contributors/origin', label: 'Contributing'},
],
// If you have users set above, you add it here:
users,
partners,
team,
/* path to images for header/footer */
headerIcon: 'img/favicon.ico',
headerIcon: 'img/logo.svg',
footerIcon: 'img/favicon.ico',
favicon: 'img/favicon.ico',
/* Colors for website */
colors: {
primaryColor: '#479e10',
secondaryColor: '#316e0b',
primaryColor: '#1A1A1A',
secondaryColor: '#1A1A1A',
},
/* Custom fonts for website */

View File

@ -1,9 +1,166 @@
/* your custom css */
ul {
max-width: 350px;
margin: 0 auto;
text-align: left;
}
.projectTitle small {
max-width: 700px;
text-align: center;
margin: 0 auto;
margin-top: 0.7em;
}
.fixedHeaderContainer header .headerTitleWithLogo {
display: none;
}
.fixedHeaderContainer header img {}
.nav-footer {
background: #1A1A1A;
}
.navigationSlider .slidingNav {
background: #1A1A1A;
}
.homeContainer {
box-shadow: inset 0 -10px 10px -6px rgba(177, 176, 176, 0.2);
background: #f6f4f4;
}
.homeContainer .hljs {
text-align: left;
background: transparent;
}
.homeContainer .tabs {
width: 800px;
margin: 0 auto;
border-top: none;
border-bottom: 4px solid #e0e0e0;
}
.homeContainer .tab-content {
border-top: 4px solid #e0e0e0;
}
.homeContainer .nav-tabs {
border: none;
position: relative;
top: 4px;
}
.button {
border: 1px solid #B2210C;
color: #B2210C;
}
/*
dark red: B2210C
*/
.button:hover, .promoSection .buttonWrapper:first-of-type > a.button {
background: #B2210C;
color: white;
}
blockquote {
background-color: rgba(178, 33, 12, 0.7);
border-left: 8px solid #B2210C;
color: white;
}
a {
color: rgba(26, 26, 26, 0.7);
}
a:hover {
color: rgba(26, 26, 26, 1);
}
.homeContainer .homeWrapper .projectLogo {
display: block;
position: relative;
padding: 0;
}
.projectTitle {
margin-top: 30px;
margin-bottom: 0;
}
.projectTitle small {
margin: 0 auto;
}
.promoSection .promoRow {
padding-top: 0;
margin-top: 30px;
}
.promoSection .promoRow .pluginRowBlock .pluginWrapper {
padding: 0 4px;
}
.blockElement {
color: #1A1A1A;
}
.blockImage {
margin-bottom: 0px;
}
.blockContent {
margin-top: -25px;
}
.features {
background: white;
margin-top: -40px;
position: relative;
text-align: center;
/* box-shadow: 0 10px 10px -6px rgba(177, 176, 176, 0.3); */
}
.sectionTitle {
border-bottom: 4px solid #e0e0e0;
max-width: 200px;
margin: 0 auto;
margin-top: 35px;
padding-bottom: 15px;
}
.sectionTitle.blockTitle {
margin-bottom: -20px;
}
.lightBackground, body, html {
background: white;
}
.copyright a {
color: #B2210C;
}
.productShowcaseSection.team .logos img {
border-radius: 50%;
height: 150px;
margin-bottom: 0px;
padding-left: 40px;
padding-right: 40px;
}
.productShowcaseSection.team .logos p {
padding-top: 0px;
}
@media only screen and (min-device-width: 360px) and (max-device-width: 736px) {
}
@media only screen and (min-width: 1024px) {
@media only screen and (min-width: 1200px) {
}
@media only screen and (max-width: 1023px) {
@ -14,16 +171,3 @@
@media only screen and (min-width: 1500px) {
}
ul {
max-width: 350px;
margin: 0 auto;
text-align: left;
}
.projectTitle small {
max-width: 500px;
text-align: center;
margin: 0 auto;
margin-top: 0.7em;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

View File

@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 129 129" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 129 129">
<g>
<g>
<path fill="#1A1A1A" d="m119.2,114.3h-109.4c-2.3,0-4.1,1.9-4.1,4.1s1.9,4.1 4.1,4.1h109.5c2.3,0 4.1-1.9 4.1-4.1s-1.9-4.1-4.2-4.1z"/>
<path fill="#1A1A1A" d="m5.7,78l-.1,19.5c0,1.1 0.4,2.2 1.2,3 0.8,0.8 1.8,1.2 2.9,1.2l19.4-.1c1.1,0 2.1-0.4 2.9-1.2l67-67c1.6-1.6 1.6-4.2 0-5.9l-19.2-19.4c-1.6-1.6-4.2-1.6-5.9-1.77636e-15l-13.4,13.5-53.6,53.5c-0.7,0.8-1.2,1.8-1.2,2.9zm71.2-61.1l13.5,13.5-7.6,7.6-13.5-13.5 7.6-7.6zm-62.9,62.9l49.4-49.4 13.5,13.5-49.4,49.3-13.6,.1 .1-13.5z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

View File

@ -0,0 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 129 129" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 129 129">
<g>
<path fill="#1A1A1A" d="m57.4,122.2c0.5,0.2 1,0.3 1.5,0.3 1.3,0 2.6-0.6 3.4-1.8l42.9-62c0.9-1.2 1-2.9 0.3-4.2-0.7-1.3-2.1-2.2-3.6-2.2l-26.6-.2 7.7-40.8c0.4-1.8-0.6-3.7-2.3-4.5-1.7-0.8-3.7-0.3-4.9,1.2l-45.5,57.3c-1,1.2-1.2,2.9-0.5,4.3 0.7,1.4 2.1,2.3 3.7,2.3l29.4,.2-7.9,45.6c-0.4,1.9 0.6,3.8 2.4,4.5zm-15.5-58.4l30-37.8-5.6,29.5c-0.2,1.2 0.1,2.4 0.9,3.4 0.8,0.9 1.9,1.5 3.1,1.5l23.7,.1-27.9,40.4 5.5-32.2c0.2-1.2-0.1-2.4-0.9-3.3-0.7-0.9-1.8-1.4-3-1.4l-25.8-.2z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 683 B

View File

@ -0,0 +1,52 @@
<svg width="506" height="226" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<style>.cls-1{isolation:isolate;}.cls-2{mix-blend-mode:screen;}.cls-3,.cls-4{fill:none;stroke-linecap:round;stroke-linejoin:round;}.cls-3{stroke:#b2210c;stroke-width:3px;}.cls-4{stroke:#fff;}.cls-5{fill:#fff;}.cls-6{opacity:0.56;mix-blend-mode:multiply;}.cls-7{fill:#333;}</style>
<image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAABUCAYAAACRBleVAAAACXBIWXMAAAsSAAALEgHS3X78AAAGeElEQVRoQ+2ZwW7cyBGG/7+6Sc7II2m1gLLZAD4EMHyQ4ZMfYPcl/Dxev078EvsCOQX2ITA2Bx+ChRaQVxpL4nR3/TmQlCjOjOQggz0E+gGiOc3q+rqKTYrqoiT8kbKHDHat/39gfMgAAEgSADbdbfatvnIx3AskSeEW9PbW/400XO5n9RB4a0oHWA/hO8BOunMbjpO+HwDfAhRus7FN3DghkkM0JwCPAf4T4NGL9QjP3kPPAZ0C+tBH+wYQtkS6BhwiQzdr+74HffkCe5I74NzBK+ucf4nQkyfws/fQvwG9ARyAtqX3zj2cpNG+B/j0GWz5O+wvCXZdYBffgAsAKwD7n6HDAP89g0+fwfER/rZLsQsQSU6hdyPsU3kC8Aywp89g5RLBVwjtAQwrhKh9XgucEcq8EGqU5hxuNUrYQ/n0EX4E+Icu2rXUrgEB8GfA/vEM4a89bLmHeJD3gzcessuig9mgaHRrrZzHi7K4RLYa5V97KC8/ovzYp3YKvFmlw+p6B3Af4MsMXiXYcg/xqF5ED6WWeW30pjVvjN7IvPZQ6qN6EZd7iFcJ9jJ349/1i266au/cw+ERwAtwfgbDPsLB9X5IKlWMXuVWVVXXZgIjodyuPFZMqQUOyr6u9i98eQ0/fQH/8B7DSt8c4dD7A4BF20W3lw/NGw9WKWarK1lVJ3gDeJPgjayqs9WVVYreeNjLh3aVYIsW/GHid9CdCE/65+15BtO34PmFh+ge90wx0CsFVcyKjKAypIDM7ILkrXvJ7uXJt8jztvNzcl+Eg169Ak4z2CbYbC6rG9gqVrGYKqcqN1WpqPb+dzFVq1jFuuns2wQ7zeCrV1PPnSJw52HHL9fg3MHsoFF0KUAKgAKp6IwVKToo8wwJBVAQFQJFCowO/nJ9+1YaP483EY5fzGcFrPyQUWAQGAVDQFCIIUiBjhikoBADAkIUrLdj5Yc8K7e+pi/8jS/v7/o2SCzemFWgSRYcll3Bgiy7QnCYSWYVWLyxIHE8fpPWgIu2m9Gli62DDQBKLAJdMkZQgjF2v4tASmwAtA5eegcd/Ey19c/TQd+mWswCDRULQArsIGBB158FproDDeO26Q7wuM/379611qfI+v7YnxOgARyeqeH6YD+MH/yNZcDmT4epskTXXQcuMPeQ+zT2/+BHlPWQasv1od+0Hs0mfdVH1F1FdHMmgPKA7boejHDXegTuXI/AnesRuHM9AneuR+DO9QjcuR6BO9cjcOd6BO5cj8Cd6xG4cz0IrNjtCaSbnozuX+2Mcf9g95AM2LC3MVLbt5GUTZwaodhv0w12mzT2fyfC036H49DuOvbRzocDCoCmfWP7Yfwp1qPemtJzAE5qmHoAJECBkNi3PRwA0Hb259sc9loDfpz8dlIi5ExSD/EePu732x3QjX4GrQH/3EC/AtgzKhtUEbJMN3aHF7oXuJfbPsv0ilA2aM+oX3s/67gR8M0o30cBSkYVUslaN8K9wFFQYCgwdm1B8QI3wpO13tlTR+HW19gv0O9ESRIm2/3JPity4VH0InoBS2TJKoF2s+ddchZLAD2SLtKTPmu6vTWuzqxtfZ3NIBi0MKgYfeXwOVaZqLKSzEIBXVSgVJBjxRyxylfoihozh5YGnc2go6lzTO7ha0D4e1fAmjfwq0s6EosKc3YmVraiuDJ1LStbZWdSYUZiubqkzxv4l9j5ef3QY/EWwHNA30Xo029QFc99Xln2ijmWlLIzJedqOLIzxZKSV8zzynIVz/3Tb93454DeTmlj4HADTwEtG2hWwa1BWV5b8WSZDVeNUls3uVXdtY1Sy4YrT5aX11asQZlV8GXT1RPHfm8402LXO8DGlbWwh2jXB5GNR2UPqZEFB4tBVUtntKLWss/Oc7lEHlfYXgO+tdg16AOgI8D/dAhf1PBwgeKz85xSSHEeVsHD6lpdG+dhlVJIPjvP4QJlUXfjhnLe1DcwiXBcHf0ZsNMXsOMvsOUKtjiCXbWwysGlgwuDknWLa3nWTe70Cfz4PfzHe6qk6zXgUdHyGODpi654tbyGzR2sR0WQVYCuDFrMuvt2/B4+1ILfYL12uBkIrEGHgvOmWsSygaaF520wYAtwXIsawMDmssCwGm9A6Iy21vMlbT0AUAB/AuwnwNQffwPCcD66RvQB3HdsTulIQ0n1Pqsh7K1RjfQgcKpxTfdrAFP918D/VQ9+te1afzjwPzXf9EBEGP37AAAAAElFTkSuQmCC" height="84" width="28" id="image"/>
<image xlink:href="data:image/png;base64,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" height="28" width="505" id="image-2"/>
</defs>
<title>Plan de travail 2</title>
<g>
<title>background</title>
<rect fill="none" id="canvas_background" height="228" width="508" y="-1" x="-1"/>
</g>
<g>
<title>Layer 1</title>
<g stroke="null" id="svg_1" class="cls-1">
<g stroke="null" id="Calque_1">
<use stroke="null" id="svg_2" x="135" y="5" xlink:href="#image" class="cls-2"/>
<line stroke="null" id="svg_3" y2="75.18" x2="148.8" y1="19.19" x1="148.8" class="cls-3"/>
<use stroke="null" id="svg_4" x="135" y="5" xlink:href="#image" class="cls-2"/>
<line stroke="null" id="svg_5" y2="75.18" x2="148.8" y1="19.19" x1="148.8" class="cls-3"/>
<use stroke="null" id="svg_6" x="135" y="5" xlink:href="#image" class="cls-2"/>
<line stroke="null" id="svg_7" y2="75.18" x2="148.8" y1="19.19" x1="148.8" class="cls-3"/>
<line stroke="null" id="svg_8" y2="75.18" x2="148.8" y1="19.19" x1="148.8" class="cls-4"/>
<path stroke="null" id="svg_9" d="m157.89,171.21c-0.51,-19.43 0,-38.88 0,-58.33q0,-16.42 0,-32.86a9.31,9.31 0 0 0 -0.12,-1.75a8.8,8.8 0 0 0 -2.83,-5.16l-12.18,0a8.39,8.39 0 0 0 -2.95,6.56c-0.26,31.45 0.48,62.91 -0.37,94.36c-0.15,5.55 -0.06,11.12 0,16.68c0.1,10.35 0.25,20.69 0.39,31a6.46,6.46 0 0 0 0.11,0.84l17.66,0a3.71,3.71 0 0 0 0.13,-0.5c0.29,-5.92 -0.56,-11.88 0.51,-17.78c-0.3,-10.99 -0.06,-22.02 -0.35,-33.06zm-16.83,3.27q0,14.75 0,29.49a8,8 0 0 1 -0.08,0.84l-0.29,0.15c-0.17,-0.26 -0.46,-0.51 -0.48,-0.78c-0.06,-0.83 0,-1.67 0,-2.51l0,-27a3.59,3.59 0 0 1 0,-0.87a0.53,0.53 0 0 1 0.43,-0.32c0.13,0 0.32,0.2 0.38,0.35a1.82,1.82 0 0 1 0.04,0.65zm2.76,14.64l0,0c0,4.89 0,9.78 0,14.66a4,4 0 0 1 -0.41,1.13c-0.18,-0.39 -0.51,-0.78 -0.51,-1.17c0,-9.69 0,-19.38 0,-29.07a2.77,2.77 0 0 1 0.07,-0.87a0.56,0.56 0 0 1 0.45,-0.31a0.55,0.55 0 0 1 0.39,0.35a3.61,3.61 0 0 1 0,0.87l0.01,14.41zm2.69,15.14a2.77,2.77 0 0 1 -0.41,0.64a2.3,2.3 0 0 1 -0.46,-0.59a2.27,2.27 0 0 1 0,-0.74q0,-14.34 0,-28.69a5.41,5.41 0 0 1 0.41,-1.4a5.2,5.2 0 0 1 0.46,1.47c0,4.76 0,9.52 0,14.28l0,14.28a2.68,2.68 0 0 1 0,0.75zm1.82,0.6l0,-30.15a1.82,1.82 0 0 1 0,-0.62a3.14,3.14 0 0 1 0.43,-0.62a2.64,2.64 0 0 1 0.5,0.56a1.54,1.54 0 0 1 0,0.61q0,14.55 0,29.09c0.03,0.52 0.29,1.27 -0.93,1.13zm3.61,-0.5c-0.05,0.2 -0.26,0.36 -0.4,0.53a3.07,3.07 0 0 1 -0.43,-0.59a1.18,1.18 0 0 1 0,-0.5q0,-14.74 0,-29.48c0,-0.25 0,-0.49 0.05,-0.74l0.48,-0.18a4.65,4.65 0 0 1 0.32,1.11c0,2.42 0,4.85 0,7.27q0,10.86 0,21.71a3.6,3.6 0 0 1 -0.02,0.87zm-3.06,-80.62a3.59,3.59 0 0 1 -3.81,-3.86c0,-2.48 1.42,-4.19 3.61,-4.21s3.7,1.53 3.74,4s-1.34,4.03 -3.54,4.07zm5.87,51.09q0,14.41 0,28.84a4.83,4.83 0 0 1 -0.37,1.29l-0.47,-0.22l0,-31.52c0.41,0.36 0.71,0.51 0.82,0.74a2.29,2.29 0 0 1 0.02,0.87zm2.25,30.07a6.51,6.51 0 0 1 -0.44,-1.62c0,-4.72 0,-9.44 0,-14.16l0,0c0,-4.85 0,-9.7 0,-14.54a3.67,3.67 0 0 1 0.44,-1.11a3.33,3.33 0 0 1 0.44,1.09q0,14.35 0,28.71a6.59,6.59 0 0 1 -0.44,1.63z"/>
<path stroke="null" id="svg_10" d="m300.78,200.29c0,-5.58 0,-10.93 0,-16.28c0,-0.78 -0.39,-1 -1.1,-1c-0.5,0 -1,0 -1.5,0l-34.62,0c-1.33,0 -2.68,0.17 -3.75,-1a1.81,1.81 0 0 0 -1.19,-0.25c-1.1,0 -1.43,-0.53 -1.43,-1.56q0,-9.1 0,-18.2c0,-1 0.35,-1.38 1.4,-1.38q31.86,0 63.74,0c0.92,0 1.36,0.22 1.41,1.24a10.63,10.63 0 0 0 0.62,1.94a12.85,12.85 0 0 1 0.54,2.91q0,16.06 0,32.13q0,9.9 0,19.82c0,3.43 -0.51,3.94 -3.9,3.94l-44,0c-6,0 -12.05,0 -18.07,0a103.7,103.7 0 0 1 -21.33,-1.78a51.38,51.38 0 0 1 -6.67,-2.07c-2.43,-0.86 -4.85,-1.77 -7.24,-2.76a68.48,68.48 0 0 1 -16.37,-9.85a78.62,78.62 0 0 1 -21.08,-25c-6.06,-11.56 -8.49,-23.95 -8.15,-36.94c0.56,-21.44 9.08,-39.2 24.82,-53.61a70.56,70.56 0 0 1 41.19,-18.66c22.16,-2.32 41.76,3.7 58.68,18.3a71.67,71.67 0 0 1 14.15,16.48c2,3.25 3.64,6.75 5.36,10.18a23.89,23.89 0 0 1 1.56,4c0.52,1.83 0.05,2.39 -1.81,2.4c-5.52,0 -11,0.08 -16.56,-0.05a16.24,16.24 0 0 1 -4.27,-1.12c-0.26,-0.08 -0.46,-0.46 -0.61,-0.75a51.56,51.56 0 0 0 -14.2,-17a43.74,43.74 0 0 0 -14.31,-7.86c-5.47,-1.61 -11.05,-2.92 -16.81,-2.8c-6.07,0.13 -12.11,0.7 -17.85,2.91c-2.87,1.1 -5.89,2 -8.5,3.56a58.25,58.25 0 0 0 -9.51,6.65a75.66,75.66 0 0 0 -9.55,10.4a46.14,46.14 0 0 0 -5.07,9.16a51.88,51.88 0 0 0 -4.26,24.7a80.19,80.19 0 0 0 2.07,12.46c4,17.65 23.57,34.48 43,36.28c2.41,0.22 4.84,0.44 7.25,0.45c15.48,0 30.95,0 46.43,0l1.49,0.01zm21.35,-79.29c-0.2,-0.57 -0.33,-1 -0.49,-1.42a72.31,72.31 0 0 0 -35.14,-38.81c-18.54,-9.6 -37.94,-10.51 -57.7,-4.2c-10.83,3.46 -20,9.72 -28,17.75a72,72 0 0 0 -18.1,29.24a77.15,77.15 0 0 0 -2.79,32.87a68.53,68.53 0 0 0 8.25,25.48a76.63,76.63 0 0 0 13.65,17.54c13.84,13.45 30.42,20.43 49.69,20.59c23.13,0.18 46.26,0 69.39,0l1.44,0l0,-58.04l-63.78,0l0,18.46l1.69,0q20.14,0 40.28,0c1.18,0 1.61,0.31 1.58,1.55c-0.07,3.43 0,6.86 0,10.29c0,2.59 -0.06,5.19 0,7.78c0,1.24 -0.41,1.67 -1.59,1.53a8.34,8.34 0 0 0 -1,0q-23.52,0 -47.05,0c-10.68,0 -20.64,-2.66 -29.49,-8.73c-14.2,-9.71 -23.05,-22.83 -24.82,-40.21c-1.6,-15.78 2.29,-30 12.89,-42c14.33,-16.26 32.39,-22.2 53.46,-18c16.3,3.23 28.49,12.66 36.68,27.16a2.09,2.09 0 0 0 2.12,1.17c5.65,-0.07 11.29,0 16.94,0l1.89,0z"/>
<path stroke="null" id="svg_11" d="m414.43,71.41a74,74 0 0 1 32.77,7.29a75.65,75.65 0 0 1 18.74,13.07a79.13,79.13 0 0 1 13.88,17.23a55.39,55.39 0 0 1 4.16,8.11a135.48,135.48 0 0 1 4.65,13.56a62.43,62.43 0 0 1 1.88,14a76.21,76.21 0 0 1 -2.38,23.06a64.12,64.12 0 0 1 -5.81,15.15a62.78,62.78 0 0 1 -7.49,11.21c-2.39,2.67 -4.53,5.6 -7.17,8c-3.22,2.93 -6.37,6 -10.22,8.21c-2.17,1.23 -4.2,2.74 -6.41,3.9c-2.65,1.39 -5.4,2.58 -8.15,3.77c-6.85,3 -14.17,3.86 -21.49,4.48a84,84 0 0 1 -21.34,-1.4a65.91,65.91 0 0 1 -13.71,-4.43a70.43,70.43 0 0 1 -17.45,-10.23c-12.66,-10.12 -22.22,-22.5 -26.51,-38.31c-5.94,-21.91 -3.77,-42.94 8.76,-62.22c9.41,-14.47 22.27,-24.91 38.74,-30.58a74.65,74.65 0 0 1 24.55,-3.87zm73.57,74.92c0.62,-40.19 -33.55,-74 -74.14,-73.8c-40.06,0.19 -73.46,33.84 -73.41,74s34,74.53 75.53,73.65c38.53,-0.78 72.69,-33.27 72.02,-73.85z"/>
<path stroke="null" id="svg_12" d="m39.48,114.15c0,11.25 -0.13,22.51 0.06,33.75a89.79,89.79 0 0 0 1.46,12.3c1.52,9.67 6.63,17.41 13.35,24.26c10.42,10.63 23.08,15.79 37.9,15.83c6.2,0 12.39,0 18.58,0c1.19,0 2.1,0.11 2,1.63a1.11,1.11 0 0 0 0.15,0.73c1.38,1.62 0.94,3.56 1,5.4c0,3.93 0,7.87 0,11.8c0,1.93 -0.69,2.74 -2.64,2.72c-8.27,-0.08 -16.55,-0.1 -24.82,-0.46a62.2,62.2 0 0 1 -11.51,-1.69a68.29,68.29 0 0 1 -16.11,-6.34a78.65,78.65 0 0 1 -32.53,-31.59a67.67,67.67 0 0 1 -8.51,-28c-0.35,-4.25 -0.45,-8.52 -0.46,-12.78q-0.06,-33.94 0,-67.89c0,-2.4 0,-2.43 2.38,-2.43c5.69,0 11.38,0 17.07,0c1.12,0 1.78,0.24 1.66,1.51a1.21,1.21 0 0 0 0.17,0.84c1.17,1.25 1,2.81 1,4.27q0,18.08 0,36.14l-0.2,0zm-2.22,-41.47l-17.92,0c-0.93,0 -0.81,0.63 -0.81,1.21c0,24.84 0,49.68 0.13,74.52a68.76,68.76 0 0 0 6.72,29.47a75.53,75.53 0 0 0 19.7,25.19a68.33,68.33 0 0 0 41.82,16.77c7.88,0.39 15.8,0.18 23.7,0.23a4.11,4.11 0 0 0 0.7,-0.13l0,-18.39l-1.3,0c-5.9,0 -11.79,0 -17.69,0c-12.94,0 -24.53,-3.8 -34.55,-12.06c-13.08,-10.78 -20.41,-24.56 -20.57,-41.63c-0.22,-24.46 -0.07,-48.93 -0.08,-73.39l0.15,-1.79z"/>
<path stroke="null" id="svg_13" d="m152.83,119.62c0,2.47 -1.34,4.08 -3.55,4.12a3.59,3.59 0 0 1 -3.81,-3.86c0,-2.48 1.43,-4.19 3.61,-4.21s3.71,1.53 3.75,3.95z" class="cls-5"/>
<path stroke="null" id="svg_14" d="m146.93,189.23l0,14.28a2.35,2.35 0 0 1 0,0.75a2.77,2.77 0 0 1 -0.41,0.64a2.5,2.5 0 0 1 -0.45,-0.59a2.27,2.27 0 0 1 0,-0.74c0,-9.56 0,-19.13 0,-28.69a5,5 0 0 1 0.41,-1.4a5.55,5.55 0 0 1 0.46,1.47c0,4.76 -0.01,9.52 -0.01,14.28z" class="cls-5"/>
<path stroke="null" id="svg_15" d="m148.74,204.86l0,-30.15a1.82,1.82 0 0 1 0,-0.62a3.56,3.56 0 0 1 0.42,-0.62a2.44,2.44 0 0 1 0.51,0.56a1.54,1.54 0 0 1 0,0.61q0,14.55 0,29.09c0.03,0.52 0.33,1.27 -0.93,1.13z" class="cls-5"/>
<path stroke="null" id="svg_16" d="m144.23,189.12c0,4.89 0,9.78 0,14.66a3.65,3.65 0 0 1 -0.4,1.13c-0.18,-0.39 -0.52,-0.78 -0.52,-1.17q0,-14.53 0,-29.07a3.11,3.11 0 0 1 0.06,-0.87a0.59,0.59 0 0 1 0.45,-0.31a0.56,0.56 0 0 1 0.4,0.35a3.61,3.61 0 0 1 0,0.87c0,4.81 0,9.61 0,14.41l0.01,0z" class="cls-5"/>
<path stroke="null" id="svg_17" d="m154.31,204.74l0,-31.52c0.41,0.36 0.71,0.51 0.81,0.74a2.28,2.28 0 0 1 0,0.87q0,14.41 0,28.84a4.83,4.83 0 0 1 -0.37,1.29l-0.44,-0.22z" class="cls-5"/>
<path stroke="null" id="svg_18" d="m141.09,205c-0.17,-0.26 -0.47,-0.51 -0.49,-0.78c0,-0.83 0,-1.67 0,-2.51l0,-27a3.59,3.59 0 0 1 0,-0.87a0.53,0.53 0 0 1 0.42,-0.32c0.14,0 0.33,0.2 0.38,0.35a1.82,1.82 0 0 1 0,0.62l0,29.51a8,8 0 0 1 -0.08,0.84l-0.23,0.16z" class="cls-5"/>
<path stroke="null" id="svg_19" d="m152,173.4a4.65,4.65 0 0 1 0.32,1.11c0,2.42 0,4.85 0,7.27l0,21.71a3.59,3.59 0 0 1 0,0.87c-0.05,0.2 -0.26,0.36 -0.39,0.53a3.62,3.62 0 0 1 -0.44,-0.59a1.38,1.38 0 0 1 0,-0.5l0,-29.48c0,-0.25 0,-0.49 0.05,-0.74l0.46,-0.18z" class="cls-5"/>
<path stroke="null" id="svg_20" d="m157,189.12c0,-4.85 0,-9.7 0,-14.54a3.22,3.22 0 0 1 0.44,-1.11a3.57,3.57 0 0 1 0.44,1.09q0,14.35 0,28.71a6.21,6.21 0 0 1 -0.45,1.63a7,7 0 0 1 -0.44,-1.62c0,-4.72 0,-9.44 0,-14.16l0.01,0z" class="cls-5"/>
<path stroke="null" id="svg_21" d="m322.13,121l-1.89,0c-5.65,0 -11.29,0 -16.94,0a2.09,2.09 0 0 1 -2.12,-1.28c-8.19,-14.5 -20.38,-23.93 -36.68,-27.16c-21.07,-4.17 -39.13,1.77 -53.46,18c-10.6,12 -14.49,26.21 -12.89,42c1.77,17.38 10.62,30.5 24.82,40.21c8.85,6.07 18.81,8.71 29.49,8.73q23.52,0 47.05,0a8.34,8.34 0 0 1 1,0c1.18,0.14 1.63,-0.29 1.59,-1.53c-0.08,-2.59 0,-5.19 0,-7.78c0,-3.43 -0.05,-6.86 0,-10.29c0,-1.24 -0.4,-1.55 -1.58,-1.55q-20.14,0 -40.28,0l-1.69,0l0,-18.35l63.78,0l0,58.11l-1.44,0c-23.13,0 -46.26,0.14 -69.39,0c-19.27,-0.16 -35.85,-7.14 -49.69,-20.59a76.63,76.63 0 0 1 -13.65,-17.54a68.53,68.53 0 0 1 -8.25,-25.48a77.15,77.15 0 0 1 2.79,-32.87a72,72 0 0 1 18.1,-29.24c8,-8 17.17,-14.29 28,-17.75c19.76,-6.31 39.16,-5.4 57.7,4.2a72.31,72.31 0 0 1 35.14,38.81c0.16,0.35 0.29,0.77 0.49,1.35z" class="cls-5"/>
<path stroke="null" id="svg_22" d="m488,146.33c0.65,40.58 -33.51,73.07 -72,73.88c-41.54,0.88 -75.48,-33.46 -75.53,-73.65s33.35,-73.84 73.41,-74c40.59,-0.22 74.76,33.58 74.12,73.77zm-18.68,0c0.67,-29.77 -25.12,-55.42 -55.54,-55.17c-29.56,0.25 -55,25.15 -54.79,55.68c0.24,30.2 25.88,55.68 57.06,54.78c28.37,-0.77 53.89,-25.11 53.29,-55.24l-0.02,-0.05z" class="cls-5"/>
<path stroke="null" id="svg_23" d="m37.06,72.68l0,1.79c0,24.46 -0.14,48.93 0.08,73.39c0.16,17.07 7.49,30.85 20.57,41.63c10,8.26 21.61,12.1 34.55,12.06c5.9,0 11.79,0 17.69,0l1.35,0l0,18.38a4.11,4.11 0 0 1 -0.7,0.13c-7.9,-0.05 -15.82,0.16 -23.7,-0.23a68.33,68.33 0 0 1 -41.82,-16.77a75.53,75.53 0 0 1 -19.7,-25.19a68.76,68.76 0 0 1 -6.72,-29.47c-0.12,-24.84 -0.1,-49.68 -0.13,-74.52c0,-0.58 -0.12,-1.21 0.81,-1.21l17.72,0.01z" class="cls-5"/>
<path stroke="null" id="svg_24" d="m469.34,146.38c0.6,30.13 -24.92,54.47 -53.27,55.29c-31.18,0.9 -56.82,-24.58 -57.06,-54.78c-0.25,-30.53 25.23,-55.43 54.79,-55.68c30.42,-0.21 56.2,25.4 55.54,55.17zm-1,0c-0.42,-3.65 -0.64,-7.33 -1.31,-10.94a48.83,48.83 0 0 0 -11,-22.9a45.83,45.83 0 0 0 -28.97,-17.54a50.83,50.83 0 0 0 -9.66,-1.26a57.52,57.52 0 0 0 -20.64,3.43a49.8,49.8 0 0 0 -13.44,7.62a54,54 0 0 0 -14.51,16.39a47.87,47.87 0 0 0 -3.67,8.05a62,62 0 0 0 -2.95,11.22a74.21,74.21 0 0 0 -0.33,12.12a42.5,42.5 0 0 0 1.06,7.68c0.53,2.42 0.87,4.9 2.19,7.13c0.94,1.59 1.4,3.46 2.25,5.12a49.31,49.31 0 0 0 12.84,15.5c15.58,12.75 33.19,15.35 52,9.27c12.41,-4 21.66,-12.41 28.48,-23.41c5.21,-8.35 7.45,-17.61 7.65,-27.48l0.01,0z"/>
<use stroke="null" id="svg_26" y="5" xlink:href="#image-2" class="cls-2"/>
<line stroke="null" id="svg_27" y2="19.19" x2="490.59" y1="19.19" x1="14.32" class="cls-3"/>
<use stroke="null" id="svg_28" y="5" xlink:href="#image-2" class="cls-2"/>
<line stroke="null" id="svg_29" y2="19.19" x2="490.59" y1="19.19" x1="14.32" class="cls-3"/>
<use stroke="null" id="svg_30" y="5" xlink:href="#image-2" class="cls-2"/>
<line stroke="null" id="svg_31" y2="19.19" x2="490.59" y1="19.19" x1="14.32" class="cls-3"/>
<line stroke="null" id="svg_32" y2="19.19" x2="490.59" y1="19.19" x1="14.32" class="cls-4"/>
<image stroke="null" id="svg_33" x="111" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE0AAAAqCAYAAAD2+NZSAAAACXBIWXMAAAsSAAALEgHS3X78AAACMUlEQVRoQ+3ay2vVQBQH4G/a6xPxiSBYcena/x9x407EnZviqi2IRVQo9pZ6c1xMoqXa9j7ymHvjD4YJJIHwcc5kc1JEgJRSktPs//MnAVFjpYhowK7hRr1vXfz+6FLhFCc4jYiY1DcmuIuneIxbMtyYqy5ksGMc4gDfcTqpq2wb9/ACL7GD28ZdcRV+YB/vcYSjlNLPSURESmmGaf3QdTzHM+OFa8D28Lm+nmJ2tj1n+IZd3MfDM2tscA3YIT7KVbYr+8zIZ5mIqFJKU7lvt86tMVVcJVfUAd7hdb0fYBoRFTUaRMQspXQsl+T5jAHubEu+xat638NxRMyaB3+jMWq4ucE4h8Yo4RYC4x9ojApuYTAuQGMUcEuBcQkaGw23NBhXoLGRcCuBMQcaGwW3MhhzorERcK2AsQAaaw3XGhgLorGWcK2CsQQaawXXOhhLorEWcJ2AsQIaRcN1BsaKaBQJ1ykYLaBRFFznYLSERhFwvYDRIhqDwvUGRstoDALXKxgdoNErXO9gdIRGL3CDgNEhGp3CDQZGx2h0AjcoGD2g0Src4GD0hEYrcEWA0SMaK8EVA0bPaCwFVxQYA6AxF1wzH1fJ82HFgDEQGlfC7eCmPIyyryAwBkTjUrgKj/BFntopBoyB0bgQ7kSutn28URAYBaDxF1zIo5pP8AkfZLwiwKinu0tJSmlbPsse4I6M91UeqCsCjMLQIKW0JXdA8/f8GfUEYikpDq1JSilFoR/3C863g5yMml6iAAAAAElFTkSuQmCC" height="42" width="77" class="cls-6"/>
<polygon stroke="null" id="svg_34" points="114.08999633789062,2.1500015258789062 183.50999450683594,2.2399978637695312 148.75999450683594,36.900001525878906 114.08999633789062,2.1500015258789062 " class="cls-5"/>
<path stroke="null" id="svg_35" d="m114.4,2.28l68.81,0.08l-34.45,34.36l-34.36,-34.44m-0.61,-0.25l0.43,0.42l34.36,34.45l0.18,0.18l0.18,-0.18l34.44,-34.36l0.43,-0.43l-0.6,0l-68.81,-0.11l-0.61,0.03z" class="cls-7"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -0,0 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 129 129" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 129 129">
<g>
<path fill="#1A1A1A" d="m115.9,13.3c-4.3-4.3-10-6.7-16.1-6.7-6.1,0-11.8,2.4-16.1,6.7-1.9,1.9-3.4,4.1-4.5,6.5l-11.9-11.9c-1.6-1.6-4.2-1.6-5.7,0l-54,54c-1.6,1.6-1.6,4.1 5.32907e-15,5.7l54,54c0.8,0.8 1.8,1.2 2.9,1.2 1.1,0 2.1-0.4 2.9-1.2l17.2-17.2c1.1-1.1 1.5-2.8 0.9-4.3-0.6-1.5-1.9-2.5-3.5-2.6-3.5-0.3-6.8-1.8-9.3-4.2-2.8-2.8-4.3-6.5-4.3-10.4 0-3.9 1.5-7.6 4.3-10.4 2.8-2.8 6.5-4.3 10.4-4.3 3.9,0 7.6,1.5 10.4,4.3 2.5,2.5 4,5.8 4.2,9.3 0.1,1.6 1.1,3 2.6,3.5 1.5,0.6 3.2,0.2 4.3-0.9l16.7-16.7c0.8-0.8 1.2-1.8 1.2-2.9 0-1.1-0.4-2.1-1.2-2.9l-11.9-11.9c2.4-1.1 4.6-2.7 6.5-4.5 8.9-8.9 8.9-23.4 0-32.2zm-5.7,26.4c-2.4,2.4-5.5,3.9-8.9,4.2-1.6,0.2-2.9,1.2-3.4,2.7-0.5,1.5-0.2,3.1 1,4.2l13.9,13.9-8.8,8.8c-1.1-2.5-2.7-4.9-4.7-6.8-4.3-4.3-10-6.7-16.1-6.7-6.1,0-11.8,2.4-16.1,6.7-4.3,4.3-6.7,10-6.7,16.1 0,6.1 2.4,11.8 6.7,16.1 2,2 4.3,3.6 6.8,4.7l-9.3,9.3-48.4-48.2 48.2-48.2 13.9,13.9c1.1,1.1 2.8,1.5 4.2,1 1.5-0.5 2.5-1.9 2.7-3.4 0.3-3.4 1.8-6.5 4.2-8.9 2.8-2.8 6.5-4.3 10.4-4.3 3.9,0 7.6,1.5 10.4,4.3 5.7,5.6 5.7,14.9-2.84217e-14,20.6z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

View File

@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 129 129" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 129 129">
<g>
<g>
<path d="m64.7,36.3c-28.4,0-55.9,27.1-57,28.3-0.8,0.8-1.2,1.8-1.2,2.9s0.4,2.1 1.2,2.9c1.2,1.2 28.6,28.3 57,28.3s55.9-27.1 57-28.3c0.8-0.8 1.2-1.8 1.2-2.9s-0.4-2.1-1.2-2.9c-1.1-1.2-28.5-28.3-57-28.3zm0,54.1c-19.9,0-40.4-16.2-48.1-23 7.7-6.8 28.2-23 48.1-23s40.4,16.2 48.1,23c-7.7,6.8-28.2,23-48.1,23z"/>
<path d="m50,67.4c0,8.1 6.6,14.8 14.8,14.8s14.8-6.6 14.8-14.8-6.6-14.8-14.8-14.8-14.8,6.7-14.8,14.8zm21.3,0c0,3.6-2.9,6.6-6.6,6.6-3.6,0-6.6-2.9-6.6-6.6s2.9-6.6 6.6-6.6c3.6,0.1 6.6,3 6.6,6.6z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 741 B

View File

@ -48,7 +48,7 @@ let entry_point =
let docv = "ENTRY_POINT" in
let doc = "$(docv) is entry-point that will be compiled." in
info ~docv ~doc [] in
value @@ pos 1 string "main" info
required @@ pos 1 (some string) (Some "main") info
let expression =
let open Arg in
@ -62,7 +62,7 @@ let syntax =
let info =
let docv = "SYNTAX" in
let doc = "$(docv) is the syntax that will be used. Currently supported syntaxes are \"pascaligo\" and \"cameligo\". \"pascaligo\" is the default." in
info ~docv ~doc [] in
info ~docv ~doc ["syntax" ; "s"] in
value @@ opt string "pascaligo" info
let compile_file =