FuncSketch
Loading...
Searching...
No Matches
expression_parser.h
Go to the documentation of this file.
1
/*
2
* Copyright 2026 MusicScience37 (Kenta Kabashima)
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
20
#pragma once
21
22
#include <memory>
23
#include <string>
24
25
#include "
func_sketch/expressions/expression_ptr.h
"
26
27
namespace
func_sketch::parser {
28
32
class
ExpressionParser
{
33
public
:
37
ExpressionParser
();
38
39
ExpressionParser
(
const
ExpressionParser
&) =
delete
;
40
ExpressionParser
& operator=(
const
ExpressionParser
&) =
delete
;
41
45
ExpressionParser
(
ExpressionParser
&&
/*other*/
) noexcept;
46
52
ExpressionParser
& operator=(
ExpressionParser
&&
/*other*/
) noexcept;
53
57
~
ExpressionParser
();
58
65
[[nodiscard]] expressions::ExpressionPtr operator()(
66
const std::
string
& expression_str) const;
67
68
private:
69
// Separate implementation to avoid including Boost.Spirit headers in this
70
// header file for faster compilation.
71
73
struct
Impl
;
74
76
std::unique_ptr<
Impl
>
pimpl_
;
77
};
78
79
}
// namespace func_sketch::parser
func_sketch::parser::ExpressionParser::pimpl_
std::unique_ptr< Impl > pimpl_
Internal data.
Definition
expression_parser.h:76
func_sketch::parser::ExpressionParser::ExpressionParser
ExpressionParser()
Constructor.
Definition
expression_parser.cpp:46
func_sketch::parser::ExpressionParser::ExpressionParser
ExpressionParser(ExpressionParser &&) noexcept
Move constructor.
expression_ptr.h
Definition of ExpressionPtr class.
func_sketch::parser::ExpressionParser::Impl
Internal data of ExpressionParser class.
Definition
expression_parser.cpp:34
include
func_sketch
parser
expression_parser.h
Generated on
for FuncSketch by
1.15.0