/*
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

/*
 * Author: pgess <v.melnychenko@xreate.org>
 * Created on June 15, 2018, 5:28 PM
 *
 * \file    interpretation-instructions.h
 * \brief   Additional intepretation statements
 */

#ifndef INTERPRETATION_INSTRUCTIONS_H
#define INTERPRETATION_INSTRUCTIONS_H

#include "compilation/targetinterpretation.h"
#include "ast.h"

namespace xreate{
namespace interpretation{

class IntrinsicQueryInstruction{
public:

    IntrinsicQueryInstruction(InterpretationScope* scope): __scope(scope){ }
    Expression process(const Expression& expression);

private:
    InterpretationScope* __scope;
    Expression representTransExpression(const Gringo::Symbol& atom, ExpandedType schemaT);
};

}
} //end of xreate::interpretation

#endif /* INTERPRETATION_INSTRUCTIONS_H */

