302b4be4c2 
								
							 
						 
						
							
							
								
								build TypedefDecl objects when parsing typedefs.  
							
							... 
							
							
							
							Add a parsing fastpath for when we see typedef at the top-level.
llvm-svn: 39182 
							
						 
						
							2006-11-19 02:31:38 +00:00  
				
					
						
							
							
								 
						
							
								558cb292da 
								
							 
						 
						
							
							
								
								add an action for parsing type names.  
							
							... 
							
							
							
							llvm-svn: 39180 
							
						 
						
							2006-11-19 01:31:06 +00:00  
				
					
						
							
							
								 
						
							
								9dfdb3c70d 
								
							 
						 
						
							
							
								
								rearrange the type printing code so that we can do the horrible C "inside out"  
							
							... 
							
							
							
							thing properly.  This allows us to print types like:
int (*A)[restrict static 4][6];
properly, in addition to representing them properly. :)
llvm-svn: 39178 
							
						 
						
							2006-11-13 07:38:09 +00:00  
				
					
						
							
							
								 
						
							
								288e86ff15 
								
							 
						 
						
							
							
								
								Rename SemaDeclSpec.{h|cpp} back to DeclSpec.{h|cpp} now that the distinction  
							
							... 
							
							
							
							between sema and parse is clear.
llvm-svn: 39167 
							
						 
						
							2006-11-11 23:03:42 +00:00  
				
					
						
							
							
								 
						
							
								697e5d692b 
								
							 
						 
						
							
							
								
								Change courses on how we do semantic analysis.  Semantic analysis  
							
							... 
							
							
							
							fundamentally requires having an AST around, so move all sema to the
AST library.  This is the first step, later steps will be needed to
clean up libast.
llvm-svn: 39150 
							
						 
						
							2006-11-09 06:32:27 +00:00  
				
					
						
							
							
								 
						
							
								289ab7bb1d 
								
							 
						 
						
							
							
								
								rename SemaDecl.cpp/h to SemaDeclSpec.cpp/h  
							
							... 
							
							
							
							llvm-svn: 39149 
							
						 
						
							2006-11-08 06:54:53 +00:00  
				
					
						
							
							
								 
						
							
								7ad0fbe1f2 
								
							 
						 
						
							
							
								
								rename a bunch of files for better consistency  
							
							... 
							
							
							
							llvm-svn: 39126 
							
						 
						
							2006-11-05 07:46:30 +00:00  
				
					
						
							
							
								 
						
							
								b419d3a80e 
								
							 
						 
						
							
							
								
								- Added basic structure for parsing top level Objective-C forms.  
							
							... 
							
							
							
							- Extended the typedef mechanism for classes, improved performance of the common case.
- Implemented @class  in the parser.
llvm-svn: 39074 
							
						 
						
							2006-10-27 23:18:49 +00:00  
				
					
						
							
							
								 
						
							
								b95cca0d33 
								
							 
						 
						
							
							
								
								fix test/Parser/attributes.c  
							
							... 
							
							
							
							llvm-svn: 39001 
							
						 
						
							2006-10-17 03:01:08 +00:00  
				
					
						
							
							
								 
						
							
								04132371bb 
								
							 
						 
						
							
							
								
								Make ConsumeFoo methods return the location of the consumed token.  
							
							... 
							
							
							
							llvm-svn: 38995 
							
						 
						
							2006-10-16 06:12:55 +00:00  
				
					
						
							
							
								 
						
							
								af63531ac3 
								
							 
						 
						
							
							
								
								Make ConsumeToken return the loc of the consumed token to simplify clients  
							
							... 
							
							
							
							llvm-svn: 38994 
							
						 
						
							2006-10-16 06:06:51 +00:00  
				
					
						
							
							
								 
						
							
								2dacc3ff2e 
								
							 
						 
						
							
							
								
								Changes through out the parser and actions/ast interface to return top-level  
							
							... 
							
							
							
							declarations through the asm streamer.  For a testcase like:
