Commit graph

146 commits

Author SHA1 Message Date
Brian Anderson
c1e6f5328c Make the expanded expression in expr_ext not optional 2011-03-02 10:28:15 -08:00
Brian Anderson
5e06ec977f Rewrite expand_syntax_ext to avoid a mysterious memory leak 2011-03-02 10:28:14 -08:00
Brian Anderson
1c60399257 Begin work on #fmt parsing 2011-03-02 10:28:14 -08:00
Brian Anderson
9528c34774 Begin implementing #fmt in rustc 2011-03-02 10:28:14 -08:00
Graydon Hoare
64ab5eaaf0 Parse (and ignore) dtors on objs. 2011-03-01 17:33:17 -08:00
Graydon Hoare
7cae0c8c4d Implement the gross rustboot hack for contextual parser access to the compilation environment. 2011-03-01 16:50:32 -08:00
Graydon Hoare
348c77c31b Populate default compilation environment as in rustboot. 2011-03-01 15:57:55 -08:00
Rafael Ávila de Espíndola
081c3aa76d Pass the abi of native functions all the way to codegen. 2011-02-25 15:58:08 -05:00
Rafael Ávila de Espíndola
f8f6f078c5 There are no native iterators (or at least they are not going to be supported
soon.).
2011-02-25 12:08:21 -05:00
Graydon Hoare
88f0463c2b Support the awful alt-else form in rustboot's cexp grammar, at least transiently. Remove in the future. 2011-02-24 17:17:39 -08:00
Graydon Hoare
dbf53b4c37 Connect the crate and source parsers together. 2011-02-24 17:00:24 -08:00
Graydon Hoare
9acf4b9127 Handle the mutant 'let'-block directive in rustboot, temporarily. 2011-02-24 16:42:04 -08:00
Graydon Hoare
b2a09562a6 Factor crate expr evaluator out of parser, expand to simple scalars and ops, if, alt. 2011-02-24 15:55:10 -08:00
Graydon Hoare
127139aecd Parse crate directive tree in one pass, then evaluate it in a second. 2011-02-24 12:14:05 -08:00
Graydon Hoare
c6bc5cce4b Parse auth clauses, drop them on the floor. Nothing exists to use them yet anyways. 2011-02-23 13:28:46 -08:00
Rafael Ávila de Espíndola
5f6110a4db Use the computed abi :-( 2011-02-23 14:10:02 -05:00
Rafael Ávila de Espíndola
ffcb461370 Parse the abi in native modules. 2011-02-23 14:06:37 -05:00
Brian Anderson
c4df39609c Rename std._io to std.io since 'io' is no longer a keyword 2011-02-22 21:52:23 -05:00
Graydon Hoare
34c60b6edb Make a tag for iterness / fnness, teach many places about it. 2011-02-18 17:30:57 -08:00
Rafael Avila de Espindola
012fa69ea5 More typechecking for native types and the needed plumbing in codegen. 2011-02-16 14:02:02 -05:00
Graydon Hoare
9ae89bd404 Add _mutable unop. 2011-02-15 12:20:30 -08:00
Graydon Hoare
2bba49a9fe Fix missing path in expr_ext. 2011-02-15 12:20:13 -08:00
Graydon Hoare
4a72a23171 Add basic front-end support for 'for each' loops. 2011-02-14 18:17:31 -08:00
Graydon Hoare
15a01f5c36 Add basic front-end support for expr_put. 2011-02-14 17:58:32 -08:00
Graydon Hoare
f1f33abdeb Move all non-decl/non-expr stmts to exprs. 2011-02-14 17:46:28 -08:00
Graydon Hoare
88cb966363 Adjust commented-out diagnostic log statement in parser.rs. 2011-02-14 16:35:08 -08:00
Graydon Hoare
890d027b65 Add parse support for expr_ext. 2011-02-14 16:33:25 -08:00
Graydon Hoare
59bce06a96 Expand expr_rec to take its optional trailing 'with' parameter. 2011-02-14 15:52:38 -08:00
Graydon Hoare
c89460bb65 Support indexing pat_lit. 2011-02-10 19:04:37 -08:00
Graydon Hoare
a396652766 Add pat_lit to ast, and support parsing it. 2011-02-10 18:59:23 -08:00
Graydon Hoare
b59d98ccb9 Parse effects and layers in a couple contexts; drop on floor as we have nowhere to put them yet. 2011-02-10 18:58:58 -08:00
Brian Anderson
f17a3421e0 Cleanup for 'be' statement and comments about future typestate 2011-02-10 12:12:10 -08:00
Brian Anderson
378c0087ca Parse 'be' statement. Pass tailcall tests. No actual tailcalls yet. 2011-02-10 12:12:10 -08:00
Rafael Avila de Espindola
8122e0c542 Add support for
native mod foo = "bar" ...
2011-02-07 12:50:04 -05:00
Rafael Ávila de Espíndola
57bb9d809b Parse function declarations. 2011-02-04 11:10:04 -05:00
Rafael Ávila de Espíndola
302cafa81d Factor the parsing of "type foo" into parse_type_decl. 2011-02-04 09:46:10 -05:00
Rafael Ávila de Espíndola
dd3ed6139a Add most of the plumbing for native items and add support for parsing native type declarations. 2011-02-02 10:43:57 -05:00
Rafael Ávila de Espíndola
4b06dc574b Add very minimal support for native modules. For now they must be empty. 2011-02-01 16:57:33 -08:00
Graydon Hoare
70bf54bcac Implement 'else if' 2011-02-01 16:23:48 -08:00
Brian Anderson
6b7cab3602 Teach rustc to fail 2011-01-28 11:12:57 -08:00
Rafael Ávila de Espíndola
3cac20dae3 Correctly handle "import foo = bar.zed;". 2011-01-28 11:54:59 -05:00
Rafael Ávila de Espíndola
5066937f10 First step for supporting "case (foo.bar(?zed))": Change the ast of
pat_tag to hold a path.
2011-01-27 15:27:56 -05:00
Graydon Hoare
0e1e3a9e1e Do better at parsing expr_paths with type arguments. 2011-01-24 15:49:39 -08:00
Graydon Hoare
2d7c2acf09 Switch from booleans to symbolic tags in a few places. 2011-01-24 15:26:10 -08:00
Graydon Hoare
65da18faf8 Teach parser to recognize ITER keyword as item-start. 2011-01-24 15:25:30 -08:00
Graydon Hoare
546d144009 Teach AST, parser, folder about iter items. 2011-01-21 17:06:20 -08:00
Graydon Hoare
a8af013077 Adjust AST encoding, teach fold about linear for loops. 2011-01-20 15:02:12 -08:00
Rafael Ávila de Espíndola
7fdb6437d8 typo 2011-01-20 16:20:45 -05:00
Graydon Hoare
33b342e891 Teach ast and parser about linear for expressions. 2011-01-20 13:11:47 -08:00
Rafael Ávila de Espíndola
41b7d6d74d One last refactoring of the import handling:
* Create an import resolving stage. Currently this involves a copy of the ast,
  we can probably revisit this once we revisit doing full copies of the ast in
  general.

* Don't repeat work. Once we resolve a import, put it on a hash table and use
  it next time we are asked for it. This solves a O(n^2) behaviour in
  degenerated cases.

* Once import resolution is done, the target of an import is stored on the
  import itself.
2011-01-18 15:43:13 -08:00