about summary refs log tree commit diff
path: root/src/comp/syntax/parse/parser.rs
AgeCommit message (Collapse)AuthorLines
2012-01-09Make the parser accept 'if' as an alternative to 'when' in alt patterns.Austin Seipp-1/+5
Also fix the pretty printer, making it output 'if' instead of 'when'. Issue #1396
2012-01-05require a non-semi expr acting as a stmt to have unit return typeNiko Matsakis-13/+14
2012-01-05make parser handle parenthesized block-sugar exprs properlyNiko Matsakis-49/+80
2012-01-05Switch to new param kind bound syntaxMarijn Haverbeke-10/+8
And remove support for the old syntax
2012-01-05Fix bad spans for ast::ty parsingMarijn Haverbeke-9/+6
The span would be pointing after the actual text.
2012-01-03Allow tail expressions even in no_value blocks. Type checkerNiko Matsakis-26/+14
will guarantee they have unit type.
2012-01-03extend parser so that expressions that do not require semi-colonsNiko Matsakis-2/+2
to be statements are not considered expressions in the tail position
2012-01-03rewrite to put blk as 2nd argNiko Matsakis-1/+1
2012-01-03minimal changes to permit fn blocks in exprNiko Matsakis-68/+64
2012-01-03Make syntax for impls less magicalMarijn Haverbeke-23/+18
The trick of interpreting parameters to the iface type as parameters to the impl was just too magical. Issue #1227
2011-12-29split proto from fn_decl, as not all fn_decls know the proto.Niko Matsakis-38/+21
this will address the (crashing) new test added.
2011-12-28Change representation of type params to handle interface boundsMarijn Haverbeke-5/+14
Issue #1227
2011-12-23Check impls methods against the type of their iface.Marijn Haverbeke-8/+8
2011-12-23Parse `iface` items and interface references in `impl` items.Marijn Haverbeke-56/+61
The (temporary) syntax is iface seq<T> { fn len() -> uint; fn iter(f: block(T)); } // The 'blah<T>' can be left of to default the name of the // impl to seq<T>. The 'of seq<T>' can be left off when // not implementing a named interface. impl blah<T> of seq<T> for [T] { fn len() -> uint { vec::len(self) } fn iter(f: block(T)) { for x in self { f(x); } } }
2011-12-23Make ast::ty_method hold a fn_decl, rather than duplicating its fieldsMarijn Haverbeke-8/+1
2011-12-22Register new snapshots, purge log_err and log_full in favour of log(...).Graydon Hoare-6/+2
2011-12-22Merge all 3 log syntaxes, tidy up residual misuses.Graydon Hoare-9/+4
2011-12-22Unify some data structures in syntax::ast that were doing the same thingMarijn Haverbeke-55/+45
As a preparation to removing some duplication in typeck.
2011-12-22Merge branch 'master' of github.com:graydon/rustGraydon Hoare-1/+1
2011-12-22Remove trivial cast checkerMarijn Haverbeke-1/+1
I consider the added complexity not justified at this point, and it interacts badly with the patches for issue #828. Feel free to discuss.
2011-12-21More flailing on log syntax due to call-expr ambiguity in previous attempt.Graydon Hoare-1/+4
2011-12-21Out-of-order-code typo. Snapshot again.Graydon Hoare-1/+1
2011-12-21Switch log_expr to carrying a full expr:u32 for level. Add log_full variant ↵Graydon Hoare-3/+18
that parses that expr, prepare for snapshot.
2011-12-21Make { || ... } sugar for any type of closure, inferredNiko Matsakis-3/+1
2011-12-20Inject "core macros" into default syntax-expansion environment. Bit of a ↵Graydon Hoare-6/+18
kludge but enough to work on logging-via-macros.
2011-12-19resolve capture clausesNiko Matsakis-13/+10
2011-12-19Add type argument field to expr_pathMarijn Haverbeke-1/+6
This way, you can explicitly provide type parameters when calling a generic method. Issue #1227
2011-12-19Use quotes around tokens in parser error messages to make them more readableMarijn Haverbeke-12/+12
Closes #1328
2011-12-16Make polymorphic impl methods workMarijn Haverbeke-5/+6
Something will still have to be done to the AST to make it possible to say `x.foo::<int>()`, since currently field access never allows type parameters. Issue #1227
2011-12-16Change syntax for implMarijn Haverbeke-6/+6
Move the name of the bundle to the front, allow type parameters (not handled yet), and add a 'for' keyword: impl utils for int { fn str() -> str { int::str(self) } fn times(f: block()) { ... } }
2011-12-16Make uses of self in impls compileMarijn Haverbeke-17/+1
Get rid of expr_self_call, introduces def_self. `self` is now, syntactically, simply a variable. A method implicitly brings a `self` binding into scope. Issue #1227
2011-12-16Parse and resolve implementations.Marijn Haverbeke-5/+18
Issue #1227
2011-12-15Iterate over an array when creating the parser's reserved word tableMarijn Haverbeke-38/+8
2011-12-14change syntax from lambda[send] to sendfnNiko Matsakis-79/+14
2011-12-14restructure, temporarily working around what looks like an LLVM bugNiko Matsakis-3/+37
2011-12-14remove extra trailing semicolonNiko Matsakis-1/+1
2011-12-14push changes through to get things compiling, if not running.Niko Matsakis-13/+19
2011-12-14first attempt, not happy with itNiko Matsakis-28/+30
2011-12-14define ty and update parser for sendable lambdasNiko Matsakis-6/+85
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-3/+4
2011-12-09Allow type annotations for blocksMarijn Haverbeke-10/+8
I.e. {|foo: int| -> int foo + 2} Issue #1275
2011-12-08Error when parsing the empty record typeMarijn Haverbeke-0/+1
Issue #1200
2011-12-08Allow binding of nested patternsMarijn Haverbeke-5/+6
See src/test/run-pass/nested-patterns.rs for some examples. The syntax is boundvar@subpattern Which will match the subpattern as usual, but also bind boundvar to the whole matched value. Closes #838
2011-12-07Remove stmt_crate_directive, it's vestigial and confusing.Graydon Hoare-18/+1
2011-12-07Change literal representation to not truncateMarijn Haverbeke-24/+17
Also shuffles around the organization of numeric literals and types, separating by int/uint/float instead of machine-vs-non-machine types. This simplifies some code. Closes #974 Closes #1252
2011-12-02parse: typeck: enabling trivial casts of tail-call return valuesStefan Plantikow-1/+1
introduces ctypes::m_* machine type aliases for int, uint, float depending on cfg(target_arch) that are used in tests
2011-12-02Stop lexing -1 as a single tokenMarijn Haverbeke-13/+1
And remove the hack that made 1-1 work given that other hack. Issue #954
2011-12-02Allow literal patterns to contain arbitrary literal expressionsMarijn Haverbeke-9/+11
This removes the need for the unary minus hacks, and allows some other neat things like matching on 1 >> 4. Issue #954
2011-11-30Box ast::path valuesMarijn Haverbeke-17/+16
It seems inefficient to copy them around. Let's measure whether that's actually > the case
2011-11-24rustc: Fix a bug in cdir attribute parsingBrian Anderson-0/+2
The first attribute of the first mod was being applied to every mod.