Bash++
Bash++ compiler internal documentation
bash_case.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2025 Andrew S. Rightenburg
3 * Bash++: Bash with classes
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
7#pragma once
8
9#include <string>
10#include <memory>
11
12#include "bpp.h"
13#include "bpp_string.h"
14#include "bpp_code_entity.h"
15
16namespace bpp {
17
27class bash_case : public bpp_string {
28 private:
29 std::string cases;
30 public:
31 void add_case(const std::string& case_);
32
33 const std::string& get_cases() const;
34};
35
46 private:
47 std::string pattern;
48 std::shared_ptr<bpp::bash_case> containing_case;
49 public:
50 void set_pattern(const std::string& pattern);
51 void set_containing_case(std::shared_ptr<bpp::bash_case> containing_case);
52
53 const std::string& get_pattern() const;
54 std::shared_ptr<bpp::bash_case> get_containing_case() const;
55};
56
57} // namespace bpp
A pattern for a case statement in Bash++.
Definition bash_case.h:45
std::string pattern
Definition bash_case.h:47
void set_containing_case(std::shared_ptr< bpp::bash_case > containing_case)
Definition bash_case_pattern.cpp:15
const std::string & get_pattern() const
Definition bash_case_pattern.cpp:19
void set_pattern(const std::string &pattern)
Definition bash_case_pattern.cpp:11
std::shared_ptr< bpp::bash_case > containing_case
Definition bash_case.h:48
std::shared_ptr< bpp::bash_case > get_containing_case() const
Definition bash_case_pattern.cpp:23
A case statement in Bash++.
Definition bash_case.h:27
std::string cases
Definition bash_case.h:29
const std::string & get_cases() const
Definition bash_case.cpp:15
void add_case(const std::string &case_)
Definition bash_case.cpp:11
An entity which can contain code.
Definition bpp_code_entity.h:35
The practical difference between bpp_code_entity and bpp_string is how we handle the code buffers.
Definition bpp_string.h:77
Definition bash_case.cpp:9