Commit Graph

138 Commits

Author SHA1 Message Date
Paul R. Tagliamonte
e22a0ff73c Mangle a macro until it stops moving
this helps if we use a macro in something that got tree-mangled
  back out.
2013-04-07 18:41:41 -04:00
Julien Danjou
48ae1b1e26 Merge pull request #80 from olasd/bugfix/unbalanced-expressions
Correctly handle unbalanced expressions
2013-04-07 15:27:45 -07:00
Nicolas Dandrimont
806f0d900c Throw an error on unbalanced expressions 2013-04-08 00:25:47 +02:00
Gergely Nagy
1b7d145c65 Implement the (or) function too
The (or) function is to be constructed similarly to (and), so refactor
the compile_and_operator function to handle or aswell.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2013-04-08 00:02:08 +02:00
Gergely Nagy
f03b538787 Implement the (and) function
The function takes at least two arguments, and turns it into a pythonic
and statement, which returns the last True-ish value, or False.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2013-04-07 23:54:56 +02:00
Paul R. Tagliamonte
bfc71e4a60 Add tail threading (->>) 2013-04-07 15:05:30 -04:00
Nicolas Dandrimont
1853b7d33c Correctly balance the brackets in the wrong syntax tests
We want to test the compiler, not the lexer.
2013-04-07 19:53:50 +02:00
Julien Danjou
bdd07e1251 Alias except' to catch' and raise' to throw'
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-07 18:24:01 +02:00
Julien Danjou
2fd56e8fa1 catch: uncomment some tests
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-07 18:20:32 +02:00
Julien Danjou
6dec894a0c Better catch syntax
The syntax is now changed to:

  (catch [] BODY)
  (catch [Exception] BODY)
  (catch [e Exception] BODY)
  (catch [e [Exception1 Exception2]] BODY)

Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-07 18:03:43 +02:00
Paul R. Tagliamonte
9d36dab693 Test importing things with dashes 2013-04-07 09:54:53 -04:00
Paul R. Tagliamonte
03dfbde1b8 style voodoo 2013-04-06 23:11:43 -04:00
Paul R. Tagliamonte
5a96089266 Using backslashes for now; punycode soon. 2013-04-06 21:33:52 -04:00
Paul R. Tagliamonte
bac3f6991c Revert "adding this as testable"
This reverts commit 104b9d1636.
2013-04-06 20:03:14 -04:00
Paul R. Tagliamonte
e0ed7cac40 Revert "Make HySymbol bytes free!"
This reverts commit 8b144a4f3d.
2013-04-06 20:02:08 -04:00
Paul R. Tagliamonte
104b9d1636 adding this as testable 2013-04-06 19:57:59 -04:00
Julien Danjou
8b144a4f3d Make HySymbol bytes free!
We can know use any amount and type of bytes to build a HyString, meaning we
can use Unicode and UTF-8 for our function and variables.

Eat that, snake!

Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 23:37:34 +02:00
Julien Danjou
123339bfcf tests: simplify not compiling tests
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 21:28:12 +02:00
Julien Danjou
78133500cb Fix flake8 errors in tests
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 21:22:35 +02:00
Julien Danjou
0eb795b4a5 Check the number of arguments for each function
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 19:00:32 +02:00
Paul R. Tagliamonte
4b57fd0a51 Adding in an If mangle 2013-04-06 11:10:33 -04:00
Paul R. Tagliamonte
3ab7153398 Merge branch 'master' of git://github.com/jd/hy 2013-04-06 08:19:23 -04:00
Paul R. Tagliamonte
6aebc5820f Merge branch 'jd/if' of git://github.com/jd/hy 2013-04-06 08:18:13 -04:00
Julien Danjou
3e9a2178c5 Add support for unary operators (not, ~)
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 10:38:41 +02:00
Julien Danjou
b36018981a if: emit error on too many args
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 10:13:14 +02:00
Julien Danjou
9768345a7c let: add a scope test
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 10:12:03 +02:00
Paul R. Tagliamonte
7abc472336 Implementing `let' 2013-04-05 21:54:04 -04:00
Julien Danjou
fa5ab3b3ad Tests for a future native-eval. Close #64. 2013-04-05 20:18:46 -04:00
Paul R. Tagliamonte
3b185250e0 trailing newlines suck 2013-04-05 20:01:37 -04:00
Paul R. Tagliamonte
27e4772aa7 Test the function return-o-matic 2013-04-05 19:59:33 -04:00
Paul R. Tagliamonte
936d1bcec7 testing nested things 2013-04-04 21:58:26 -04:00
Paul R. Tagliamonte
b2406a9d72 list flattener 2013-04-04 19:32:56 -04:00
Nicolas Dandrimont
ba021ed7bf Count the number of expressions executed in do 2013-04-04 11:20:10 +02:00
Nicolas Dandrimont
06511fe303 Add do-in-defn tests 2013-04-04 11:08:18 +02:00
Nicolas Dandrimont
99f62fb8b3 Add some tests for defn 2013-04-04 09:29:21 +02:00
Paul R. Tagliamonte
d421d869af Fixing the "olasd" bug 2013-04-03 20:18:56 -04:00
Nicolas Dandrimont
d070d3d484 Add while loops to the compiler 2013-04-03 19:55:09 +02:00
Paul Tagliamonte
0eeb5321e1 Merge branch 'jd/if-parsing' of git://github.com/jd/hy 2013-04-03 09:00:53 -04:00
Julien Danjou
1c8d21e3de Raises TypeError on bad if statements
This relates to issue #6.

Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-03 11:25:17 +02:00
Paul R. Tagliamonte
d316a8fde8 covering the new bits 2013-04-02 20:49:42 -04:00
Paul R. Tagliamonte
b1c605cc6a Updating the tests to not break Python 3.x 2013-04-01 23:06:59 -04:00
Paul R. Tagliamonte
fb6ec426e6 Adding in list comprehensions.
Thanks to paroneayea for the syntax brotip.
2013-04-01 22:47:11 -04:00
Paul R. Tagliamonte
b077af9620 more tests 2013-04-01 22:13:45 -04:00
Paul R. Tagliamonte
c4b270a727 test coverage bits 2013-04-01 22:07:05 -04:00
Paul Tagliamonte
025e501b13 cleaning up the tests a bit 2013-04-01 20:00:37 -04:00
Paul Tagliamonte
678ef441e5 Adding in tuple checkingish. 2013-04-01 19:53:04 -04:00
Paul Tagliamonte
6831841699 Adding in some tests for print 2013-04-01 19:51:21 -04:00
Paul Tagliamonte
426c7cd829 Test bad decoration 2013-04-01 19:38:58 -04:00
Christopher Allan Webber
1b60bee8a3 Change all instances of (def foo bar) to (setv foo bar)!
I'm in ur base polluting your language with all my opinions!
2013-04-01 16:51:28 -05:00
Christopher Allan Webber
9416422330 Changing cond to be more common lisp / emacs lisp like
Instead of:
  (cond (condition-1) (body-1)
        (condition-2) (body-2))

We now work like:

  (cond ((condition-1) (body-1)
         (condition-2) (body-2)))
2013-04-01 10:33:45 -05:00