Commit Graph

20516 Commits

Author SHA1 Message Date
Chris Lattner
f0219a37b7 Fix a comment in type.h, allow printing of null types, fix oneof printing.
Swift SVN r259
2011-03-13 20:45:45 +00:00
Chris Lattner
71eb272b4a Build AST nodes for references to unresolved names. These can be resolved after parse time.
Swift SVN r258
2011-03-07 00:12:38 +00:00
Chris Lattner
b3e5c55fbc Change the parser methods to lower case to follow naming conventions.
Swift SVN r256
2011-03-06 23:28:17 +00:00
Chris Lattner
ddb760bf2b Remove the concept of an ASTConsumer, add a new TranslationUnitDecl.
Swift SVN r255
2011-03-04 22:08:34 +00:00
Chris Lattner
291967ceb0 Make ParseIdentifier do the string->identifier conversion, simplifying clients. no functionality change.
Swift SVN r250
2011-03-02 06:55:35 +00:00
Chris Lattner
61d62179ee Improve consistency by pushing Identifiers into Sema instead of StringRefs.
Swift SVN r249
2011-03-02 06:50:13 +00:00
Chris Lattner
b233848006 Tidy up and clean up code and error recovery in the parser. Add some templated allocation functions to ASTContext to simplify clients.
Swift SVN r248
2011-03-02 06:15:52 +00:00
Chris Lattner
a37e52624e Improve error message to list the type name.
Swift SVN r246
2011-03-01 08:48:11 +00:00
Chris Lattner
272d9e8dad Propagate "there were errors in the input" out to the exit code of the swift app by adding a "HadError" bool to ASTContext.
Swift SVN r244
2011-03-01 07:59:53 +00:00
Chris Lattner
553e276139 Wire up support for completing types that are used but not yet defined!
Swift SVN r241
2011-03-01 07:25:51 +00:00
Chris Lattner
ffef30f2c3 Change name lookup of types to always succeed: if a type is used before it is defined, just cons up a new TypeAliasDecl for the unresolved type and return it. Diagnose these at the end of the translation unit instead of at their first use.
Swift SVN r240
2011-02-27 20:49:29 +00:00
Chris Lattner
dd2e2d8df3 Introduce UnresolvedType, make ASTContext have the singleton, update getCanonicalType to do the "right" thing.
Swift SVN r239
2011-02-26 02:33:52 +00:00
Chris Lattner
80e1ae6104 Rework a bunch of stuff in the type system: now the *only* way to name a type is through a 'typealias' and there is no such thing as a OneOfDecl. Instead, we have OneOfType's, which are always anonymous. "oneof declarations" and "struct declarations" are now both just sugar.
This eliminates the NamedTypeDecl class (because there is now only one named type decl), eliminates OneOfDecl, renames AliasTypeDecl to NameAliasTypeDecl for good measure, and introduces OneOfType.

This preserves all existing syntax, and allows stuff like this:

func test6(checkboxenabled : oneof { Yep, Nope }) {
  test6(:Yep)
}

Which is an anonymous oneof.

Swift SVN r237
2011-02-26 02:03:01 +00:00
Chris Lattner
7bbe52b52a Expand the swift language to allow typealiases, oneof, and struct within a brace expression. This allows us to have shadowing of type names.
Swift SVN r236
2011-02-22 07:41:44 +00:00
Chris Lattner
50b3fcc3d1 Switch TupleType to hold its elements with an llvm::ArrayRef instead of manually doing it.
Swift SVN r235
2011-02-22 07:15:54 +00:00
Chris Lattner
f9673bb44a Remove the type symbol table from ASTContext, using the scoped hash table in SemaDecl instead. We resolve a bunch of fixmes (types now give a "previous definition here" diag), remove weird mutating state from ASTContext, and allow us to have shadowed types.
Swift SVN r234
2011-02-22 07:02:00 +00:00
Chris Lattner
5a74864a71 Add a scoped hash table for type names to SemaDecl, make Scope push it along with the value scoped hash table.
Nothing is added to the type symtab yet though.

