lispreader-smalltalk

Description

A Lisp reader implementation for Pharo Smalltalk

Details

Source
GitHub
Dialect
pharo (25% confidence)
License
Apache-2.0
Created
Oct. 14, 2018
Updated
Oct. 19, 2018

README excerpt

# LispReader for Pharo [![Build Status][travis_b]][travis_url]

A [Lisp reader](http://www.lispworks.com/documentation/HyperSpec/Body/02_b.htm) implementation for Pharo Smalltalk. It converts string representations of Common Lisp's symbolic expressions into Smalltalk objects.

The implentation is based on a subset of Stéphane Rollandin's
[LispKit](http://map.squeak.org/package/656e63b6-3322-45cf-8e0a-97b2a3ce20ac/default)
for [Squeak](http://www.squeak.org).

## Requires

* [Pharo](http://pharo.org/) 7.0,6.1

## Installing

To install the latest version execute the following:

```Smalltalk
Metacello new
  baseline: 'LispReader';
  repository: 'github://charcodelimit/lispreader-smalltalk/repository-pharo';
  load.
```

## How to use

Many of the sharpsign reader macros are supported, including: bit vectors, references, and rationals in arbitrary radix.
The sharpsign macros for evaluation, arrays, structures and pathnames are not
supported.

```Smalltalk
| reader stream expression |
reader := LRReader for: LRLispKernel new.
stream := ReadStream on: '((#*101010 #o37/15) . (#2=(p q) #:|foo| #2# . (bar nil)))'
expression := reader read: stream.
```

The code creates a corresponding `ConsCell` object containing Smalltalk `Symbol`,
`Rational`, `String`, `UndefinedObject` and `RBBitVector` objects.

## License

LispReader for Pharo is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).


[travis_b]: https://travis-ci.org/charcodelimit/lispreader-smalltalk.svg?branch=master
[travis_url]: https://travis-ci.org/charcodelimit/lispreader-smalltalk
← Back to results