Fast C++ Code Generation
Project description
cppchips: C++17 code generator
:exclamation: Early development stage :vertical_traffic_light:
:capital_abcd: Languages: EN RU
:four_leaf_clover: Supported C++ constructions
- class and struct.
- class constructors.
- class member fields - with autogeneration getter and setter.
- initializer list in constructor (withoout initialize base class).
- class member functions.
- virtual functions and override in child classes.
- simple functions, variables.
:rocket: Simple start
cppchips input:
from src.cppchips import *
animalClass = CppClass('Animal')
animalClass.private \
.add_variable(CppString(), 'var1') \
animalClass.public \
.add_virtual_method('say', CppVoid(), [], 'std::cout << "---\\n";', noexcept=True) \
.add_virtual_method('pay', CppInt(), [CppVariable(CppDouble(), 'cost')], '// pay to win!') \
.add_constructor() \
.add_getter('var1') \
.add_setter('var1')
print(animalClass.gen_definition_str())
catClass = CppClass('Cat')
catClass.add_base_class(animalClass).public \
.add_override_method('say') \
.add_constructor() \
.add_override_method('pay')
print(catClass.gen_definition_str())
C++ result:
class Animal {
public:
Animal() {}
virtual void say() noexcept { std::cout << "---\n"; }
virtual int pay(double cost) {
// pay to win!
}
auto &getvar1() noexcept { return mvar1; }
const auto &getvar1() const noexcept { return mvar1; }
void setvar1(const std::string &avar1) { mvar1 = avar1; }
private:
std::string mvar1;
};
class Cat : public Animal {
public:
Cat() {}
void say() noexcept override {}
int pay(double cost) override { return {}; }
};
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cppchips-0.0.1.tar.gz
(7.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cppchips-0.0.1.tar.gz.
File metadata
- Download URL: cppchips-0.0.1.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7912b1364200e8459558069b6315384aaf695221e720e394d3dafa1502c5503a
|
|
| MD5 |
0ac8378036233e4ad28cb100b73eee8b
|
|
| BLAKE2b-256 |
027c1b6495cf861bb4a555c78689a22eb9f78c2f0ec05f238cd71dc075b06529
|
File details
Details for the file cppchips-0.0.1-py3-none-any.whl.
File metadata
- Download URL: cppchips-0.0.1-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39251c41f93a230511ffcbe96659b69e7917634312e8a8d9582a47e6ec174be9
|
|
| MD5 |
8a4a0989d1188382bccc741fcd779baf
|
|
| BLAKE2b-256 |
add77d0c745b835b14bc04332cb3495a4f25052cff5bf313e44b93b321e28ef6
|