adding TestON
diff --git a/TestON/core/testparser.py b/TestON/core/testparser.py
new file mode 100644
index 0000000..f158259
--- /dev/null
+++ b/TestON/core/testparser.py
@@ -0,0 +1,134 @@
+#!/usr/bin/env python
+'''
+Created on 26-Dec-2012
+
+@author: Anil Kumar (anilkumar.s@paxterrasolutions.com)
+
+
+    TestON is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 2 of the License, or
+    (at your option) any later version.
+
+    TestON is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with TestON.  If not, see <http://www.gnu.org/licenses/>.		
+
+
+'''
+import re
+import sys
+class TestParser:
+    def __init__(self,testFile):
+        try :
+            testFileHandler = open(testFile, 'r')
+        except IOError: 
+            print "No such file "+testFile
+            sys.exit(0)
+ 
+        testFileList = testFileHandler.readlines()
+        self.testscript = testFileList              
+        self.caseCode = {}
+        self.caseBlock = ''
+        self.statementsList = []
+        index = 0 
+        self.statementsList = []
+        #initialSpaces = len(line) -len(line.lstrip())
+        while index < len(testFileList):
+            testFileList[index] = re.sub("^\s{8}|^\s{4}", "", testFileList[index])
+            # Skip multiline comments 
+            if re.match('^(\'\'\')|^(\"\"\")',testFileList[index],0) :
+                index = index + 1
+                try :
+                    while not re.match('^\s*(\'\'\')|^\s*(\"\"\")',testFileList[index],0) :
+                        index = index + 1
+                except IndexError,e:
+                    print ''
+                    
+
+            # skip empty lines and single line comments 
+            elif not re.match('#|^\s*$',testFileList[index],0):
+                self.statementsList.append(testFileList[index])
+            index = index + 1
+    
+    def case_code(self):
+        index = 0 
+        statementsList = self.statementsList       
+        while index < len(statementsList):
+            #print statementsList[index]
+            m= re.match('def\s+CASE(\d+)',statementsList[index],0)
+            self.caseBlock = []
+            if m:
+                #print m.group(1)
+                index = index + 1
+                try :
+                    while not re.match('\s*def\s+CASE(\d+)',statementsList[index],0) :
+                        self.caseBlock.append(statementsList[index])
+                        if index < len(statementsList)-1:
+                            index = index + 1
+                        else :
+                            break
+                    index = index - 1
+                except IndexError,e:
+                    #print 'IndexError'
+                    print ''
+    
+                self.caseCode [str(m.group(1))] = self.caseBlock
+                #print "Case CODE "+self.caseCode [str(m.group(1))]
+            index = index + 1
+        
+        return self.caseCode 
+    
+    def step_code(self,caseStatements):
+        index = 0
+        step = 0 
+        stepCode = {}  
+        step_flag = False    
+        while index < len(caseStatements):
+            m= re.match('main\.step',caseStatements[index],0)
+            stepBlock = ''
+            if m:
+                step_flag = True
+                if step == 0 :
+                    i = 0
+                    block = ''
+                    while i <= index :
+                        block += caseStatements[i]
+                        i = i + 1
+                    stepCode[step] = block   
+                    step = step + 1
+                stepBlock= stepBlock + caseStatements[index]
+                index = index + 1
+                try :
+                    while not re.match('main\.step',caseStatements[index],0) :
+                        stepBlock= stepBlock + caseStatements[index]
+                        if index < len(caseStatements)-1:
+                            index = index + 1
+                        else :
+                            break
+                    index = index - 1
+                except IndexError,e:
+                    #print 'IndexError'
+                    print ''
+                stepCode[step] = stepBlock
+                step = step + 1
+            index = index + 1
+        # If there is no step defined !!
+        if not step_flag :
+            stepCode[step] = "".join(caseStatements)
+        return stepCode
+    
+    def getStepCode(self):
+        case_step_code = {}
+        case_block = self.case_code()
+        
+        for case in case_block :
+            case_step_code[case] = {}
+            step_block = self.step_code(case_block[case])
+            for step in step_block :
+                case_step_code[case][step] = step_block[step]
+        return case_step_code