Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
CdbPython.hh
Go to the documentation of this file.
1
2#pragma once
3
4#include <string>
5#include <set>
6#include <pybind11/pybind11.h>
7
8namespace cadabra {
9
10 std::string escape_quotes(const std::string&);
11
18
19 std::string cdb2python(const std::string&, bool display);
20
22 std::string insert_prefix(const std::string&, const std::string& prefix, size_t prefixloc);
23
24 std::string cdb2python_string(const std::string&, bool display, std::string& error);
25
32
33 int is_python_code_complete(const std::string&, std::string& error);
34
37 bool code_contains_variable(const std::string& code, const std::string& variable);
38
42 bool variables_in_code(const std::string& code, std::set<std::string>& variables);
43
49 bool variables_to_pull_in(const std::string& code, std::set<std::string>& variables);
50
53 std::string remove_variable_assignments(const std::string& code, const std::string& variable);
54
60 public:
62 ConvertData(const std::string&, const std::string&, const std::string&, const std::string&);
63
64 std::string lhs, rhs, op, indent;
65 };
66
81
82 std::pair<std::string, std::string> convert_line(const std::string&, ConvertData& cv, bool display);
83
92
93 #ifndef CDBPYTHON_NO_NOTEBOOK
94
95 std::string cnb2python(const std::string&, bool for_standalone);
96
97 #endif
98 }
Object to store pre-parsing intermediate results.
Definition CdbPython.hh:59
std::string op
Definition CdbPython.hh:64
std::string lhs
Definition CdbPython.hh:64
std::string indent
Definition CdbPython.hh:64
ConvertData()
Definition CdbPython.cc:449
std::string rhs
Definition CdbPython.hh:64
std::string cnb2python(const std::string &, bool for_standalone)
Convert a Cadabra notebook file to pure Python.
Definition CdbPython.cc:682
std::string cdb2python(const std::string &, bool display)
Convert a block of Cadabra notation into pure Python.
Definition CdbPython.cc:29
std::pair< std::string, std::string > convert_line(const std::string &, ConvertData &cv, bool display)
Detect Cadabra expression statements and rewrite to Python form.
Definition CdbPython.cc:511
Functions to handle the exchange properties of two or more symbols in a product.
Definition Adjform.cc:83
bool variables_in_code(const std::string &code, std::set< std::string > &variables)
Fill a set with all variables references in the given piece of Python code.
Definition CdbPython.cc:373
std::string remove_variable_assignments(const std::string &code, const std::string &variable)
Given a piece of Python code, remove all lines which assign a value to the given variable.
Definition CdbPython.cc:265
std::string cdb2python_string(const std::string &, bool display, std::string &error)
Definition CdbPython.cc:95
std::string insert_prefix(const std::string &, const std::string &prefix, size_t prefixloc)
Helper function to insert a prefix.
Definition CdbPython.cc:64
int is_python_code_complete(const std::string &, std::string &error)
Test whether a block of Python code is complete or requires more input lines.
Definition CdbPython.cc:212
bool variables_to_pull_in(const std::string &code, std::set< std::string > &variables)
Fill a set with all variables references inside of Cadabra pull-in constructions, that is,...
Definition CdbPython.cc:358
bool code_contains_variable(const std::string &code, const std::string &variable)
Determine if the python code code contains a reference to the variable variable by parsing it into an...
Definition CdbPython.cc:321
std::string escape_quotes(const std::string &)
Definition CdbPython.cc:21
void set(rset_t::iterator &num, multiplier_t fac)
Definition Storage.cc:1179