aboutsummaryrefslogtreecommitdiff
path: root/src/comp/front/ast.rs
Commit message (Collapse)AuthorAgeFilesLines
* rustc: Add a slot for explicit type parameter instantations to the ↵Patrick Walton2011-03-081-1/+1
| | | | typechecker's AST annotation
* Parse opacity (and drop on the floor), so std.rc parses now.Graydon Hoare2011-03-071-0/+5
|
* Add a pretty-printerMarijn Haverbeke2011-03-071-0/+36
| | | | | Adds a -pp option to the compiler which will cause it to simply pretty-print the given file.
* Permit view items in native modules.Graydon Hoare2011-03-071-3/+22
|
* Parse (and generally ignore) constraints and constrained types.Graydon Hoare2011-03-041-0/+9
|
* Parse meta directives in crates.Graydon Hoare2011-03-041-1/+1
|
* Parse, add to AST, and otherwise ignore 'export' view items. Need to add ↵Graydon Hoare2011-03-021-0/+6
| | | | support to resolve.
* Remove unused is_ext_exprBrian Anderson2011-03-021-11/+0
|
* Make the expanded expression in expr_ext not optionalBrian Anderson2011-03-021-1/+1
|
* Begin implementing #fmt in rustcBrian Anderson2011-03-021-1/+12
|
* Parse (and ignore) dtors on objs.Graydon Hoare2011-03-011-1/+2
|
* There are no native iterators (or at least they are not going to be supportedRafael Ávila de Espíndola2011-02-251-1/+1
| | | | soon.).
* Factor crate expr evaluator out of parser, expand to simple scalars and ops, ↵Graydon Hoare2011-02-241-2/+6
| | | | if, alt.
* Parse crate directive tree in one pass, then evaluate it in a second.Graydon Hoare2011-02-241-1/+2
|
* Add a type for crate directives, to support intermixing with exprs in crate ↵Graydon Hoare2011-02-231-0/+14
| | | | files.
* Parse the abi in native modules.Rafael Ávila de Espíndola2011-02-231-0/+6
|
* Make a tag for iterness / fnness, teach many places about it.Graydon Hoare2011-02-181-3/+9
|
* More typechecking for native types and the needed plumbing in codegen.Rafael Avila de Espindola2011-02-161-2/+2
|
* Add _mutable unop.Graydon Hoare2011-02-151-0/+1
|
* Fix missing path in expr_ext.Graydon Hoare2011-02-151-1/+1
|
* Add basic front-end support for 'for each' loops.Graydon Hoare2011-02-141-0/+1
|
* Add basic front-end support for expr_put.Graydon Hoare2011-02-141-0/+1
|
* Move all non-decl/non-expr stmts to exprs.Graydon Hoare2011-02-141-5/+5
|
* Add parse support for expr_ext.Graydon Hoare2011-02-141-0/+1
|
* Expand expr_rec to take its optional trailing 'with' parameter.Graydon Hoare2011-02-141-1/+1
|
* Add pat_lit to ast, and support parsing it.Graydon Hoare2011-02-101-0/+1
|
* Cleanup for 'be' statement and comments about future typestateBrian Anderson2011-02-101-0/+11
|
* Parse 'be' statement. Pass tailcall tests. No actual tailcalls yet.Brian Anderson2011-02-101-0/+1
|
* Add native modules to resolve. With this hello world gets to typecheck.Rafael Avila de Espindola2011-02-071-0/+2
|
* Parse function declarations.Rafael Ávila de Espíndola2011-02-041-3/+8
|
* Add most of the plumbing for native items and add support for parsing native ↵Rafael Ávila de Espíndola2011-02-021-2/+17
| | | | type declarations.
* Add very minimal support for native modules. For now they must be empty.Rafael Ávila de Espíndola2011-02-011-0/+6
|
* Implement 'else if'Graydon Hoare2011-02-011-1/+1
|
* Add ty_type.Graydon Hoare2011-02-011-0/+1
|
* Teach rustc to failBrian Anderson2011-01-281-0/+1
|
* Correctly handle "import foo = bar.zed;".Rafael Ávila de Espíndola2011-01-281-5/+3
|
* First step for supporting "case (foo.bar(?zed))": Change the ast ofRafael Ávila de Espíndola2011-01-271-1/+1
| | | | pat_tag to hold a path.
* Teach AST, parser, folder about iter items.Graydon Hoare2011-01-211-0/+1
|
* Adjust AST encoding, teach fold about linear for loops.Graydon Hoare2011-01-201-1/+1
|
* Teach ast and parser about linear for expressions.Graydon Hoare2011-01-201-0/+1
|
* One last refactoring of the import handling:Rafael Ávila de Espíndola2011-01-181-2/+2
| | | | | | | | | | | | | * 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.
* Change single-ident expr_ident to greedy/fat multi-ident expr_path, to ↵Graydon Hoare2011-01-131-4/+3
| | | | handle the module-path/value-indexing distinction.
* Change mod_index_entry to point directly to items and view_items.Rafael Ávila de Espíndola2011-01-121-3/+45
|
* Add sufficient import support to compile some simple single-crate programs.Rafael Ávila de Espíndola2011-01-071-1/+0
| | | | | This is likely not the final solution. It does repetitive work and doesn't produce errors for invalid but unused imports. In any case, I think it is a useful step.
* Add names from imports to the namespace.Rafael Ávila de Espíndola2011-01-041-1/+2
|
* Add support for looking up a name introduced by a 'use'.Rafael Ávila de Espíndola2011-01-041-4/+8
| | | | | | | | | | With this we go from "error: unresolved name: foo" to "unimplemented definition variant for: foo" in use foo; fn main(vec[str] args) { foo.bar(); }
* Refactor the view_item code so that it is similar to the code used forRafael Ávila de Espíndola2011-01-041-11/+6
| | | | parsing regular items.
* Rename use_or_import to view_item.Rafael Ávila de Espíndola2011-01-041-3/+3
|
* Add def id to ast for obj fields.Graydon Hoare2010-12-301-0/+1
|
* Record the ast of uses and imports.Rafael Ávila de Espíndola2010-12-301-0/+14
|