mirror of
https://github.com/samsonjs/elisp.js.git
synced 2026-04-27 15:07:47 +00:00
Getting Started section in README, minor changes to TODO and el.js
This commit is contained in:
parent
8fd6e07f70
commit
3fae23b89d
4 changed files with 62 additions and 20 deletions
19
LICENSE
Normal file
19
LICENSE
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (c) 2009 Sami Samhuri - sami.samhuri@gmail.com
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
49
README
49
README
|
|
@ -2,23 +2,12 @@ Emacs Lisp implementation in JavaScript.
|
||||||
|
|
||||||
Copyright (c) 2009 Sami Samhuri - sami.samhuri@gmail.com
|
Copyright (c) 2009 Sami Samhuri - sami.samhuri@gmail.com
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Released under the terms of the MIT license. See the include file
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
LICENSE.
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
Latest version available on github:
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
http://github.com/samsonjs/elisp.js
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
|
|
@ -40,6 +29,36 @@ in the browser could be a reality; Ymacs is proof.
|
||||||
[2] http://www.ymacs.org/demo/
|
[2] http://www.ymacs.org/demo/
|
||||||
|
|
||||||
|
|
||||||
|
Getting Started
|
||||||
|
===============
|
||||||
|
|
||||||
|
I use Emacs and js-comint.el[3] with inferior-js set to
|
||||||
|
/opt/local/bin/js, which is SpiderMonkey[4] from MacPorts[5] on Snow
|
||||||
|
Leopard. C-c b sends the buffer to the JS repl and then I use the
|
||||||
|
EL.rep (read-eval-print), EL.repl, EL.parse, EL.eval, and EL.print
|
||||||
|
functions defined in the section titled Lisp Support near the end of
|
||||||
|
el.js.
|
||||||
|
|
||||||
|
[3] http://js-comint-el.sourceforge.net/
|
||||||
|
[4] http://www.mozilla.org/js/spidermonkey/
|
||||||
|
[5] http://www.macports.org/
|
||||||
|
|
||||||
|
Running js under rlwrap and then using load('el.js') works just as
|
||||||
|
well if you don't use Emacs but still want readline. Type EL.repl()
|
||||||
|
to start the REPL or evaluate one thing with EL.rep,
|
||||||
|
e.g. El.rep("(* 4 3)")
|
||||||
|
|
||||||
|
There are other interfaces into the parser and evaluator besides the
|
||||||
|
shortcuts. new EL.Parser([input]) returns a parser object and likewise
|
||||||
|
new EL.Evaluator([exprs]) returns an evaluator object.
|
||||||
|
|
||||||
|
Mainly toy functions that do extremely simple operations on numbers
|
||||||
|
and strings can be implemented right now. Stay tuned, or better yet
|
||||||
|
hack away and submit a pull request on github[6].
|
||||||
|
|
||||||
|
[6] http://github.com/samsonjs/elisp.js
|
||||||
|
|
||||||
|
|
||||||
What's here?
|
What's here?
|
||||||
============
|
============
|
||||||
|
|
||||||
|
|
|
||||||
2
TODO
2
TODO
|
|
@ -7,7 +7,7 @@ TODO
|
||||||
|
|
||||||
* boolean operator: not
|
* boolean operator: not
|
||||||
|
|
||||||
* special forms: if, cond, and, or
|
* special forms: if, cond, and, or, let, let*, letf, letf*
|
||||||
|
|
||||||
* primitives: list/cons functions, string functions,
|
* primitives: list/cons functions, string functions,
|
||||||
apply, eval,
|
apply, eval,
|
||||||
|
|
|
||||||
12
el.js
12
el.js
|
|
@ -616,7 +616,7 @@ EL.Evaluator.prototype.eval = function(expr) {
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
**** Utilities *************************************************
|
**** Lisp Support **********************************************
|
||||||
****************************************************************/
|
****************************************************************/
|
||||||
|
|
||||||
EL.nil = ['symbol', 'nil'];
|
EL.nil = ['symbol', 'nil'];
|
||||||
|
|
@ -737,9 +737,13 @@ EL.repl = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////
|
/****************************************************************
|
||||||
/////////// EL.Util /////////////
|
****************************************************************/
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
**** Utilities *************************************************
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
EL.Util = function(){};
|
EL.Util = function(){};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue