lily/src/pattern.hpp

30 lines
598 B
C++

#pragma once
#include <string>
#include <memory>
#include <vector>
namespace lily {
struct pattern {
virtual ~pattern() = default;
};
typedef std::unique_ptr<pattern> pattern_ptr;
struct pattern_var : pattern {
std::string name;
pattern_var(std::string n) :
name(std::move(n)) {}
~pattern_var() = default;
};
struct pattern_cons : pattern {
std::string name;
std::vector<std::string> vnames;
pattern_cons(std::string n) :
name(std::move(n)) {}
~pattern_cons() = default;
};
}