Paul Tagliamonte
9c28e0292d
Merge branch 'master' into pr/185
...
Conflicts:
hy/macros.py
tests/compilers/test_compiler.py
Hoodoggy!
2013-05-17 11:17:51 -04:00
Konrad Hinsen
269da19d76
Make macros module-specific.
...
A macro is available in the module where it was defined and
in any module that does a require of the defining module.
Only macros defined in hy.core are globally available.
Fixes #181
2013-05-16 15:34:14 +02:00
Konrad Hinsen
b7c5ff2991
Refactor test_ast.py to eliminate the lots of hy_compile(tokenize(...)) calls
2013-05-16 15:30:44 +02:00
Julien Danjou
4e202aa1a5
Check that compiler error are user always user friendly
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-05-13 18:14:39 +02:00
Paul Tagliamonte
98134e7396
Merge branch 'master' into bugfix/paultag/fix-try-except
2013-05-08 20:22:51 -04:00
Paul Tagliamonte
058197a24f
Allow returning inside a try / except. Closes #163
2013-05-08 20:00:09 -04:00
Paul Tagliamonte
ceedc69b7d
Correct existing tests for future try / except work.
2013-05-08 19:58:36 -04:00
Nicolas Dandrimont
4e3f842972
Add &optional arguments.
...
Python doesn't really have that concept, so make them clash with &key arguments.
2013-05-08 21:11:33 +02:00
Nicolas Dandrimont
5dbf6c6ca9
Add tests for &key arguments in functions
2013-05-08 21:11:33 +02:00
Julien Danjou
ad7e110af4
Implements defclass
...
This fixes issue #156
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-05-08 12:38:57 +02:00
Nicolas Dandrimont
1e24dde153
Merge fn and lambda
...
We actually only generate an ast.Lambda if (lambda) was called, as a lot of code
expect ast.FunctionDefs (most notably with_decorator).
This allows empty lambdas too.
This fixes #165 .
2013-05-07 20:07:15 +02:00
Nicolas Dandrimont
3d8a3d589c
Refactor compiler using a result carrying object
...
This object allows to coerce statements to an expression, if we need to use
them that way, which, with a lisp, is often.
This was collaborative work that has been rebased to make it bisectable.
Helped-by: Paul Tagliamonte <paultag@debian.org>
Helped-by: Julien Danjou <julien@danjou.info>
2013-05-05 20:42:48 +02:00
Julien Danjou
2ef9a0fdaf
Rename decorate-with' to
with-decorator'
...
Fixes #158
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-28 17:14:22 +02:00
Julien Danjou
50daf1b4c8
Make temp attribute more solid and add unit test on regression
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-24 22:36:49 +02:00
Paul Tagliamonte
ada946fca8
style cleanup
2013-04-23 19:25:02 -04:00
Paul Tagliamonte
a1cf9e50eb
Merge branch 'master' into pr/141
2013-04-23 19:23:37 -04:00
John Jacobsen
8d8dd62168
Move take and drop from AST impl. in compiler.py to macros in core/bootstrap.py
2013-04-21 19:08:30 -05:00
John Jacobsen
fef571855b
Added 'take' and 'drop' functions (as AST elements)
2013-04-21 15:41:20 -05:00
Paul Tagliamonte
6f7f402c19
Merge branch 'master' into pr/140
...
Conflicts:
hy/compiler.py
tests/native_tests/language.hy
2013-04-21 12:29:09 -04:00
Paul Tagliamonte
36a7f91014
Merge branch 'master' into pr/146
2013-04-21 11:03:32 -04:00
Gergely Nagy
494bf0e8ad
Remove the import-as and import-from builtins
...
The new and improved (import) can handle all cases import-as and
import-from did, so drop the latter two from the language. To do this,
the import builtin had to be changed a little: if there's a single
import statement to return, return it as-is, otherwise return a list of
imports.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2013-04-20 16:06:32 +02:00
Julien Danjou
74ea8fe5e5
Allow fn to have no body
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-20 05:19:58 -07:00
James King
047956c59b
Clean up based on review
2013-04-19 10:36:51 -04:00
E. Anders Lannerback
18cb7203d3
Added global. Not sure if this is a good idea ...
...
(global foo) => global foo
2013-04-19 08:40:03 +02:00
James King
1080a457b1
Implemented &key and added tests
2013-04-18 22:27:38 -04:00
James King
70e0d88149
WIP - Added &key support
2013-04-18 17:47:08 -04:00
James King
18ed72136f
Merge branch 'master' into feature/lambda-list-keyword
...
Conflicts:
hy/compiler.py
hy/lex/states.py
hy/util.py
tests/compilers/test_ast.py
tests/lex/test_lex.py
2013-04-18 15:17:30 -04:00
Paul R. Tagliamonte
7b4d4fb371
Merge branch 'jd/finally' of git://github.com/jd/hy into pr-94
2013-04-14 21:57:11 -04:00
Paul R. Tagliamonte
3b3768853a
Merge branch 'jd/remove-pass' of git://github.com/jd/hy into pr-122
2013-04-14 21:09:47 -04:00
Julien Danjou
bbaab58a4c
Implements else' for
foreach' statements
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-15 02:50:26 +02:00
Julien Danjou
fdb6bf944c
try: add support for `finally'
...
This fixes #75
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-15 02:48:58 +02:00
Julien Danjou
cb20910d93
Remove `pass' from the language.
...
This also fixes a bug in the pass optimize missing branch where the code is
something like: [stmt, [], stmt]; in such case we want to filter out [], so
if we end up with [] we can optimize it. This fix is needed otherwise (do)
inside (do) are not properly optimized.
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-14 13:56:44 +02:00
Paul R. Tagliamonte
f295b10f52
Updating yield.
2013-04-12 23:48:58 -04:00
Nicolas Dandrimont
30c0b25512
Add a unicode string handling test
2013-04-12 20:58:56 +02:00
James King
9ff3b128b4
Got &rest working, tests pass
...
Did a little house cleaning in lex states.py too and started removing
stupid print() statements.
2013-04-11 12:00:27 -04:00
James King
484a96abae
WIP - Move _parse_lamba_list to the functiondef
2013-04-10 16:52:28 -04:00
James King
7417789ce0
WIP - Adding Call support and FuncionDef
...
The test is still broken, there are print statements... this is an
ongoing WIP and will get squashed before submitted the PR.
2013-04-09 15:23:50 -04:00
James King
4d90123506
Merge branch 'develop' into feature/lambda-list-keyword
2013-04-09 15:13:25 -04:00
Julien Danjou
92eaed21e4
Merge pull request #87 from jd/jd/try
...
compiler: add `else' support in `try'
2013-04-09 08:23:41 -07:00
Julien Danjou
4ba6ada77b
Merge pull request #92 from jd/jd/raise-0-arg
...
Implements (raise)
2013-04-09 08:23:09 -07:00
Julien Danjou
b13cc60075
Implements (raise)
...
As in Python, this allows to re-raise the last raised exception.
This fixes #86
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-09 17:00:45 +02:00
Julien Danjou
f8131d3c36
compiler: add else' support in
try'
...
This is a bit tricky, since we'll also have to support `finally' in the end,
I've introduced an Else statement on my own to be able to recognize it.
This fixes #74
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-09 17:00:30 +02:00
Julien Danjou
dd90272129
except/catch: check exceptions list type
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-09 16:56:45 +02:00
Julien Danjou
cd36a1d7eb
Allow empty `do'
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-08 15:17:11 +02:00
Paul R. Tagliamonte
6912f4c4d9
Merge branch 'master' into pr-82
2013-04-07 18:51:18 -04:00
Julien Danjou
2ff3da032c
Merge pull request #81 from paultag/paultag/bugfix/with-syntax-fix
...
Fixing (with)'s syntax to be more hyish.
2013-04-07 15:41:53 -07:00
Julien Danjou
a81a716420
Be sure errors are raised at by compile, not tokenize
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-08 00:38:55 +02:00
Julien Danjou
0d3500f6e5
try: accept a simpler form
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-08 00:36:08 +02:00
Paul R. Tagliamonte
4db9446197
Fixing (with)'s syntax to be more hyish.
2013-04-07 18:35:36 -04:00
Julien Danjou
a73d460beb
try: allow empty body
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-08 00:14:42 +02:00