1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#ifndef GOOSE_BUILTINS_OPERATORS_HELPERS_H
#define GOOSE_BUILTINS_OPERATORS_HELPERS_H
#include "builtins/helpers.h"
namespace goose::builtins
{
using namespace goose::parse;
template< typename... R >
void BuildParseRule( sema::Env& env, const StringId& name, R&&... ruleBuilders )
{
parse::BuildParseRule( env, name, AppendToVectorTerm( RootG0Identity(), TERM( name ) ),
forward< R >( ruleBuilders )... );
}
struct UnaryOpTag {};
struct BinaryOpTag {};
|
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#ifndef GOOSE_BUILTINS_OPERATORS_HELPERS_H
#define GOOSE_BUILTINS_OPERATORS_HELPERS_H
#include "builtins/helpers.h"
namespace goose::builtins
{
using namespace goose::parse;
template< typename... R >
void BuildParseRule( sema::Env& env, StringId name, R&&... ruleBuilders )
{
parse::BuildParseRule( env, name, AppendToVectorTerm( RootG0Identity(), TERM( name ) ),
forward< R >( ruleBuilders )... );
}
struct UnaryOpTag {};
struct BinaryOpTag {};
|