All Projects → aki237 → Ligo

aki237 / Ligo

Licence: gpl-3.0
ligo language interpreter

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects
scheme
763 projects

Projects that are alternatives of or similar to Ligo

Szl
A lightweight, embeddable scripting language
Stars: ✭ 134 (+688.24%)
Mutual labels:  interpreter, embeddable
Lily
This repository has moved: https://gitlab.com/FascinatedBox/lily
Stars: ✭ 1,081 (+6258.82%)
Mutual labels:  interpreter, embeddable
rust lisp
A Rust-embeddable Lisp, with support for interop with native Rust functions
Stars: ✭ 128 (+652.94%)
Mutual labels:  interpreter, embeddable
Tagha
Minimal, low-level, fast, and self-contained register-based bytecode virtual machine/runtime environment.
Stars: ✭ 79 (+364.71%)
Mutual labels:  interpreter, embeddable
Tagha
Minimal, low-level, fast, and self-contained register-based bytecode virtual machine/runtime environment.
Stars: ✭ 101 (+494.12%)
Mutual labels:  interpreter, embeddable
embed
An embeddable, tiny Forth interpreter with metacompiler.
Stars: ✭ 80 (+370.59%)
Mutual labels:  interpreter, embeddable
huginn
Programming language with no quirks, so simple every child can master it.
Stars: ✭ 41 (+141.18%)
Mutual labels:  interpreter, embeddable
Hython
Haskell-powered Python 3 interpreter
Stars: ✭ 550 (+3135.29%)
Mutual labels:  interpreter
Q3vm
Q3VM - Single file (vm.c) bytecode virtual machine/interpreter for C-language input
Stars: ✭ 585 (+3341.18%)
Mutual labels:  interpreter
Wren
The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.
Stars: ✭ 5,345 (+31341.18%)
Mutual labels:  interpreter
Bartosz Basics Of Haskell
Code and exercises from Bartosz Milewski's Basics of Haskell Tutorial
Stars: ✭ 483 (+2741.18%)
Mutual labels:  interpreter
Minimal
A Delightfully Diminutive Lisp. Implemented in < 1 KB of JavaScript with JSON source, macros, tail-calls, JS interop, error-handling, and more.
Stars: ✭ 560 (+3194.12%)
Mutual labels:  interpreter
Zetavm
Multi-Language Platform for Dynamic Programming Languages
Stars: ✭ 592 (+3382.35%)
Mutual labels:  interpreter
Hashlink
A virtual machine for Haxe
Stars: ✭ 523 (+2976.47%)
Mutual labels:  interpreter
Xeus
Implementation of the Jupyter kernel protocol in C++
Stars: ✭ 693 (+3976.47%)
Mutual labels:  interpreter
Red
Red is a next-generation programming language strongly inspired by Rebol, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting and cross-platform reactive GUI, while providing modern support for concurrency, all in a zero-install, zero-config, single 1MB file!
Stars: ✭ 4,725 (+27694.12%)
Mutual labels:  interpreter
Springboot Learning
🚕 spring boot学习案例,方便spring boot 初学者快速掌握相关知识
Stars: ✭ 724 (+4158.82%)
Mutual labels:  interpreter
Tiny Compiler
A tiny evaluator and compiler of arithmetic expressions.
Stars: ✭ 680 (+3900%)
Mutual labels:  interpreter
Jaspy
a Python VM written entirely from scratch in JavaScript with some unique features
Stars: ✭ 577 (+3294.12%)
Mutual labels:  interpreter
Mini Jvm
使用 JDK8 实现 JVM(Java Virtual Machine)
Stars: ✭ 568 (+3241.18%)
Mutual labels:  interpreter

ligo - scheme like language interpreter in golang

Join the chat at https://gitter.im/hackingligo/Lobby Go Report Card GoDoc Build Status

Introduction

ligo is implemented as a subset of lisp language with some changes in syntax. The syntax and usage is described in the documentation included in the doc folder.

Building

  • First of all fetch all the packages without installing.
    go get -d github.com/aki237/ligo
    
  • cd into the project directory
    cd $GOPATH/src/github.com/aki237/ligo
    
  • Build the interpreter
    go install ./cmd/ligo
    
  • Build the ligo plugin packages
    cd $GOPATH/src/github.com/aki237/ligo/packages/
    ./build.sh
    
    This installs the ligo plugins in $HOME/ligo

The ligo interpreter is installed in your $GOPATH/bin.

Usage

A commandline call without any arguments starts a interactive interpreter session. In that process it also initializes a interpreter by running a start script from the file $HOME/.ligorc (like .bashrc, in case of bash). Any argument passed is treated as a file and executes the contents in the file.

Simple Example

Simple example to get an input from the shell and

;; include all the required libraries
(require "base")

(printf "Hello %s!!" (input "Enter your name :"))

The bare interpreter has no functionalities (not even basic functionalities). The "base" package includes all the bare minimum functionality.

Extending the interpreter

Writing packages for the interpreter in Go is very simple and is discussed in this file.

Contributing

Please refer CONTRIBUTING.md for guidelines.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].