lily/src/pattern.hpp

30 lines
598 B
C++
Raw Normal View History

2019-06-04 18:13:39 -07:00
#pragma once
#include <string>
#include <memory>
#include <vector>
namespace lily {
struct pattern {
2019-06-04 20:45:06 -07:00
virtual ~pattern() = default;
2019-06-04 18:13:39 -07:00
};
typedef std::unique_ptr<pattern> pattern_ptr;
2019-06-04 20:45:06 -07:00
struct pattern_var : pattern {
2019-06-04 18:13:39 -07:00
std::string name;
pattern_var(std::string n) :
name(std::move(n)) {}
~pattern_var() = default;
};
2019-06-04 20:45:06 -07:00
struct pattern_cons : pattern {
2019-06-04 18:13:39 -07:00
std::string name;
std::vector<std::string> vnames;
pattern_cons(std::string n) :
name(std::move(n)) {}
~pattern_cons() = default;
};
}