implement AST node for switch stmt

llvm-svn: 39119
diff --git a/clang/Sema/Sema.cpp b/clang/Sema/Sema.cpp
index 56eb4d1..c7b1eb0 100644
--- a/clang/Sema/Sema.cpp
+++ b/clang/Sema/Sema.cpp
@@ -105,6 +105,11 @@
                         StmtTy *ElseVal) {
   return new IfStmt((Expr*)CondVal, (Stmt*)ThenVal, (Stmt*)ElseVal);
 }
+Action::StmtResult
+ASTBuilder::ParseSwitchStmt(SourceLocation SwitchLoc, ExprTy *Cond,
+                            StmtTy *Body) {
+  return new SwitchStmt((Expr*)Cond, (Stmt*)Body);
+}
 
 Action::StmtResult 
 ASTBuilder::ParseForStmt(SourceLocation ForLoc, SourceLocation LParenLoc, 
diff --git a/clang/Sema/Sema.h b/clang/Sema/Sema.h
index e8ae0a8..8520fd4 100644
--- a/clang/Sema/Sema.h
+++ b/clang/Sema/Sema.h
@@ -60,7 +60,8 @@
   virtual StmtResult ParseIfStmt(SourceLocation IfLoc, ExprTy *CondVal,
                                  StmtTy *ThenVal, SourceLocation ElseLoc,
                                  StmtTy *ElseVal);
-  
+  virtual StmtResult ParseSwitchStmt(SourceLocation SwitchLoc, ExprTy *Cond,
+                                     StmtTy *Body);
   virtual StmtResult ParseWhileStmt(SourceLocation WhileLoc, ExprTy *Cond,
                                     StmtTy *Body);
   virtual StmtResult ParseDoStmt(SourceLocation DoLoc, StmtTy *Body,