Gergely Nagy
5d895c2005
Making (import) a lot smarter
...
With these changes, the import function will become a lot smarter, and
will combine all of import, import-from and import-as in a hyly lispy
syntax:
(import sys os whatever_else)
(import [sys [exit argv]] [os :as real_os]
[whatever_else [some_function :as sf]])
That is, each argument of import can be:
- A plain symbol, which will be imported
- A list, which will be handled specially
If the argument is a list, the first element will always be the module
name to import, the second member can be either of these:
- A list of symbols to import
- The ':as' keyword
- Nothing
If it is the ':as' keyword, the third argument must be an alias. If it
is a list of symbols to import, we'll iterate through that list too. If
any symbol is followed by an ':as' keyword, we'll pick all three, and
treat the third member as an alias. If there is nothing else in the
list, we'll import the module as-is.
All this combined fixes #113 .
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2013-04-13 15:06:31 +02:00
Vladimir Gorbunov
f30e7cd99b
Fix hyc
2013-04-13 16:28:37 +04:00
Paul R. Tagliamonte
f295b10f52
Updating yield.
2013-04-12 23:48:58 -04:00
Paul R. Tagliamonte
a71f166610
Merge branch 'future_division' of github.com:khinsen/hy into pr-106
2013-04-12 23:07:40 -04:00
Nicolas Dandrimont
d5db2840ad
Don't punycode pure unicode strings.
2013-04-12 20:42:40 +02:00
Nicolas Dandrimont
65c08c8c7d
Factor str_type into hy.util
2013-04-12 20:42:39 +02:00
Paul Tagliamonte
e4e61a463e
Adding in the new models.
2013-04-12 09:18:25 -04:00
Paul Tagliamonte
1f4ed473d3
Style fixes; function declashing.
2013-04-12 09:11:56 -04:00
Paul Tagliamonte
3ec828e660
Merge branch 'float_and_complex' of git://github.com/khinsen/hy into pr-109
2013-04-12 09:09:38 -04:00
Paul Tagliamonte
c15d8750e8
Merge branch 'f/hy.models.keyword' of git://github.com/algernon/hy into pr-101
2013-04-12 08:58:38 -04:00
Paul Tagliamonte
94d2c381a5
Merge branch 'lexer_extensions' of git://github.com/khinsen/hy into pr-98
2013-04-12 08:55:13 -04:00
Konrad Hinsen
0c56885d42
Use __future__.division for all Hy code
...
Fixes #106
Note: This is implemented by replacing all calls to Python's
builtin "compile" function by calls to hy.importer.compile_,
which adds the "future division" flag. Anyone using "compile"
in future work will have to remember this.
2013-04-12 05:23:25 +02:00
Paul R. Tagliamonte
db3e2bd346
updating the nested mangles
2013-04-11 22:25:23 -04: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
Gergely Nagy
702811c69a
Implement :keyword support
...
This implements keywords, ":" prefixed symbols that are able to look
themselves up in a collection. They're internally stored as strings that
start with "\ufdd0".
This fixes #22 .
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2013-04-11 15:13:26 +02:00
Konrad Hinsen
e3a9909a7e
Implement integer division operator
...
Fixes #107
2013-04-11 10:09:15 +02:00
Paul R. Tagliamonte
eee65f3051
Update to the style.
2013-04-10 23:11:54 -04:00
Paul R. Tagliamonte
b65f78a0c7
Adding in this barf of a hack beacuse it pleases me.
2013-04-10 23:06:55 -04:00
Paul R. Tagliamonte
f6b94b1b40
Avoiding breaking PyPy. Wat.
2013-04-10 23:00:42 -04:00
Paul R. Tagliamonte
d25d354281
Adding in on-the-fly-importing.
2013-04-10 22:51:58 -04:00
Paul R. Tagliamonte
644f2756f3
Fixing the raised Exception.
2013-04-10 21:49:27 -04:00
Paul R. Tagliamonte
1adf64839a
Updating travis; exceptions.
2013-04-10 21:44:23 -04:00
Paul R. Tagliamonte
65db83d1ff
moving atoms around to make it easier for internals.
2013-04-10 20:04:58 -04:00
James King
484a96abae
WIP - Move _parse_lamba_list to the functiondef
2013-04-10 16:52:28 -04:00
James King
160eaaa543
Merge branch 'develop' into feature/lambda-list-keyword
2013-04-10 15:14:45 -04:00
James King
1506ff16ad
Added ast pretty printer
2013-04-10 15:08:44 -04:00
Konrad Hinsen
b1f66b6893
Handle float and complex constants in addition to integer
2013-04-10 14:26:16 +02:00
Konrad Hinsen
4f98ea22e8
Allow atoms (integers, booleans, symbols) as top-level expressions
2013-04-10 13:08:32 +02:00
Konrad Hinsen
753460884e
Accept strings as top-level expressions
2013-04-10 12:32:39 +02:00
Paul R. Tagliamonte
8cc26ba1bf
moving to locals; fixing _ast vs ast, adding tests
2013-04-09 21:40:54 -04:00
Paul R. Tagliamonte
73be6afd3a
Initial cut of `eval'
2013-04-09 21:33:09 -04:00
Paul R. Tagliamonte
3f5ce64407
I'm an idiot
2013-04-09 20:44:52 -04:00
Paul R. Tagliamonte
c0b34181bc
futzing with alignment
2013-04-09 20:44:05 -04:00
Paul R. Tagliamonte
b71d5c597e
Fixing a bug @jd noticed.
2013-04-09 20:34:46 -04:00
Paul R. Tagliamonte
a948cf2870
Merge branch 'master' into feature/quoting
2013-04-09 19:50:25 -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
181a22be93
Merge pull request #91 from jd/jd/better-error-reporting
...
Enhance error reporting
2013-04-09 08:23:27 -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
48d5a0abc0
catch: use the right symbol name in errors
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-09 16:58:32 +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
ed5a0455b6
Enhance error reporting
...
We're now able to make the difference between a compiler bug and a user
trying to compile wrong thing, and report this correctly on the console.
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-09 16:09:06 +02:00
Paul R. Tagliamonte
997b32e18c
Testing the behavior of (quote "foo")
2013-04-08 22:31:26 -04:00
Paul R. Tagliamonte
f27378e57a
Adding in some prototype bits for quoted forms.
2013-04-08 20:18:15 -04:00
Julien Danjou
d7e8dd2a91
compiler: optimize empty tree mangling to ast.Pass
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-08 13:27:50 -04: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
57fa5c8127
Time for 0.9.5
2013-04-07 19:45:50 -04:00
Paul R. Tagliamonte
5336b2f71a
Fix early returns. Close #83
2013-04-07 19:29:45 -04:00
Paul R. Tagliamonte
6912f4c4d9
Merge branch 'master' into pr-82
2013-04-07 18:51:18 -04:00
Paul R. Tagliamonte
2216a23438
Merge branch 'jd/try' of git://github.com/jd/hy into pr-82
2013-04-07 18:51:08 -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
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
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
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
Paul R. Tagliamonte
47ec1d264c
style fixes
2013-04-07 18:16:45 -04:00
Paul R. Tagliamonte
3f84da8771
Merge branch 'f/and-and-or' of git://github.com/algernon/hy into pr-79
2013-04-07 18:15:54 -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
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
Julien Danjou
f5dc569de4
compiler: remove old TODO entry
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-07 23:14:42 +02:00
Paul R. Tagliamonte
bfc71e4a60
Add tail threading (->>)
2013-04-07 15:05:30 -04: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
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
3c735d18bd
Revert "Revert "Remove useless code""
...
This reverts commit 262da59c77
.
Conflicts:
hy/models/string.py
2013-04-07 10:06:44 -04:00
Paul R. Tagliamonte
c657def253
namespaceing to __hy in case anyone tries this 4real
2013-04-06 23:31:26 -04:00
Paul R. Tagliamonte
03dfbde1b8
style voodoo
2013-04-06 23:11:43 -04:00
Paul R. Tagliamonte
0429cbea12
Using punycode where we can.
2013-04-06 22:49:48 -04:00
Paul R. Tagliamonte
5a96089266
Using backslashes for now; punycode soon.
2013-04-06 21:33:52 -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
262da59c77
Revert "Remove useless code"
...
This reverts commit 801c4e0099
.
2013-04-06 20:01:55 -04:00
Paul R. Tagliamonte
0eb4029d74
Merge branch 'jd/clean-hystring' of git://github.com/jd/hy
2013-04-06 19:17:28 -04:00
Julien Danjou
801c4e0099
Remove useless code
...
This seems to have no purpose to me.
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 23:40:21 +02: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
Paul R. Tagliamonte
914011175f
Style fixes
2013-04-06 13:15:32 -04: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
a625493a3f
Style fix
2013-04-06 08:18:45 -04:00
Paul R. Tagliamonte
6aebc5820f
Merge branch 'jd/if' of git://github.com/jd/hy
2013-04-06 08:18:13 -04:00
Paul R. Tagliamonte
c612582e7b
cosmetic style fix
2013-04-06 08:17:04 -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
Paul R. Tagliamonte
7abc472336
Implementing `let'
2013-04-05 21:54:04 -04:00
Paul R. Tagliamonte
d48c2b7cae
Calling this 0.9.4
2013-04-05 20:47:25 -04:00
Paul R. Tagliamonte
d762625aeb
also ignore setf / setv
2013-04-05 20:00:19 -04:00
Paul R. Tagliamonte
65ad7a3b87
Adding FunctionDef as a returnable
2013-04-05 19:46:27 -04:00
Paul R. Tagliamonte
1d01d8874a
Bugfix for #50 . I'm slowly starting to take a shine to this.
2013-04-05 19:29:31 -04:00
Paul R. Tagliamonte
7da1129298
Merge branch 'master' into bugfix/branch-mangler
2013-04-04 21:52:45 -04:00
Paul R. Tagliamonte
9578ae7a57
This fix is in living memory of paroneayea
2013-04-04 21:52:15 -04:00
Paul R. Tagliamonte
7c9fa3758c
Print is for loosers.
2013-04-04 21:50:01 -04:00
Paul R. Tagliamonte
4e2e18576a
Fixing a subtle bug.
2013-04-04 21:49:04 -04:00
Paul R. Tagliamonte
256506ede0
Sketch for #50 - branch mangler
...
This is only slightly better. The insert point needs to walk
with the for loop.
2013-04-04 21:47:00 -04:00
Paul R. Tagliamonte
b2406a9d72
list flattener
2013-04-04 19:32:56 -04:00
Nicolas Dandrimont
940afcafa9
Allow (do) inside (defn)
...
Closes #59
2013-04-04 11:07:38 +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