Swift SVN r232
2011-02-22 06:45:30 +00:00
Chris Lattner
6a1416b3b8 Revert my last patch. Instead of having a TypeScope and ValueScope, we'll just make Scope do both!
Swift SVN r231
2011-02-22 06:36:52 +00:00
Chris Lattner
e6f00fe1cc Rename the Scope class to ValueScope
Swift SVN r230
2011-02-22 06:30:18 +00:00
Chris Lattner
2e26241a7a Fix AliasType to point to the TypeAliasDecl instead of replicating its contents.
Swift SVN r229
2011-02-22 06:11:48 +00:00
Chris Lattner
93eea9c8bc Simplify ASTContext's transforming of NamedTypeDecls into types. It now doesn't unique them, the decls do for themselves. ASTContext still has the type symbol table.
Swift SVN r228
2011-02-22 06:07:32 +00:00
Chris Lattner
cb9b1838a6 Introduce and create a new TypeAliasDecl for typealiases.
Swift SVN r227
2011-02-22 05:47:08 +00:00
Chris Lattner
ad4389edc8 Introduce a new TypeAliasDecl class and NamedTypeDecl parent class. We're not creating it yet, but hey it's there.
Swift SVN r226
2011-02-22 05:37:01 +00:00
Chris Lattner
1a97122ba0 Update to build with mainline LLVM.
Swift SVN r225
2011-02-04 06:24:41 +00:00
Chris Lattner
e488b69182 Implement sema support for TupleExprs with default elements (represented with null), implement support for conversions from scalar to tuples with multiple default elements.
Swift SVN r220
2010-11-25 23:02:23 +00:00
Chris Lattner
8234b6fd66 Add some sema for tuple elements which are specified with a default value. Still not used for conversions yet.
Swift SVN r219
2010-11-25 21:18:48 +00:00
Chris Lattner
f6d7adc4cb Parse tuple element types as value-specifier's, allowing them to have initializers. Sema isn't wired up yet though.
Swift SVN r218
2010-11-25 20:49:01 +00:00
Chris Lattner
bc616e9fcd Split the initializer syntax from var decls out to their own 'value-specifier' production
Swift SVN r217
2010-11-25 17:00:34 +00:00
Chris Lattner
28789d43d2 Resolve a fixme: use foo.$1 instead of foo.field1
Swift SVN r216
2010-11-11 23:04:29 +00:00
Chris Lattner
3bd8a85784 Fix weirdness in the lang spec by making $123 be a special type of implementation identifier token, handling it uniformly in the grammar in the few places that it is valid.
Swift SVN r215
2010-11-11 22:27:39 +00:00
Chris Lattner
906ba908fd Rename 'data' to 'oneof', resolving a fixme in the spec. Yay for CLU!
Swift SVN r212
2010-11-11 01:20:36 +00:00
Chris Lattner
6f8dd4cf32 add parser support for array indexes
Swift SVN r209
2010-10-17 14:15:33 +00:00
Chris Lattner
6f7564235d Wire up sema support for creating array types.
Swift SVN r207
2010-10-17 13:12:47 +00:00
Chris Lattner
ff38a2db1b AST Support for arrays.
Swift SVN r206
2010-10-17 12:56:04 +00:00
Chris Lattner
fd54c7f5a0 add parser support for array types, no sema or ast yet.
Swift SVN r205
2010-10-15 11:54:34 +00:00
Chris Lattner
154c0c6eb9 Resolve a fixme by eliminating the ; in func decls and making the grammar more restrictive.
Swift SVN r203
2010-10-15 11:07:49 +00:00
Chris Lattner
b9fbd77f58 Fix a bunch of minor bugs found through inspection:
1. Punctuation identifiers were missing some characters.
2. Some parser production and methods were misnamed.
3. Top level var decls don't need a ; after them.
4. Various parser comments were out of date.
5. We now allow any type in a struct decl, e.g. "struct foo int", even though it's weird.

Swift SVN r199
2010-10-12 07:24:33 +00:00
Chris Lattner
26e63c29ac rip out a bunch of special case parsing logic for function arguments now that tuples have a sane syntax.
Swift SVN r197
2010-10-11 21:05:07 +00:00
Chris Lattner
f92a3d56d7 Implement parser support for structs, improve datadecl dumping.
Swift SVN r192
2010-10-10 06:38:24 +00:00
Chris Lattner
bffee378d2 Generalize the expression walker to allow rewrites to be implemented.
Swift SVN r191
2010-10-10 06:19:16 +00:00
Chris Lattner
a885cd5dc5 Diagnose completely unresolved expressions with an error like this:
data.swift:114:10: error: ambiguous expression could not resolve a concrete type
var xx = :Zero;
         ^

Do this with a very general pre/post-order walking function.

Swift SVN r190
2010-10-10 06:11:47 +00:00
Chris Lattner
272cbcaba3 Implement parser, ast and minimal sema support for :foo expressions, type resolution isn't done yet.
Swift SVN r185
2010-10-10 00:15:46 +00:00
Chris Lattner
ad438c55e3 Implement the rest of sema for scoped identifier references (X::Y) we now get a proper DeclRefExpr, and this:
var def = DataSearchFlags::None;

-ast-dump's into:

(vardecl 'def' type='DataSearchFlags'
 (declref_expr type='DataSearchFlags' decl=None))
 

Swift SVN r182
2010-10-09 23:46:16 +00:00
Chris Lattner
10e3eacc83 Create a DataElementDecl to represent the elements of a data, and wire up sema support for creating them when the data is defined.
Swift SVN r181
2010-10-09 23:24:56 +00:00
Chris Lattner
43f2d1dfa5 wire up parser and basic sema support for scoped identifier expressions (X::Y).
Swift SVN r180
2010-10-09 23:01:17 +00:00
Chris Lattner
09a023c3cd Now that we have simple user defined data types, remove the __builtin_else_hack type. woot.
Swift SVN r179
2010-10-09 22:06:13 +00:00
Chris Lattner
ac855b690b Move ActOnTypeAlias to SemaDecl since a type alias *is* a decl that *installs* a type. Add some fixme's and rename some junk in ASTContext relating to the typemap. Diagnose redefinitions of named types. Install a typemap entry when a data declaration is defined.
We can now declare variables to be of data type.

Swift SVN r178
2010-10-09 22:01:25 +00:00
Chris Lattner
9ba168ace5 Fix Alias uniquing to reuse the already-uniqued identifier object instead of being a string map. Make getAliasType fail if a redefinition happens and make getNamedType return datatype's as well.
Swift SVN r177
2010-10-09 21:30:56 +00:00
Chris Lattner
aefb083fed Make the DataType class, wire it into ASTContext.
Swift SVN r176
2010-10-09 21:11:27 +00:00
Chris Lattner
a43a8f27f5 Wire data decls up to -ast-dump. Fix some minor bugs exposed along the way.
Swift SVN r175
2010-10-09 20:46:10 +00:00