summary refs log tree commit diff
path: root/src/comp/syntax/parse
AgeCommit message (Collapse)AuthorLines
2011-12-29Add support in lexer for utf8 identifiers. No NFKC logic in char yet.Graydon Hoare-2/+4
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-9/+5
2011-12-22Merge all 3 log syntaxes, tidy up residual misuses.Graydon Hoare-11/+6
2011-12-22Merge branch 'master' of github.com:graydon/rustGraydon Hoare-55/+45
2011-12-22Register snapshots and switch logging over to use of log_full or #error / ↵Graydon Hoare-14/+14
#debug.
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 1.f parse as a field access on the integer 1Marijn Haverbeke-1/+1
A dot is only considered part of a number when not followed by a letter Closes #1306
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-11/+14
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-08Consider variant constructors pure functions for the purpose of purity checkingMarijn Haverbeke-1/+0
Closes #1269
2011-12-07Remove stmt_crate_directive, it's vestigial and confusing.Graydon Hoare-18/+1
2011-12-07Change literal representation to not truncateMarijn Haverbeke-140/+87
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-62/+3
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.
2011-11-24rustc: Add a path attribute for crate directivesHaitao Li-15/+16
The path information was an optional "filename" component of crate directive AST. It is now replaced by an attribute with metadata named "path". With this commit, a directive mod foo = "foo.rs"; should be written as: #[path = "foo.rs"] mod foo; Closes issue #906.
2011-11-24rustc: Accepts `path` attributes for crate directivesHaitao Li-1/+3
Temporarily allow path specified in either as attribute or in AST, like: #[path = "mymod.rs"] mod mymod = "mymod.rs"; This is a transitional commit to avoid creating a stage1 snapshot.
2011-11-23Allow import directives in any blockMarijn Haverbeke-3/+4
Closes #49
2011-11-23Rollback return-by-referenceMarijn Haverbeke-26/+4
It's proving too inflexible, so I'm ripping out the extra complexity in the hope that regions will, at some point, provide something similar. Closes #918
2011-11-23Remove last traces of auth keywordMarijn Haverbeke-14/+0
The reference now has an empty hole where the auth keyword used to be. Changing the keyword table seems to require manually sorting the keywords and putting them back into some kind of arcane interleaved order. I'll open an issue to actually fix this. Closes #1211
2011-11-22rustc: Allow trailing comma in record fieldsHaitao Li-28/+48