/*
 * Copyright 2006-2008 The FLWOR Foundation.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#pragma once
#ifndef ZORBA_XQUERYX_TO_XQUERY_CONVERTOR
#define ZORBA_XQUERYX_TO_XQUERY_CONVERTOR

#include <string>

namespace zorba {

struct xsltStylesheet;

class XQueryXConvertor
{
  xsltStylesheet*     xqueryx_xslt;
  bool                inited;
  std::string         errstr;
public:
  XQueryXConvertor();
  ~XQueryXConvertor();
  
  void XQueryX_init();
  char* XQueryX2XQuery( const char *xqueryx);

  bool isWhitespace(char c);
  char* skipWhitespaces(char *xquery_str);
  bool  isXQueryX(char *xquery_str);

  void freeResult(char *result_str);


  static void zorba_xslt_error_handler(void *ctx, const char *msg, ...);
};

};//end namespace zorba

#endif
/* vim:set et sw=2 ts=2: */
