Make AST nodes for ReturnStmt's and CompoundStmts

llvm-svn: 39046
diff --git a/clang/Sema/Sema.cpp b/clang/Sema/Sema.cpp
index 9365961..e62de8b 100644
--- a/clang/Sema/Sema.cpp
+++ b/clang/Sema/Sema.cpp
@@ -52,6 +52,19 @@
   virtual void PopScope(SourceLocation Loc, Scope *S);
   
   //===--------------------------------------------------------------------===//
+  // Statement Parsing Callbacks.
+
+  virtual StmtResult ParseCompoundStmt(SourceLocation L, SourceLocation R,
+                                       StmtTy **Elts, unsigned NumElts);
+  virtual StmtResult ParseExprStmt(ExprTy *Expr) {
+    // TODO: Full info should track this with a node.
+    return Expr; // Exprs are Stmts.
+  }
+  
+  virtual StmtResult ParseReturnStmt(SourceLocation ReturnLoc,
+                                     ExprTy *RetValExp);
+  
+  //===--------------------------------------------------------------------===//
   // Expression Parsing Callbacks.
 
   // Primary Expressions.
@@ -165,6 +178,28 @@
 }
 
 //===--------------------------------------------------------------------===//
+// Statement Parsing Callbacks.
+//===--------------------------------------------------------------------===//
+
+Action::StmtResult 
+ASTBuilder::ParseCompoundStmt(SourceLocation L, SourceLocation R,
+                              StmtTy **Elts, unsigned NumElts) {
+  if (FullLocInfo || NumElts > 1)
+    return new CompoundStmt((Stmt**)Elts, NumElts);
+  else if (NumElts == 1)
+    return Elts[0];        // {stmt} -> stmt
+  else
+    return 0;              // {}  -> ;
+}
+
+
+Action::StmtResult
+ASTBuilder::ParseReturnStmt(SourceLocation ReturnLoc,
+                            ExprTy *RetValExp) {
+  
+}
+
+//===--------------------------------------------------------------------===//
 // Expression Parsing Callbacks.
 //===--------------------------------------------------------------------===//