https://github.com/crowdagger/valisp
A lispy flavour of Vala, written in Clojure. Don't ask why.
https://github.com/crowdagger/valisp
Last synced: about 1 month ago
JSON representation
A lispy flavour of Vala, written in Clojure. Don't ask why.
- Host: GitHub
- URL: https://github.com/crowdagger/valisp
- Owner: crowdagger
- License: gpl-2.0
- Created: 2013-10-12T02:00:45.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-10-15T16:38:26.000Z (over 12 years ago)
- Last Synced: 2025-01-11T19:14:07.050Z (over 1 year ago)
- Language: Clojure
- Size: 250 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE
Awesome Lists containing this project
README
valisp
======
A lispy flavour of Vala, written in Clojure. Don't ask why.
Running the Valisp compiler
---------------------------
Before everything, you must have installed leiningen and cloned the
git repository. Then:
```
$ lein run
```
should work.
An alternative is to use the latest
[standalone JAR file](http://segfault.ouvaton.org/public/valisp/valisp-0.1-standalone.jar)
and launch it with:
```
$ java -jar valisp-0.1-standalone.jar
```
Except it won't do much, since it requires a source file
to compile it:
```
$ lein run some_file.valisp
```
or
```
$ java -jar valisp-0.1-standalone.jar some_file.valisp
```
This will print the resulting Vala code on stdout, so if you really
want to use this, you should do:
```
$ lein run some_file.valisp > some_file.vala
```
Hopefully you will get a valid Vala file, which you can now compile
(again) with
```
$ valac some_file.vala
```
Obviously, it means you must have installed the Vala compiler, else it
is a bit pointless.
The valisp language
-------------------
First, let me remember you I said 'don't ask why'. Obviously, it is a
toy project, whose goal is to compile some lispy dialect to Vala.
A tiny example:
```
(defn main int []
(stdout.printf "Please enter your name\n")
(let [[name (stdin.read_line)]]
(stdout.printf "Hello, %s\n" name)
0))
```
You can look at [the current features list](doc/features.md) to see
which features are currently implemented. To be honest, they are
nearly all used in this tiny example, so don't get too much
expectations, right?
There are also some [examples](doc/examples) of Valisp code available,
if you want to browse them.