OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
ast.hpp File Reference
#include <list>
#include <memory>
#include <ostream>
#include <string>
#include <type_traits>
#include <utility>
#include <variant>
Include dependency graph for ast.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  client::ast::recursive_wrapper< T >
 
struct  client::ast::is_recursive_wrapper< T >
 
struct  client::ast::is_recursive_wrapper< recursive_wrapper< T > >
 
struct  client::ast::tagged
 
struct  client::ast::nil
 
struct  client::ast::identifier
 
struct  client::ast::quoted_string
 
struct  client::ast::unary
 
struct  client::ast::operation
 
struct  client::ast::function_call
 
struct  client::ast::expression
 

Namespaces

namespace  client
 
namespace  client::ast
 

Typedefs

typedef std::variant< nil, bool, unsigned int, double, identifier, recursive_wrapper< unary >, recursive_wrapper< function_call >, recursive_wrapper< expression > > client::ast::operand
 
typedef std::variant< expression, quoted_string > client::ast::function_call_argument
 

Enumerations

enum  client::ast::optoken {
  client::ast::op_plus , client::ast::op_minus , client::ast::op_times , client::ast::op_divide ,
  client::ast::op_positive , client::ast::op_negative , client::ast::op_not , client::ast::op_equal ,
  client::ast::op_not_equal , client::ast::op_less , client::ast::op_less_equal , client::ast::op_greater ,
  client::ast::op_greater_equal , client::ast::op_and , client::ast::op_or
}
 

Functions

template<typename Visitor , typename Variant >
decltype(auto) client::ast::apply_visitor (Visitor &&vis, Variant &&var)
 
std::ostream & client::ast::operator<< (std::ostream &out, identifier const &id)
 

Variables

template<typename T >
constexpr bool client::ast::is_recursive_wrapper_v = is_recursive_wrapper<T>::value