int G;
int H, I, *J;
int func() {}
'clang -parse-print-ast' prints:
Read top-level decl: G
Read top-level decl: H
Read top-level decl: I
Read top-level decl: J
Read top-level decl: func
llvm-svn: 38992 
							
						 
						
							2006-10-16 00:33:54 +00:00  
				
					
						
							
							
								 
						
							
								a11999d83a 
								
							 
						 
						
							
							
								
								start creating proper ast nodes for variables and functions  
							
							... 
							
							
							
							llvm-svn: 38991 
							
						 
						
							2006-10-15 22:34:45 +00:00  
				
					
						
							
							
								 
						
							
								e550a4ea12 
								
							 
						 
						
							
							
								
								Build CastExpr AST nodes  
							
							... 
							
							
							
							llvm-svn: 38950 
							
						 
						
							2006-08-24 06:37:51 +00:00  
				
					
						
							
							
								 
						
							
								5646b3e21c 
								
							 
						 
						
							
							
								
								Fix test/Parser/types.c  
							
							... 
							
							
							
							llvm-svn: 38928 
							
						 
						
							2006-08-15 05:12:01 +00:00  
				
					
						
							
							
								 
						
							
								04f8019616 
								
							 
						 
						
							
							
								
								Make MatchRHSPunctuation smarter, allowing its clients to be simpler.  
							
							... 
							
							
							
							llvm-svn: 38926 
							
						 
						
							2006-08-15 04:55:54 +00:00  
				
					
						
							
							
								 
						
							
								e37e2336b4 
								
							 
						 
						
							
							
								
								Parse attributes in all places allowed.  
							
							... 
							
							
							
							llvm-svn: 38925 
							
						 
						
							2006-08-15 04:50:22 +00:00  
				
					
						
							
							
								 
						
							
								b8cd5c2260 
								
							 
						 
						
							
							
								
								Parse (and ignore) attributes on global decls.  
							
							... 
							
							
							
							llvm-svn: 38924 
							
						 
						
							2006-08-15 04:10:46 +00:00  
				
					
						
							
							
								 
						
							
								6d7e634399 
								
							 
						 
						
							
							
								
								Parse asm specifiers on init declarators.  Add __builtin_va_list to the  
							
							... 
							
							
							
							symbol table at startup time.
llvm-svn: 38922 
							
						 
						
							2006-08-15 03:41:14 +00:00  
				
					
						
							
							
								 
						
							
								8a3e918e33 
								
							 
						 
						
							
							
								
								Correctly implement the check for a typedef name  
							
							... 
							
							
							
							llvm-svn: 38921 
							
						 
						
							2006-08-14 15:44:00 +00:00  
				
					
						
							
							
								 
						
							
								0fb8b36808 
								
							 
						 
						
							
							
								
								"enum x" really is a type specifier  
							
							... 
							
							
							
							llvm-svn: 38920 
							
						 
						
							2006-08-14 01:30:12 +00:00  
				
					
						
							
							
								 
						
							
								3b4fdda3d8 
								
							 
						 
						
							
							
								
								Fix the last remaining FIXME's in the parser by asking the actions module  
							
							... 
							
							
							
							whether or not an identifier is a typedef name.
llvm-svn: 38915 
							
						 
						
							2006-08-14 00:45:39 +00:00  
				
					
						
							
							
								 
						
							
								f0f3baa12e 
								
							 
						 
						
							
							
								
								Inform actions about parsed declarators.  
							
							... 
							
							
							
							llvm-svn: 38910 
							
						 
						
							2006-08-14 00:15:20 +00:00  
				
					
						
							
							
								 
						
							
								b8bbad7fd1 
								
							 
						 
						
							
							
								
								Set TypeSpecType on 'struct x' with no body.  
							
							... 
							
							
							
							llvm-svn: 38904 
							
						 
						
							2006-08-13 22:21:02 +00:00  
				
					
						
							
							
								 
						
							
								da72c82e8e 
								
							 
						 
						
							
							
								
								Recognize struct/union/enum as TypeSpecType's  
							
							... 
							
							
							
							llvm-svn: 38903 
							
						 
						
							2006-08-13 22:16:42 +00:00  
				
					
						
							
							
								 
						
							
								476c3adb69 
								
							 
						 
						
							
							
								
								implement the GNU case-range extension.  Add todo's for other missing gnu extensions.  
							
							... 
							
							
							
							llvm-svn: 38902 
							
						 
						
							2006-08-13 22:09:58 +00:00  
				
					
						
							
							
								 
						
							
								0e89462b08 
								
							 
						 
						
							
							
								
								Parse things like 'struct X;'  
							
							... 
							
							
							
							llvm-svn: 38898 
							
						 
						
							2006-08-13 19:58:17 +00:00  
				
					
						
							
							
								 
						
							
								1890ac8b03 
								
							 
						 
						
							
							
								
								Parse struct/union specifiers.  
							
							... 
							
							
							
							llvm-svn: 38897 
							
						 
						
							2006-08-13 01:16:23 +00:00  
				
					
						
							
							
								 
						
							
								3b561a3b39 
								
							 
						 
						
							
							
								
								Implement parsing of enum-specifiers.  
							
							... 
							
							
							
							llvm-svn: 38896 
							
						 
						
							2006-08-13 00:12:11 +00:00  
				
					
						
							
							
								 
						
							
								0be454e182 
								
							 
						 
						
							
							
								
								Use ExpectAndConsume more  
							
							... 
							
							
							
							llvm-svn: 38895 
							
						 
						
							2006-08-12 19:30:51 +00:00  
				
					
						
							
							
								 
						
							
								6259172911 
								
							 
						 
						
							
							
								
								Implement parsing of array declarators like:  
							
							... 
							
							
							
							int Array[*(int*)P+A];
