Bash++
Bash++ compiler internal documentation
bpp_value_assignment.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 <memory>
10
11#include "bpp.h"
12#include "bpp_string.h"
13
14namespace bpp {
15
24 private:
26 std::shared_ptr<bpp_entity> nonprimitive_object;
27 bool lvalue_nonprimitive = false;
28 bool array_assignment = false;
29 bool adding = false;
30 public:
31 void set_nonprimitive_assignment(bool is_nonprimitive);
32 void set_nonprimitive_object(std::shared_ptr<bpp_entity> object);
33 void set_lvalue_nonprimitive(bool is_nonprimitive);
34 void set_array_assignment(bool is_array);
35 void set_adding(bool is_adding);
36
37 bool is_nonprimitive_assignment() const;
38 std::shared_ptr<bpp_entity> get_nonprimitive_object() const;
39 bool lvalue_is_nonprimitive() const;
40 bool is_array_assignment() const;
41 bool is_adding() const;
42};
43
44} // namespace bpp
The practical difference between bpp_code_entity and bpp_string is how we handle the code buffers.
Definition bpp_string.h:77
A value assignment statement in Bash++.
Definition bpp_value_assignment.h:23
bool is_array_assignment() const
Definition bpp_value_assignment.cpp:43
std::shared_ptr< bpp_entity > nonprimitive_object
Definition bpp_value_assignment.h:26
bool nonprimitive_assignment
Definition bpp_value_assignment.h:25
bool is_nonprimitive_assignment() const
Definition bpp_value_assignment.cpp:31
bool array_assignment
Definition bpp_value_assignment.h:28
std::shared_ptr< bpp_entity > get_nonprimitive_object() const
Definition bpp_value_assignment.cpp:35
bool lvalue_nonprimitive
Definition bpp_value_assignment.h:27
void set_adding(bool is_adding)
Definition bpp_value_assignment.cpp:27
void set_lvalue_nonprimitive(bool is_nonprimitive)
Definition bpp_value_assignment.cpp:19
void set_array_assignment(bool is_array)
Definition bpp_value_assignment.cpp:23
void set_nonprimitive_assignment(bool is_nonprimitive)
Definition bpp_value_assignment.cpp:11
bool lvalue_is_nonprimitive() const
Definition bpp_value_assignment.cpp:39
bool is_adding() const
Definition bpp_value_assignment.cpp:47
void set_nonprimitive_object(std::shared_ptr< bpp_entity > object)
Definition bpp_value_assignment.cpp:15
bool adding
Definition bpp_value_assignment.h:29
Definition bash_case.cpp:9