Jordan Orelli
7008e3d140
working on adding http support
12 years ago
Jordan Orelli
55e08628c0
(cleanup)
12 years ago
Jordan Orelli
10c674b7f3
slowly getting cleaner
12 years ago
Jordan Orelli
fb3b11d63c
ah, this is a bit cleaner
12 years ago
Jordan Orelli
cf73b5fec0
tcp clients now get per-client consistency
...
all root-level s-expressions are evaluated in-order, on a per-client
basis.
12 years ago
Jordan Orelli
9a55b787a0
debugmode is now a flag
12 years ago
Jordan Orelli
688c880065
added `and`, `or`, and `=`
...
the equality implementation is probably wrong.
12 years ago
Jordan Orelli
e11bcf3d91
added very sloppy tcp functionality
...
can now send multi-line sexps over TCP. Max line limit is 40 lines in a
single sexp. A max needed to be selected to prevent clients from
filling up enormous buffers.
12 years ago
Jordan Orelli
d672d51f7d
hmm, tcp should work more like local...
12 years ago
Jordan Orelli
b6948645bd
added "names"
...
i'm just making shit up now.
12 years ago
Jordan Orelli
58da2f16bc
values and errors go to appropriate clients now
12 years ago
Jordan Orelli
95fa527b43
i put a tcp server in your lisp interpreter
12 years ago
Jordan Orelli
1ee8bff82c
defined the callable interface
12 years ago
Jordan Orelli
b387d909b5
fixed quote bug
12 years ago
Jordan Orelli
c4fed38dd9
refactored builtin type
...
this is done to avoid repeating all the arity checks all over the place.
That was getting a little tedious.
12 years ago
Jordan Orelli
b9d2afce74
fixed quoting behavior
...
previously it was impossible to do the following:
(define dave (quote (x y z)))
dave
the interpreter would incorrectly try to evaluate the (x y z), because
there was no quote level being recorded, and it was seen as being the
same as a regular sexp.
12 years ago
Jordan Orelli
c648ad597d
added cons, car, cdr
12 years ago
Jordan Orelli
86929974cc
added comparison operations
12 years ago
Jordan Orelli
591a0bfe29
added "symbol?"
12 years ago
Jordan Orelli
ee8a7d3ee5
added "null" and "null?"
12 years ago
Jordan Orelli
86c288d116
added "list?" builtin
12 years ago
Jordan Orelli
7ec2538005
added "list" builtin
12 years ago
Jordan Orelli
8476cc531b
added "length"
12 years ago
Jordan Orelli
6395089039
added "not"
12 years ago
Jordan Orelli
175e8abf1b
added "begin" special form
12 years ago
Jordan Orelli
3bd216c75b
fixed evaluation order problem in sexp
12 years ago
Jordan Orelli
51a27aaa9b
added lambda support
12 years ago
Jordan Orelli
90c4009ada
cleaning up a little bit
12 years ago
Jordan Orelli
18a8a9aea3
renamed proc to builtin
12 years ago
Jordan Orelli
e86260e8dc
environments now have outer environment pointers
12 years ago
Jordan Orelli
ba1bab1e39
implemented set!
12 years ago
Jordan Orelli
ec5cbdcaab
added *if*
12 years ago
Jordan Orelli
107565dc04
added quote
12 years ago
Jordan Orelli
29677e19e4
can now define variables
12 years ago
Jordan Orelli
2b9322624f
added division, prevent div by zero panics
12 years ago
Jordan Orelli
ac8430076a
refactoring a bit, defined accumulator struct
...
added subtraction and multiplication
12 years ago
Jordan Orelli
39286ce998
can now add numbers
12 years ago
Jordan Orelli
7eedbb4e92
reading symbols from environments
12 years ago
Jordan Orelli
b6a88a15fb
(fmt)
12 years ago
Jordan Orelli
a3791fcc0e
parsing!
12 years ago
Jordan Orelli
7bf30556ad
split lexer out into lex.go
12 years ago
Jordan Orelli
e54e565279
fixed some close paren lexing bugs
12 years ago
Jordan Orelli
101ee99edd
better EOF handling in repl
12 years ago
Jordan Orelli
926911a7c6
cleaned up some redundancy
12 years ago
Jordan Orelli
42c2ffd0d6
more working primitive lex repl
12 years ago
Jordan Orelli
e0c3f2de01
primitive repl lexing
12 years ago
Jordan Orelli
0de1044dda
now lexing comments
12 years ago
Jordan Orelli
6dd75298e5
added string escaping
12 years ago
Jordan Orelli
ab97429e98
lexing strings
12 years ago
Jordan Orelli
1a6b286b5c
lexer produces tokens now, not strings
...
can also lex integers and floats now
12 years ago