llvm-svn: 38890 
							
						 
						
							2006-08-12 18:40:58 +00:00  
				
					
						
							
							
								 
						
							
								9fab3b9486 
								
							 
						 
						
							
							
								
								Implement parsing of 'int A[X];' by tying into the expression parsing code.  
							
							... 
							
							
							
							Turn a bunch of fixme's into todo's.
llvm-svn: 38888 
							
						 
						
							2006-08-12 18:25:42 +00:00  
				
					
						
							
							
								 
						
							
								f5fbd7963d 
								
							 
						 
						
							
							
								
								Implement type-name parsing, and simple compound initializer parsing.  
							
							... 
							
							
							
							llvm-svn: 38865 
							
						 
						
							2006-08-10 23:56:11 +00:00  
				
					
						
							
							
								 
						
							
								4564bc1123 
								
							 
						 
						
							
							
								
								Factor some code into the new Parser::MatchRHSPunctuation method.  
							
							... 
							
							
							
							llvm-svn: 38864 
							
						 
						
							2006-08-10 23:14:52 +00:00  
				
					
						
							
							
								 
						
							
								c2dd85ac9e 
								
							 
						 
						
							
							
								
								Implement most of unary-expression parsing.  
							
							... 
							
							
							
							llvm-svn: 38862 
							
						 
						
							2006-08-10 22:57:16 +00:00  
				
					
						
							
							
								 
						
							
								c5e0d4a6ae 
								
							 
						 
						
							
							
								
								stub out some entry points for the expr parsing code.  
							
							... 
							
							
							
							llvm-svn: 38858 
							
						 
						
							2006-08-10 19:06:03 +00:00  
				
					
						
							
							
								 
						
							
								eb8a28f7b7 
								
							 
						 
						
							
							
								
								Rename some files  
							
							... 
							
							
							
							llvm-svn: 38855 
							
						 
						
							2006-08-10 18:43:39 +00:00  
				
					
						
							
							
								 
						
							
								2f9980ef14 
								
							 
						 
						
							
							
								
								Implement Parser/statements.c:test5: parsing decls that start with identifiers  
							
							... 
							
							
							
							in blocks.
llvm-svn: 38854 
							
						 
						
							2006-08-10 18:39:24 +00:00  
				
					
						
							
							
								 
						
							
								53361ac130 
								
							 
						 
						
							
							
								
								Refactor init-declarator-list parsing code to allow for-statements to have  
							
							... 
							
							
							
							initializers in them.
llvm-svn: 38847 
							
						 
						
							2006-08-10 05:19:57 +00:00  
				
					
						
							
							
								 
						
							
								0ccd51ebe2 
								
							 
						 
						
							
							
								
								Start parsing statements and function bodies.  This implements  
							
							... 
							
							
							
							Parser/statements.c:test1.
