Skip to content

aki237/ligo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

RezaAkilan Elango
Reza
and
Akilan Elango
Oct 16, 2019
6abaa43 · Oct 16, 2019
Nov 12, 2017
Oct 31, 2017
Nov 1, 2017
Oct 16, 2019
Nov 12, 2017
Oct 5, 2017
Oct 29, 2017
Oct 19, 2017
Oct 24, 2017
Oct 19, 2017
Sep 27, 2017
Nov 11, 2017
Oct 3, 2017

Repository files navigation

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.