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