llvm-svn: 38842 
							
						 
						
							2006-08-09 05:47:47 +00:00  
				
					
						
							
							
								 
						
							
								fff824fe14 
								
							 
						 
						
							
							
								
								Simplify and fill out parsing of function bodies.  
							
							... 
							
							
							
							llvm-svn: 38841 
							
						 
						
							2006-08-07 06:31:38 +00:00  
				
					
						
							
							
								 
						
							
								bf320c84a5 
								
							 
						 
						
							
							
								
								better comments, infrastructure for parsing function bodies.  
							
							... 
							
							
							
							llvm-svn: 38839 
							
						 
						
							2006-08-07 05:05:30 +00:00  
				
					
						
							
							
								 
						
							
								d5d0a6c2b5 
								
							 
						 
						
							
							
								
								Capture function information, provide a place to validate Declarator information.  
							
							... 
							
							
							
							llvm-svn: 38838 
							
						 
						
							2006-08-07 00:58:14 +00:00  
				
					
						
							
							
								 
						
							
								a350722189 
								
							 
						 
						
							
							
								
								comment cleanup  
							
							... 
							
							
							
							llvm-svn: 38837 
							
						 
						
							2006-08-07 00:33:37 +00:00  
				
					
						
							
							
								 
						
							
								6c7416c382 
								
							 
						 
						
							
							
								
								Start capturing pointer and array declarator info.  
							
							... 
							
							
							
							llvm-svn: 38836 
							
						 
						
							2006-08-07 00:19:33 +00:00  
				
					
						
							
							
								 
						
							
								14776b9501 
								
							 
						 
						
							
							
								
								Implement some more error recovery  
							
							... 
							
							
							
							llvm-svn: 38835 
							
						 
						
							2006-08-06 22:27:40 +00:00  
				
					
						
							
							
								 
						
							
								eec40f9990 
								
							 
						 
						
							
							
								
								Start implementing error recovery, this implements test/Parser/recovery-1.c  
							
							... 
							
							
							
							llvm-svn: 38833 
							
						 
						
							2006-08-06 21:55:29 +00:00  
				
					
						
							
							
								 
						
							
								1906f8087d 
								
							 
						 
						
							
							
								
								Improve handling of [*]  
							
							... 
							
							
							
							llvm-svn: 38831 
							
						 
						
							2006-08-06 19:14:46 +00:00  
				
					
						
							
							
								 
						
							
								8a39edc931 
								
							 
						 
						
							
							
								
								Warn for c99-specific array use  
							
							... 
							
							
							
							llvm-svn: 38830 
							
						 
						
							2006-08-06 18:33:32 +00:00  
				
					
						
							
							
								 
						
							
								e8074e65dd 
								
							 
						 
						
							
							
								
								Parse array declarators, tested by Parser/declarators.c  
							
							... 
							
							
							
							llvm-svn: 38828 
							
						 
						
							2006-08-06 18:30:15 +00:00  
				
					
						
							
							
								 
						
							
								acd58a3c33 
								
							 
						 
						
							
							
								
								Parse parenthesized and function declarators now, allowing us to parse things  
							
							... 
							
							
							
							like: "void (*signal(int, void (*)(int)))(int);"
llvm-svn: 38824 
							
						 
						
							2006-08-06 17:24:14 +00:00  
				
					
						
							
							
								 
						
							
								15356a7065 
								
							 
						 
						
							
							
								
								Start capturing declarator information in a new Declarator object.  
							
							... 
							
							
							
							llvm-svn: 38823 
							
						 
						
							2006-08-06 00:02:28 +00:00  
				
					
						
							
							
								 
						
							
								d9c3c59fc0 
								
							 
						 
						
							
							
								
								Continue work on declspecs and declarations  
							
							... 
							
							
							
							llvm-svn: 38818 
							
						 
						
							2006-08-05 06:26:47 +00:00  
				
					
						
							
							
								 
						
							
								8e90ef6ccc 
								
							 
						 
						
							
							
								
								add some notes  
							
							... 
							
							
							
							llvm-svn: 38817 
							
						 
						
							2006-08-05 03:30:45 +00:00  
				
					
						
							
							
								 
						
							
								f63f89acc2 
								
							 
						 
						
							
							
								
								Handle __thread and storage-class-specifiers  
							
							... 
							
							
							
							llvm-svn: 38816 
							
						 
						
							2006-08-05 03:28:50 +00:00  
				
					
						
							
							
								 
						
							
								839713c085 
								
							 
						 
						
							
							
								
								Emit diagnostics for things like 'signed _Bool' and 'short float'  
							
							... 
							
							
							
							llvm-svn: 38811 
							
						 
						
							2006-08-04 06:15:52 +00:00  
				
					
						
							
							
								 
						
							
								da48a8e66b 
								
							 
						 
						
							
							
								
								Parse and validate cvr type-qualifiers  
							
							... 
							
							
							
							llvm-svn: 38807 
							
						 
						
							2006-08-04 05:25:55 +00:00  
				
					
						
							
							
								 
						
							
								b9093cd1d0 
								
							 
						 
						
							
							
								
								Add an initial cut at a datastructure for holding declspec's.  
							
							... 
							
							
							
							llvm-svn: 38805 
							
						 
						
							2006-08-04 04:39:53 +00:00  
				
					
						
							
							
								 
						
							
								c0acd3d621 
								
							 
						 
						
							
							
								
								Split declaration parsing out into Declarations.cpp  
							
							... 
							
							
							
							llvm-svn: 38804 
							
						 
						
							2006-07-31 05:13:43 +00:00