public SortedMap<Integer,AbsStatementNode> executeCompiler() throws CompilationException
    {
      try
      {
          SortedMap<Integer,AbsStatementNode> code = new TreeMap<Integer,AbsStatementNode>();
          this.symbolTable.clear();
          statements(code);
          return code;
        }
        catch(ParseException e)
        {
        if (e.currentToken!=null) {
                throw new CompilationException(CompilationErrorType.SYNTAX_ERROR,
                            e.currentToken.endLine, e);
            }
            else if (this.token!=null) {
                throw new CompilationException(CompilationErrorType.SYNTAX_ERROR,
                            this.token.endLine,  e);
            }
            throw new CompilationException(CompilationErrorType.SYNTAX_ERROR, e);
        }
        catch(TokenMgrError e) {
            if (this.token!=null) {
                throw new CompilationException(CompilationErrorType.ILLEGAL_CHARACTER,
                            this.token.endLine,  e);
            }
            throw new CompilationException(CompilationErrorType.INTERNAL_LEXER_ERROR, e);
        }
        catch(Throwable e) {
            throw new CompilationException(CompilationErrorType.INTERNAL_ERROR, e);
        }
    }